Laboratory › Developers › SDKs
SDKs
The surface is unauthenticated GET requests returning documented JSON. An SDK would wrap fetch and add a version to keep in step with the contract. Raw HTTP is the canonical interface and the examples are copyable.
Raw HTTP is the canonical interface. The examples page has copyable cURL, JavaScript and Python that together cover the whole surface in about forty lines.
The contract it will honour
Written down now, while nothing depends on it, so it cannot be invented differently later under pressure to ship.
- Any SDK must preserve exact object versions, current and superseded state, provenance, typed scientific status, and the error contract.
- An SDK must never collapse the status vector into a convenience boolean, or silently follow a current pointer where an exact version was requested.
What any SDK here would have to get right
These are the failure modes a convenience layer creates, and the reason one is not worth writing yet:
- Never collapse the status vector. An
isValidorconfidenceproperty would destroy exactly the information the API exists to carry. The nine dimensions stay nine dimensions. - Never silently follow a current pointer. If a caller asked for
v2, it getsv2— even afterv3withdraws the claim. - Never hide a withdrawal. A withdrawn record returns 200; an SDK that maps lifecycle onto exceptions will teach callers to treat retraction as an error and skip past it.
- Resolve terms through the ontology, with the ontology version it resolved against, rather than hard-coding an enum that goes stale.
- Preserve digests and version URLs through every layer, so a caller can still verify and cite.
- Do not assume an error body is JSON. A request to an unknown path is answered by the hosting layer, outside Tiffany's error contract; an SDK that blindly parses error bodies will throw on the host's 404.
Anyone is welcome to write a client. Please label it unofficial, pin the contract version it targets, and keep the properties above.
PreviousRate limits
NextWebhooks