API Examples

Replace vcs_your_api_key with your key from the dashboard.

POST/v1/vconsCreate a vCon

Store a new virtual conversation with parties, dialog, and optional analysis.

Request

curl -X POST https://api.vcon.store/v1/vcons \
  -H "Authorization: Bearer vcs_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "vcon": "0.0.1",
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "created_at": "2026-02-18T09:00:00Z",
    "parties": [
      {"tel": "+44 7700 900000", "name": "Alice"},
      {"tel": "+44 7700 900001", "name": "Bob"}
    ],
    "dialog": [{
      "type": "recording",
      "start": "2026-02-18T09:00:00Z",
      "duration": 180,
      "parties": [0, 1],
      "mimetype": "audio/wav",
      "url": "https://cdn.example.com/calls/abc.wav"
    }]
  }'

Response

{
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2026-02-18T09:00:00Z",
  "scitt": { "entry_id": "sha256:a1b2c3...", "signed": true }
}
GET/v1/vconsList vCons

Retrieve a paginated list of vCons stored in your organisation.

Request

curl https://api.vcon.store/v1/vcons?page=1&limit=20 \
  -H "Authorization: Bearer vcs_your_api_key"

Response

{
  "data": [
    { "uuid": "550e8400-...", "created_at": "2026-02-18T09:00:00Z", "parties": [...] }
  ],
  "total": 142,
  "page": 1,
  "limit": 20
}
GET/v1/vcons/:uuidGet a single vCon

Retrieve a specific vCon by its UUID, including all parties, dialog, analysis, and attachments.

Request

curl https://api.vcon.store/v1/vcons/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer vcs_your_api_key"

Response

{
  "vcon": "0.0.1",
  "uuid": "550e8400-e29b-41d4-a716-446655440000",
  "created_at": "2026-02-18T09:00:00Z",
  "parties": [...],
  "dialog": [...],
  "analysis": [...]
}
POST/v1/vcons/:uuid/redactRedact a vCon

Create a redacted derivative of a vCon. PII is stripped and a new signed vCon is returned with lineage tracking.

Request

curl -X POST https://api.vcon.store/v1/vcons/550e8400-e29b-41d4-a716-446655440000/redact \
  -H "Authorization: Bearer vcs_your_api_key"

Response

{
  "uuid": "new-redacted-uuid",
  "parent_uuid": "550e8400-...",
  "redacted": true
}
DELETE/v1/vcons/:uuidDelete a vCon

Permanently delete a vCon. This action is recorded on the SCITT transparency ledger.

Request

curl -X DELETE https://api.vcon.store/v1/vcons/550e8400-e29b-41d4-a716-446655440000 \
  -H "Authorization: Bearer vcs_your_api_key"

Response

{ "deleted": true }
GET/v1/vcons/:uuid/scittGet SCITT transparency log

Retrieve the SCITT ledger entries for a vCon — cryptographic proof of every operation.

Request

curl https://api.vcon.store/v1/vcons/550e8400-e29b-41d4-a716-446655440000/scitt \
  -H "Authorization: Bearer vcs_your_api_key"

Response

{
  "entries": [
    {
      "entry_id": "sha256:a1b2c3...",
      "operation": "register",
      "signed": true,
      "receipt": true,
      "created_at": "2026-02-18T09:00:00Z"
    }
  ]
}
POST/v1/org/api-keysCreate an API key

Generate a new API key for your organisation. The full key is only shown once.

Request

curl -X POST https://api.vcon.store/v1/org/api-keys \
  -H "Authorization: Bearer vcs_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Production Key" }'

Response

{
  "id": "key_abc123",
  "key": "vcs_live_sk_a1b2c3d4e5f6...",
  "prefix": "vcs_live_sk_a1b2"
}

Want interactive try-it-out?

Open Interactive API Docs →