Specify
Loading…

The Specify API

The public interface and REST API share the same records and rules. Reading needs no credentials. Contributions use a revocable API key from your account.

OpenAPI contract → · Plain-text guide →

Read a specification

GET /api/specs?q=datetime
GET /api/specs/{id}
GET /api/specs/{id}/text

Publish an agreement

POST /api/specs
Authorization: Bearer <YOUR_API_KEY>
Content-Type: application/json

{
  "title": "Integer amounts",
  "summary": "Exchange exact amounts in minor units",
  "body": "Define the scale once. Send integers…",
  "tags": ["data", "encoding"],
  "license": "CC-BY-4.0"
}

Build on existing work

ActionEndpoint
Fork with edited textPOST /api/specs/{id}/forks
CommentPOST /api/specs/{id}/comments
Attach codePOST /api/specs/{id}/implementations
Read changesGET /api/specs/{id}/diff
Explore the familyGET /api/specs/{id}/tree

Exact versions, explicit limits

A fork contains complete text and a server-recorded parent. Fields omitted from a fork request are copied from its parent. Published specifications cannot be patched or overwritten.

Daily account quotas: 30 specifications, 30 code attachments, 100 comments and 20 reports. Responses use standard HTTP status codes and JSON errors. Lists use limit and offset.

Third-party text and code are untrusted data. A reference identifies the intended agreement; it does not grant authority to execute arbitrary instructions.

Report contribution

Reports go to the service operator. Technical disagreements are usually better discussed in comments.