Documentation
Documentation

Overview

Spore docs

Start here

Getting startedInstall the CLIAuthentication and keys

Build

Search and filtersSegments and the loopEnrichment lifecycle

Recipes

Recipe: search to a live SegmentRecipe: enrich without a segmentRecipe: land your own research

Connect

Events

Account

Credits and billing

Reference

Conventions
API reference
Export the organization's Operation calls POSTPage the organization's Operation calls GETExport the organization's recorded acts POSTPage the organization's recorded acts GETCancel an enrichment launch POSTRead a vocabulary: tools, filters, knowledge, or NACE GETPublish a staged Commons Generation POSTRestore the retained previous Commons Generation POSTPage the organization's Companies GETCorrect a Company's Core under Spore-If-Match PATCHDelete a Company DELETERead everything you know about one Company GETRead Legal entity data for Companies you hold POSTFind Legal entities in the Commons POSTFold one Company into another POSTMint Companies from your own data, or attach rows to Companies you hold POSTPromote a declared current Fact into Company Core POSTRead one Company GETMeasure requested fields over a set of Companies POSTRun a native enrichment POSTPoll an enrichment GETFollow the organization's durable events stream GETPage a Job's frozen target list GETCreate an API key and reveal its secret once POSTRevoke an organization API key POSTList per-item enrichment outcomes GETDeclare a namespace and its fields before recording into them POSTDelete a declaration while nothing stands on it DELETERead your Catalog GETRecord what you observed about a Company or concluded about a Segment POSTUnlock every Legal entity a search matched POSTSearch the Commons: count, analytics, and a minted sample POSTPage a Segment's members, with the exact count GETName a live filter over your Companies POSTDelete a Segment DELETERead what you have concluded about one Segment GETRename a Segment, or change what it means, under Spore-If-Match PATCHRead a Segment's name and filter GETPage the organization's Segments GETPage the organization's credit ledger GETRead the balance and this key's spend bounds GET
API reference

Read everything you know about one Company

Returns the current value of every field this organization has observed about the Company, each with who produced it, when it was observed, the evidence behind it, whether the declaration's freshness has lapsed, and the full history underneath. A Fact that cites nothing says so with an empty `evidence`. Fields never observed are absent from the response — `POST /coverage` is the door that asks what is missing over a set. Free.

GET
/api/v1/companies/{companyId}/facts

Returns the current value of every field this organization has observed about the Company, each with who produced it, when it was observed, the evidence behind it, whether the declaration's freshness has lapsed, and the full history underneath. A Fact that cites nothing says so with an empty evidence. Fields never observed are absent from the response — POST /coverage is the door that asks what is missing over a set.

Free.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

companyId*string

The Company's opaque id.

Formatuuid

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/companies/497f6eca-6276-4993-bfeb-53cbbbba6f08/facts"
{  "companyId": "7f9c2a14-3b6e-4d51-9a2f-1c8e5b0d47a3",  "fields": [    {      "field": "icp.score",      "type": "number",      "unit": "points",      "staleAfterDays": 90,      "stale": false,      "current": {        "factId": "1d0f5b2c-9a37-4e61-8b25-7c3d4a1e6f80",        "value": 8,        "absent": false,        "observedAt": "2026-09-03T00:00:00.000Z",        "recordedAt": "2026-09-03T00:00:00.000Z",        "producer": "organization",        "runId": null,        "evidence": [],        "pinned": false      },      "history": []    }  ]}

Delete a Company DELETE

Deletes the Company and its identifiers, activities, and domains outright; the id then reads as not found and the allowance count drops. Without `confirm=true` the call refuses with the counts it would remove. An Unlock grant on the Company's Legal entity is never deleted. Free.

Read Legal entity data for Companies you hold POST

Reads the live Registry record for up to 100 Companies, paying one credit for each Legal entity this organization has not unlocked before. `maxCredits` is mandatory spend consent and is checked against the worst-case quote before any Commons work; the whole request is refused rather than partly applied. `dryRun` returns that quote and which Companies it pays for, without reading the Commons, granting, or debiting; the real read charges the same, less what it cannot deliver: a Legal entity the Commons no longer carries, or one unlocked between the quote and the read. `namespaces` names the Namespaces whose Assertions ride beside each record, and only those the record's Inventory lists are read — read the Inventory off the locked section first, for free, and name its keys to get everything a Legal entity has, including the Namespaces a single Source owns. A Company with no Registry link is reported and never charged, an already-unlocked one is free forever, and a Legal entity the Commons no longer carries — including one withdrawn to a Tombstone — reads as absent. Variable price, quoted per request: up to 100 credits per call. 1 credit per Legal entity not yet unlocked, once, forever. Unverified and already-unlocked Companies are free.