Skip to main content
This guide makes three calls: a search, a retrieve, and a subscription to the changes feed. The examples use the Andorran register (AD), which is small, so results are easy to check.

Before you start

You need an API key. Pinakel issues keys when your agreement is set up; use the Request API key button at the top of this page if you do not have one. A pk_test_ key returns the same data as a live key, is not billed, and is the right key for trying things out. Put the key in an environment variable so it stays out of your code and your shell history:
Every request sends it as a Bearer token: Authorization: Bearer $PINAKEL_API_KEY. See Authentication for the details.
1

Search

Search for marks containing the word “noky” in the Andorran register. Filters are query parameters; different parameters are combined with AND.
The response is a list of trademark_summary objects:
Response (abridged)
has_more: false means this is the only page. When it is true, send the same request again with cursor set to next_cursor (see Pagination).
2

Retrieve the full record

Store the id. It is the record’s permanent identifier, and it fetches the full record:
Response
Every field is always present. null means the office did not state the value, so "country": null above means the Andorran record gives the owner’s address but no country code. The trademark record explains each field.
3

Subscribe to changes

The changes feed lists every record that changed, in publication order. The first call, without since or cursor, subscribes from now: it returns an empty page and a cursor.
Response
Store next_cursor. At most every 15 minutes, call the feed again with the same jurisdiction and the stored cursor, upsert each trademark by its id, and store the new next_cursor after every page. Syncing shows the complete loop, including how to load your starting state.

What’s next

Searching

Every filter, how values combine, and sorting.

Syncing

Initial load, the polling loop, bursts and reloads.

Errors

Which errors to fix, which to retry, and how.

API reference

Endpoints, parameters and response schemas, with a playground.