Entities

live

The registry: browse, resolve, dereference

GET/v2/entities

Browse/search the entity registry (paged, capped)

With no parameters at all, returns the domain index — every domain the registry serves, each with a `browse` link. With `domain`, one page of that domain's nodes. Page caps are dump-resistance: the registry is browsable for evaluation, not extractable by pagination.

Query parameters

ParameterType
curl "https://api.cardog.app/v2/entities?domain=make" \
  -H "x-api-key: $CARDOG_API_KEY"

Example response

4 keys
"response": {
"items": [
0: {4 items},
1: {4 items},
2: {4 items},
3: {4 items},
4: {4 items},
5: {4 items},
6: {4 items},
7: {4 items},
8: {4 items},
9: {4 items}
],
"pagination": {
"page": 2,
"limit": 10
},
"totalCount": 1622,
"links": {
"next": "/v2/entities?domain=make&q=te&page=3&limit=10"
}
}

Errors — every non-2xx body is the error envelope: 400, 401, 429, 500

GET/v2/entities/resolve

Free text → refs with confidence (the front door)

The ONE endpoint that accepts free text. Returns candidates ordered best-first; `best` is null when nothing clears the confidence floor — the API never guesses for you.

Query parameters

ParameterType
curl "https://api.cardog.app/v2/entities/resolve?q=2021%20civic" \
  -H "x-api-key: $CARDOG_API_KEY"

Response 200 — EntityResolve

FieldType

Example response

4 keys
"response": {
"query": "teslla",
"domain": "make",
"candidates": [
0: {5 items}
],
"best": null
}

Errors — every non-2xx body is the error envelope: 400, 401, 429, 500

GET/v2/entities/{ref}

Dereference a ref: node + parents/children + counts + links

Path parameters

ParameterType
curl "https://api.cardog.app/v2/entities/make:tesla" \
  -H "x-api-key: $CARDOG_API_KEY"

Response 200 — EntityDetail

FieldType

Example response

9 keys
"response": {
"ref": "model:honda/civic",
"domain": "model",
"name": "Civic",
"parentRef": "make:honda",
"parents": [
0: {4 items}
],
"children": [
0: {4 items},
1: {4 items},
2: {4 items},
3: {4 items},
4: {4 items},
5: {4 items},
6: {4 items},
7: {4 items},
8: {4 items},
9: {4 items},
10: {4 items},
11: {4 items},
12: {4 items},
13: {4 items},
14: {4 items},
15: {4 items},
16: {4 items},
17: {4 items},
18: {4 items},
19: {4 items},
20: {4 items},
21: {4 items},
22: {4 items},
23: {4 items},
24: {4 items},
25: {4 items},
26: {4 items},
27: {4 items},
28: {4 items},
29: {4 items},
30: {4 items},
31: {4 items},
32: {4 items},
33: {4 items},
34: {4 items},
35: {4 items},
36: {4 items},
37: {4 items},
38: {4 items},
39: {4 items},
40: {4 items},
41: {4 items},
42: {4 items},
43: {4 items},
44: {4 items},
45: {4 items},
46: {4 items},
47: {4 items},
48: {4 items},
49: {4 items}
],
"childrenTruncated": true,
"counts": {
"children": 54,
"listings": 49086
},
"links": {
"self": "/v2/entities/model%3Ahonda%2Fcivic",
"listings": "/v2/listings/search?model=model%3Ahonda%2Fcivic",
"recalls": "/v2/recalls/entity/model%3Ahonda%2Fcivic"
}
}

Errors — every non-2xx body is the error envelope: 400, 401, 404, 429, 500

Generated from the contract. Machine-readable spec: GET https://api.cardog.app/v2/openapi.json · markdown twin: /docs/reference/entities.md