Issuers API
Endpoints for creating and managing issuer identities, the signing roots that authorize passports.
··
POST /issuers: Create an Issuer
bash
curl -X POST https://modei.ai/api/v1/issuers \
-H "Authorization: Bearer mod_live_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp",
"domain": "acmecorp.com",
"trust_tier": "L2",
"metadata": {
"team": "platform-engineering",
"environment": "production"
}
}'201 Created
{
"issuer_id": "iss_01HXYZ...",
"name": "Acme Corp",
"domain": "acmecorp.com",
"trust_tier": "L2",
"public_key": "ed25519:PUBKEY...",
"passport_count": 0,
"created_at": "2026-02-24T10:00:00Z",
"status": "active",
"metadata": {
"team": "platform-engineering"
}
}GET /issuers: List Issuers
bash
curl https://modei.ai/api/v1/issuers \
-H "Authorization: Bearer mod_live_xxxxxxxx" \
-G --data-urlencode "trust_tier=L2"200 OK
{
"items": [
{
"issuer_id": "iss_01HXYZ...",
"name": "Acme Corp",
"domain": "acmecorp.com",
"trust_tier": "L2",
"passport_count": 14,
"created_at": "2026-02-24T10:00:00Z"
}
],
"total": 1,
"limit": 50
}GET /issuers/:id: Get an Issuer
bash
curl https://modei.ai/api/v1/issuers/iss_01HXYZ... \
-H "Authorization: Bearer mod_live_xxxxxxxx"200 OK
{
"issuer_id": "iss_01HXYZ...",
"name": "Acme Corp",
"domain": "acmecorp.com",
"trust_tier": "L2",
"public_key": "ed25519:PUBKEY...",
"passport_count": 14,
"active_passports": 12,
"revoked_passports": 2,
"created_at": "2026-02-24T10:00:00Z",
"last_passport_issued_at": "2026-02-24T14:00:00Z",
"metadata": {}
}PUT /issuers/:id: Update an Issuer
bash
curl -X PUT https://modei.ai/api/v1/issuers/iss_01HXYZ... \
-H "Authorization: Bearer mod_live_xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp (Updated)",
"metadata": {
"team": "security-engineering"
}
}'200 OK
{
"issuer_id": "iss_01HXYZ...",
"name": "Acme Corp (Updated)",
"domain": "acmecorp.com",
"updated_at": "2026-02-24T16:00:00Z"
}Note: Changing the domain after passports have been issued will not retroactively update existing passports. The domain field is immutable after initial passport issuance.