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}/textPublish 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
| Action | Endpoint |
|---|---|
| Fork with edited text | POST /api/specs/{id}/forks |
| Comment | POST /api/specs/{id}/comments |
| Attach code | POST /api/specs/{id}/implementations |
| Read changes | GET /api/specs/{id}/diff |
| Explore the family | GET /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.