Skip to main content
GET
Get a data store

Authorizations

X-API-Key
string
header
required

Path Parameters

store
string
required

Response

Successful Response

Everything one store declares, plus the precedence in effect for you.

The field map is the store's own type declaration, so a form or table can be rendered from this response alone — including which values are allowed, which may be null, and how each value should be handled.

slug
string
required

Identifies the store in every store URL.

tier
string
required

Which kind of store this is.

version
integer
required

Version of the store's platform declaration.

record_key
StoreRecordKeyResponse · object
required

How a store's record key is formed.

fields
Fields · object
required

Every field the store declares, keyed by field name.

sources
string[]
required

Every source that may ever write a layer to this store.

precedence
StorePrecedenceResponse · object
required

The precedence currently deciding this store's resolved values.

For each field, the first source in that field's order which asserts a value wins. A field's order is also the list of sources allowed to write it, so one place answers both "who wins" and "who may say anything at all".

config_version
integer
required

Version of your precedence settings. Every record records the version its resolved view was computed with, which is what makes a view left behind by a precedence change detectable.

recompute
StoreRecomputeResponse · object
required

Whether every record's resolved view reflects the current precedence.

Changing precedence invalidates the resolved views computed under the old settings, and they are recomputed in the background. While that is running, bulk queries legitimately mix records resolved under the old precedence with records resolved under the new one. pending reaching zero is how you know the window has closed.

exchange_lag
ExchangeLagResponse · object
required

How far this store's records are behind the current reference data.

Exchange reference data is published in generations. Every record is stamped with the generation its geographic facts came from, and a background sweep brings records that are behind up to the current one. This block answers "how many are behind, and against which generation was that counted".

The generations named here ARE the ones the count was taken against. They are read once and the count filters on exactly them, because a count taken against one generation and reported beside another is a number nobody could act on.

lookup_counts
LookupCountsResponse · object
required

How much of this store's carrier and line-type data was looked up.

Two facts about a number's carrier are kept apart on purpose. Carrier and Line type come from a per-number lookup and describe that exact number. Area code carrier and Area code line type come from the number's NPA-NXX block and describe the block, not the number — a ported number's block says nothing about who carries it today. These counts say how many of this store's numbers have each.

looked_up and estimated_only never overlap: a number with a per-number answer is counted in the first and nowhere else, whatever its area-code estimate says.

callback_incapable_count
integer
required

How many of this store's numbers are in no inbound campaign. A number in none cannot receive a callback: somebody who returns the call reaches nothing. Zero is the healthy answer.

changed_event_type
string
required

The event emitted when a record's resolved value changes. Subscribe to this exact name to react to changes.

summary_event_type
string
required

The event emitted once per completed sync, carrying that sync's totals. Subscribe to this one for bulk reactions.

record_retention_days
integer | null

How long records are kept. Null means indefinitely.

history_retention_days
integer | null

How long history rows are kept. Null means indefinitely.