ARCFORM
API SERVICES
Machine-readable API definition for the Arcform DID.comms API. Compatible with Swagger UI, Postman, RapidAPI, and all OpenAPI 3.0 tools.
GET /api/functions/openApiSpecPublic endpoint — no auth, CORS-enabled/v1/did/activate/v1/channel/send/v1/did/status/v1/verify/v1/webhooks/register/v1/webhooks/list/v1/webhooks/deleteVersion
1.3.0
Format
OpenAPI 3.0.3
Auth
Bearer + API Key
Server
arcform-api.com
{
"openapi": "3.0.3",
"info": {
"title": "Arcform API",
"description": "Walletless, developer-first API for sovereign-grade decentralised identity (DID) management and encrypted DIDComm v2 messaging.",
"version": "1.3.0",
"contact": {
"name": "Arcform Support",
"url": "https://arcform-api.com/support"
},
"license": {
"name": "MIT",
"url": "https://opensource.org/licenses/MIT"
},
"termsOfService": "https://arcform-api.com/terms"
},
"servers": [
{
"url": "https://arcform-api.com",
"description": "Production"
}
],
"security": [
{
"BearerAuth": [],
"ApiKeyAuth": []
}
],
"paths": {
"/v1/did/activate": {
"post": {
"operationId": "activateIdentity",
"summary": "Activate a sovereign identity",
"description": "Creates a new DID, generates an API key, and returns a cryptographic fingerprint. No wallet setup required.",
"tags": [
"Identity"
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"label": {
"type": "string",
"description": "Optional friendly label",
"example": "My First Identity"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Identity activated",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"api_key_id": {
"type": "string"
},
"did": {
"type": "string"
},
"fingerprint": {
"type": "string"
},
"plan": {
"type": "string"
},
"usage": {
"type": "object"
},
"metadata_policy": {
"type": "string"
},
"status": {
"type": "string"
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
}
}
},
"/v1/channel/send": {
"post": {
"operationId": "sendEnvelope",
"summary": "Send a sealed envelope",
"description": "Encrypts and sends a DIDComm envelope. Metadata is stripped, payload is sealed E2E, and delivery is routed through mediator hops.",
"tags": [
"Messaging"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"to",
"message"
],
"properties": {
"to": {
"type": "string",
"description": "Recipient API key (ak_...)",
"example": "ak_recipient_key"
},
"message": {
"type": "string",
"description": "Message content",
"example": "Hello — this is a sealed envelope"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Envelope delivered",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"envelope_id": {
"type": "string"
},
"envelope_hash": {
"type": "string"
},
"encryption": {
"type": "object"
},
"routing": {
"type": "object"
},
"metadata_policy": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Bad request"
},
"401": {
"description": "Unauthorized"
},
"429": {
"description": "Rate limited / quota exceeded"
}
}
}
},
"/v1/did/status": {
"post": {
"operationId": "getIdentityStatus",
"summary": "Get identity status",
"description": "Returns current identity status, usage counters, plan tier, and webhook count.",
"tags": [
"Identity"
],
"responses": {
"200": {
"description": "Status returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"did": {
"type": "string"
},
"api_key_id": {
"type": "string"
},
"status": {
"type": "string"
},
"plan": {
"type": "string"
},
"usage": {
"type": "object"
},
"webhooks": {
"type": "integer"
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
}
}
},
"/v1/verify": {
"post": {
"operationId": "verifyEnvelope",
"summary": "Verify envelope delivery",
"description": "Verify delivery status, routing integrity, and bubble lifecycle of an envelope by its hash. Supports single hash or batch (up to 50).",
"tags": [
"Verification"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"envelope_hash": {
"type": "string",
"description": "Single envelope hash"
},
"envelope_hashes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Batch of envelope hashes (max 50)"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Verification result",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"verified",
"partial",
"orphaned",
"unverified"
]
},
"envelope_hash": {
"type": "string"
},
"proof_checksum": {
"type": "string"
},
"integrity": {
"type": "object"
}
}
}
}
}
}
}
}
},
"/v1/webhooks/register": {
"post": {
"operationId": "registerWebhook",
"summary": "Register a webhook endpoint",
"description": "Register a URL to receive sealed envelope delivery events. Returns an HMAC secret for signature verification.",
"tags": [
"Webhooks"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "Your HTTPS endpoint URL"
},
"events": {
"type": "array",
"items": {
"type": "string"
},
"default": [
"envelope.received"
]
}
}
}
}
}
},
"responses": {
"200": {
"description": "Webhook registered",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"webhook_id": {
"type": "string"
},
"url": {
"type": "string"
},
"events": {
"type": "array",
"items": {
"type": "string"
}
},
"secret": {
"type": "string",
"description": "HMAC secret (whsec_...)"
},
"status": {
"type": "string"
}
}
}
}
}
},
"401": {
"description": "Unauthorized"
}
}
}
},
"/v1/webhooks/list": {
"post": {
"operationId": "listWebhooks",
"summary": "List registered webhooks",
"tags": [
"Webhooks"
],
"responses": {
"200": {
"description": "Webhooks listed",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"api_key_id": {
"type": "string"
},
"webhooks": {
"type": "array",
"items": {
"type": "object"
}
}
}
}
}
}
}
}
}
},
"/v1/webhooks/delete": {
"post": {
"operationId": "deleteWebhook",
"summary": "Delete a webhook",
"tags": [
"Webhooks"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"webhook_id"
],
"properties": {
"webhook_id": {
"type": "string"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Webhook deleted"
}
}
}
}
},
"components": {
"securitySchemes": {
"BearerAuth": {
"type": "http",
"scheme": "bearer",
"description": "Session token from login"
},
"ApiKeyAuth": {
"type": "apiKey",
"in": "header",
"name": "X-DID-API-Key",
"description": "API key (ak_...)"
}
}
},
"tags": [
{
"name": "Identity",
"description": "DID activation and status"
},
{
"name": "Messaging",
"description": "Sealed envelope delivery"
},
{
"name": "Verification",
"description": "Envelope proof-of-transit"
},
{
"name": "Webhooks",
"description": "Real-time event delivery"
}
]
}