This API is designed for high-volume production environments, meaning it has a few notable quirks.
Different filters utilize different logic comparisons. Some are OR (ANY), and others are AND (ALL). When using multiple filters in a single request, additional AND logic applies to the result, aka only results that pass ALL filters are returned.
Records are compressed, meaning they're a) flattened (title + license), and b) several values rarely used in high-volume workflows are stripped out. Use the Get License with the
idresponse field to get a complete license.
Long results (greater than
maxResults) use cursor-based pagination via pageTokens. You have two options for traversal, the Response Header link (includes
first) or the Body value
Results are unsorted, but loosely sorted chronologically is a more accurate statement. Records are indexed as created, placing them in a non-strict chronological order.
approxResults, per its name, is an approximation of the total number of results. For large data sets, it's slow and memory hungry to determine an exact row count.
We use POST instead of GET here because you can include significantly larger values than a URL. While request bodies are technically allowed via GET methods, many HTTP clients do not support it.