Create entity
curl -sS https://api.orgs.sh/v1/entities \
  -H "authorization: Bearer $ORGS_API_KEY" \
  -H "content-type: application/json" \
  -d @entity.json
{
  "id": "3f3f5278-31d5-4ca6-ae0d-257cf1cdd4a1",
  "name": "helios-research",
  "state": "Draft",
  "filing_number": null,
  "ein": null,
  "oas_did": null,
  "version": 1,
  "created_at": "2026-04-26T18:00:00Z",
  "updated_at": "2026-04-26T18:00:00Z"
}
POST
/
v1
/
entities
Create entity
curl -sS https://api.orgs.sh/v1/entities \
  -H "authorization: Bearer $ORGS_API_KEY" \
  -H "content-type: application/json" \
  -d @entity.json
{
  "id": "3f3f5278-31d5-4ca6-ae0d-257cf1cdd4a1",
  "name": "helios-research",
  "state": "Draft",
  "filing_number": null,
  "ein": null,
  "oas_did": null,
  "version": 1,
  "created_at": "2026-04-26T18:00:00Z",
  "updated_at": "2026-04-26T18:00:00Z"
}

Routes

GET    /v1/entities
POST   /v1/entities
GET    /v1/entities/{id}
PUT    /v1/entities/{id}
DELETE /v1/entities/{id}

Create request

constitution_yaml
string
required
YAML constitution document. The API validates the constitution before storing the entity. Maximum size: 64 KiB.

Update request

id
string
required
Entity UUID.
version
integer
required
Latest entity version. Version mismatches return 409.
action
string
Supported values: submit_formation, mark_filing_failed, retry_from_failed.
filing_error
string
Error message required when marking a filing failed.

Response fields

id
string
required
Entity UUID.
name
string
required
Entity name from the constitution.
state
string
required
Entity lifecycle state such as Draft, Filing, Filed, Registered, or Active.
version
integer
required
Optimistic concurrency version.

Agent rule

Agents should fetch the entity immediately before update, then send the latest version. Treat a 409 as a signal to re-read state and re-evaluate intent.

Authorizations

Authorization
string
header
required

Use Authorization: Bearer <token>. The token can be a legacy Orgs API key or a platform-minted JWT.

Body

application/json
constitution_yaml
string
required

YAML constitution document. Maximum 64 KiB.

Response

Entity created.

id
string<uuid>
required
name
string
required
Example:

"helios-research"

state
string
required
Example:

"Draft"

version
integer<int64>
required
Example:

1

created_at
string<date-time>
required
updated_at
string<date-time>
required
filing_number
string | null
Example:

"2026-000123456"

ein
string | null
Example:

"12-3456789"

oas_did
string | null
Example:

"did:oas:hmr:helios"