Skip to main content
POST
/
api
/
registry
/
resolve
Resolve identifiers to property_rids (and contribute them)
curl --request POST \
  --url https://agenticadvertising.org/api/registry/resolve \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "identifiers": [
    {
      "type": "domain",
      "value": "nytimes.com"
    }
  ],
  "provenance": {
    "context": "unilever_q3"
  },
  "mode": "resolve"
}
'
{
  "resolved": [
    {
      "identifier": {
        "type": "domain",
        "value": "nytimes.com"
      },
      "property_rid": "<string>",
      "classification": "property",
      "source": "<string>"
    }
  ],
  "summary": {
    "total": 123,
    "resolved": 123,
    "created": 123,
    "excluded": 123,
    "not_found": 123
  },
  "server_timestamp": "<string>"
}

Authorizations

Authorization
string
header
required

Bearer token in the Authorization header. Two token types are accepted:

  • Organization API key (sk_...) issued via the dashboard. Org-scoped, long-lived, for server-to-server use.
  • User JWT obtained via the OAuth 2.1 authorization code flow with PKCE. User-scoped, short-lived. Discover the authorization server at /.well-known/oauth-authorization-server and the protected-resource metadata at /.well-known/oauth-protected-resource/api.

Body

application/json
identifiers
object[]
required

Identifiers to resolve (and, in resolve mode, contribute). Max 10,000 per call for all callers.

Required array length: 1 - 10000 elements
provenance
object
required
mode
enum<string>
default:resolve

resolve (default) contributes the identifiers, auto-creates missing catalog entries, logs demand activity, and returns rids — requires authentication. lookup is a pure read: no write, no activity log, no auth.

Available options:
resolve,
lookup

Response

Resolve/lookup result

resolved
object[]
required
summary
object
required
server_timestamp
string
required