For the complete documentation index, see llms.txt. This page is also available as Markdown.

Invitations

Endpoints for creating and managing invitations

Get all invitations

get

This endpoint retrieves all invitations associated with the provided API key.

Authorizations
x-api-keystringRequired
Query parameters
sort-fieldstringOptional

The field to sort by (default updated_at).

sort-directionstringOptional

The direction to sort (ASC or DESC, default DESC).

page-sizeintegerOptional

The number of invitations per page (default 20).

current-pageintegerOptional

The current page number (default 1).

item-countintegerOptional

The total number of items.

state-filterstringOptional

If provided, returns only invitations with this state.

contact-idstringOptional

If provided, returns only invitations for this contact_id.

Responses
200

A list of invitations

application/json
get/api/v1/invitations
GET /api/v1/invitations HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
  "params": {
    "sort": [
      [
        [
          "updated_at",
          "DESC"
        ]
      ]
    ],
    "pageSize": 2,
    "currentPage": 1,
    "pageCount": 1,
    "itemCount": 1,
    "stateFilter": null,
    "contactIdFilter": null
  },
  "rows": [
    {
      "invitation_id": 1,
      "oob_id": "ef62b35f-ebd1-4760-89cd-1b33e6506f22",
      "contact_id": null,
      "connection_id": "853dbc66-4daa-45a8-8a6b-3cb81639c108",
      "my_did": "",
      "alias": "Documentation-Example",
      "invitation_key": "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3",
      "invitation_mode": "multi",
      "invitation_url": "https://example/agent?oob=eyJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzEuMS9pbnZpdGF0aW9uIiwgIkBpZCI6ICI5MGRhNGU1YS0yNzQxLTRlZmUtYWY2ZC0yMTVkMTZhODQyOGEiLCAibGFiZWwiOiAiUHJvdmVuIiwgImhhbmRzaGFrZV9wcm90b2NvbHMiOiBbImh0dHBzOi8vZGlkY29tbS5vcmcvZGlkZXhjaGFuZ2UvMS4xIl0sICJzZXJ2aWNlcyI6IFt7ImlkIjogIiNpbmxpbmUiLCAidHlwZSI6ICJkaWQtY29tbXVuaWNhdGlvbiIsICJyZWNpcGllbnRLZXlzIjogWyJkaWQ6a2V5Ono2TWtwYXpVNEVCTVpKU1VDN3VkOHFLMVRhNkwxTGtqMXhUQ1E3OVJMcVZUTHdRMyN6Nk1rcGF6VTRFQk1aSlNVQzd1ZDhxSzFUYTZMMUxrajF4VENRNzlSTHFWVEx3UTMiXSwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL2J1Y2tldHM0bGlmZS5zaGFyZS56cm9rLmlvL2FnZW50In1dfQ",
      "invitation_msg_id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
      "invitation": {
        "@type": "https://didcomm.org/out-of-band/1.1/invitation",
        "@id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
        "label": "Proven",
        "handshake_protocols": [
          "https://didcomm.org/didexchange/1.1"
        ],
        "services": [
          {
            "id": "#inline",
            "type": "did-communication",
            "recipientKeys": [
              "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3"
            ],
            "serviceEndpoint": "https://example/agent"
          }
        ]
      },
      "wallet_id": "6b4ae41c-9c8a-49fd-9efa-fa0436d40b5c",
      "accept": "auto",
      "their_role": "sender",
      "their_label": "Proven",
      "service_endpoint": "https://example/agent",
      "domain": "example",
      "path": "agent",
      "workflow_status": "active",
      "state": "done",
      "description": "",
      "active_starting_at": "2025-06-26T21:49:44.196Z",
      "active_ending_at": null,
      "uses_allowed": null,
      "uses_total": 2,
      "created_at": "2025-06-26T21:49:44.252Z",
      "updated_at": "2025-06-26T22:29:00.649Z"
    }
  ],
  "count": 1
}

Create a new invitation

post

This endpoint creates a new invitation of type OOB.

Authorizations
x-api-keystringRequired
Body
invitation_typestringRequired

The type of the invitation (OOB).

Default: OOB
contact_idstringOptional

The ID of the contact.

Default: undefined
handshake_protocolstringOptional

The handshake protocol for OOB invitations.

Default: undefined
aliasstringOptional

The alias for the invitation.

Default: undefined
invitation_modestringOptional

The mode of the invitation.

Default: undefined
acceptstringOptional

The accept criteria for the invitation.

Default: true
publicbooleanOptional

Whether the invitation is public.

Default: false
invitation_rolestringOptional

The role of the invitation.

Default: undefined
invitation_labelstringOptional

The label of the invitation.

Default: undefined
invitation_statusstringOptional

The status of the invitation.

Default: undefined
invitation_descriptionstringOptional

The description of the invitation.

Default: undefined
purposestringOptional

The purpose of the invitation (optional unique identifier - if provided, must be unique per wallet).

Default: undefined
invitation_active_starting_atstring · date-timeOptional

The start time of the invitation's active period.

Default: undefined
invitation_active_ending_atstring · date-timeOptional

The end time of the invitation's active period.

Default: undefined
uses_allowednumberOptional

The number of uses allowed for the invitation.

Default: undefined
Responses
200

Invitation created successfully

application/json
invitation_urlstringOptionalExample: https://fresh-fox-61.tun2.indiciotech.io?oob=eyJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzEuMS9pbnZpdGF0aW9uIiwgIkBpZCI6ICIzMzAyMDMyZC05MTA4LTQ4YzMtYmM3ZC1mZjZiNzU1ZDcyMmQiLCAibGFiZWwiOiAiT09CIiwgImhhbmRzaGFrZV9wcm90b2NvbHMiOiBbImh0dHBzOi8vZGlkY29tbS5vcmcvZGlkZXhjaGFuZ2UvMS4xIl0sICJzZXJ2aWNlcyI6IFsiZGlkOnNvdjo5NUxBeVFpdE5oNWtWYWF5Q0ZDOVMyIl19
invitation_idintegerOptionalExample: 1
contact_idstringOptional
post/api/v1/invitations
POST /api/v1/invitations HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 422

{
  "contact_id": "",
  "alias": "API Invitation",
  "invitation_type": "OOB",
  "handshake_protocol": "https://didcomm.org/didexchange/1.1",
  "invitation_mode": "once",
  "accept": "auto",
  "public": false,
  "invitation_role": "Holder",
  "invitation_label": "OOB",
  "invitation_status": "active",
  "invitation_description": "Invitation created through API",
  "purpose": "",
  "invitation_active_starting_at": null,
  "invitation_active_ending_at": null,
  "uses_allowed": 1
}
{
  "invitation_url": "https://fresh-fox-61.tun2.indiciotech.io?oob=eyJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzEuMS9pbnZpdGF0aW9uIiwgIkBpZCI6ICIzMzAyMDMyZC05MTA4LTQ4YzMtYmM3ZC1mZjZiNzU1ZDcyMmQiLCAibGFiZWwiOiAiT09CIiwgImhhbmRzaGFrZV9wcm90b2NvbHMiOiBbImh0dHBzOi8vZGlkY29tbS5vcmcvZGlkZXhjaGFuZ2UvMS4xIl0sICJzZXJ2aWNlcyI6IFsiZGlkOnNvdjo5NUxBeVFpdE5oNWtWYWF5Q0ZDOVMyIl19",
  "invitation_id": 1,
  "contact_id": ""
}

Accept an invitation

post

This endpoint accepts an invitation of type OOB.

Authorizations
x-api-keystringRequired
Body
invitation_urlstringOptional

The URL of the invitation to be accepted.

Default: undefinedExample: https://example.com/invitation?oob=abc123
Responses
200

Invitation accepted successfully

application/json
successbooleanOptional
invitation_recordobjectOptional
post/api/v1/invitations/accept
POST /api/v1/invitations/accept HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 62

{
  "invitation_url": "https://example.com/invitation?oob=abc123"
}
{
  "success": true,
  "invitation_record": {
    "state": "deleted",
    "created_at": "2025-06-26T22:28:53.800275Z",
    "updated_at": "2025-06-26T22:28:53.800275Z",
    "trace": false,
    "oob_id": "d8311180-d94f-4480-8f28-dd9dd9257c0c",
    "invi_msg_id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
    "invitation": {
      "@type": "https://didcomm.org/out-of-band/1.1/invitation",
      "@id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
      "label": "Proven",
      "handshake_protocols": [
        "https://didcomm.org/didexchange/1.1"
      ],
      "services": [
        {
          "id": "#inline",
          "type": "did-communication",
          "recipientKeys": [
            "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3"
          ],
          "serviceEndpoint": "https://example/agent"
        }
      ]
    },
    "connection_id": "29821f73-9db4-45d5-aee9-bd5c8bc2213a",
    "role": "receiver",
    "multi_use": false
  }
}

Get invitation by ID

get

This endpoint retrieves a specific invitation by its ID.

Authorizations
x-api-keystringRequired
Path parameters
invitation_idstringRequired

The ID of the invitation.

Example: 1
Responses
200

Invitation retrieved successfully

application/json
invitationobjectOptional

The retrieved invitation credential record.

get/api/v1/invitations/{invitation_id}
GET /api/v1/invitations/{invitation_id} HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
  "invitation_id": 1,
  "oob_id": "ef62b35f-ebd1-4760-89cd-1b33e6506f22",
  "contact_id": null,
  "connection_id": "853dbc66-4daa-45a8-8a6b-3cb81639c108",
  "my_did": "",
  "alias": "Documentation-Example",
  "invitation_key": "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3",
  "invitation_mode": "multi",
  "invitation_url": "https://example/agent?oob=eyJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzEuMS9pbnZpdGF0aW9uIiwgIkBpZCI6ICI5MGRhNGU1YS0yNzQxLTRlZmUtYWY2ZC0yMTVkMTZhODQyOGEiLCAibGFiZWwiOiAiUHJvdmVuIiwgImhhbmRzaGFrZV9wcm90b2NvbHMiOiBbImh0dHBzOi8vZGlkY29tbS5vcmcvZGlkZXhjaGFuZ2UvMS4xIl0sICJzZXJ2aWNlcyI6IFt7ImlkIjogIiNpbmxpbmUiLCAidHlwZSI6ICJkaWQtY29tbXVuaWNhdGlvbiIsICJyZWNpcGllbnRLZXlzIjogWyJkaWQ6a2V5Ono2TWtwYXpVNEVCTVpKU1VDN3VkOHFLMVRhNkwxTGtqMXhUQ1E3OVJMcVZUTHdRMyN6Nk1rcGF6VTRFQk1aSlNVQzd1ZDhxSzFUYTZMMUxrajF4VENRNzlSTHFWVEx3UTMiXSwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL2J1Y2tldHM0bGlmZS5zaGFyZS56cm9rLmlvL2FnZW50In1dfQ",
  "invitation_msg_id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
  "invitation": {
    "@type": "https://didcomm.org/out-of-band/1.1/invitation",
    "@id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
    "label": "Proven",
    "handshake_protocols": [
      "https://didcomm.org/didexchange/1.1"
    ],
    "services": [
      {
        "id": "#inline",
        "type": "did-communication",
        "recipientKeys": [
          "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3"
        ],
        "serviceEndpoint": "https://example/agent"
      }
    ]
  },
  "wallet_id": "6b4ae41c-9c8a-49fd-9efa-fa0436d40b5c",
  "accept": "auto",
  "their_role": "sender",
  "their_label": "Proven",
  "service_endpoint": "https://example/agent",
  "domain": "example",
  "path": "agent",
  "workflow_status": "active",
  "state": "done",
  "description": "",
  "active_starting_at": "2025-06-26T21:49:44.196Z",
  "active_ending_at": null,
  "uses_allowed": null,
  "uses_total": 2,
  "created_at": "2025-06-26T21:49:44.252Z",
  "updated_at": "2025-06-26T22:29:00.649Z"
}

Update an invitation

put

This endpoint updates an existing invitation.

Authorizations
x-api-keystringRequired
Path parameters
invitation_idstringRequired

The ID of the invitation to update.

Body
workflow_statusstringOptional

The workflow status of the invitation.

Example: active
descriptionstringOptional

The description of the invitation.

Example: This is an updated invitation.
purposestringOptional

The purpose of the invitation (unique identifier).

Example: verification-demo-2025
active_starting_atstring · date-timeOptional

The start time of the invitation.

Example: 2023-01-01T00:00:00Z
active_ending_atstring · date-timeOptional

The end time of the invitation.

Example: 2030-12-31T23:59:59Z
uses_allowedintegerOptional

The number of uses allowed for the invitation.

Example: 1
Responses
200

Invitation updated successfully

application/json
updatedInvitationobjectOptional

The updated invitation record.

put/api/v1/invitations/{invitation_id}
PUT /api/v1/invitations/{invitation_id} HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 213

{
  "workflow_status": "active",
  "description": "This is an updated invitation.",
  "purpose": "verification-demo-2025",
  "active_starting_at": "2023-01-01T00:00:00Z",
  "active_ending_at": "2030-12-31T23:59:59Z",
  "uses_allowed": 1
}
{
  "invitation_id": 1,
  "oob_id": "ef62b35f-ebd1-4760-89cd-1b33e6506f22",
  "contact_id": null,
  "connection_id": "853dbc66-4daa-45a8-8a6b-3cb81639c108",
  "my_did": "",
  "alias": "Documentation-Example",
  "invitation_key": "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3",
  "invitation_mode": "multi",
  "invitation_url": "https://example/agent?oob=eyJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzEuMS9pbnZpdGF0aW9uIiwgIkBpZCI6ICI5MGRhNGU1YS0yNzQxLTRlZmUtYWY2ZC0yMTVkMTZhODQyOGEiLCAibGFiZWwiOiAiUHJvdmVuIiwgImhhbmRzaGFrZV9wcm90b2NvbHMiOiBbImh0dHBzOi8vZGlkY29tbS5vcmcvZGlkZXhjaGFuZ2UvMS4xIl0sICJzZXJ2aWNlcyI6IFt7ImlkIjogIiNpbmxpbmUiLCAidHlwZSI6ICJkaWQtY29tbXVuaWNhdGlvbiIsICJyZWNpcGllbnRLZXlzIjogWyJkaWQ6a2V5Ono2TWtwYXpVNEVCTVpKU1VDN3VkOHFLMVRhNkwxTGtqMXhUQ1E3OVJMcVZUTHdRMyN6Nk1rcGF6VTRFQk1aSlNVQzd1ZDhxSzFUYTZMMUxrajF4VENRNzlSTHFWVEx3UTMiXSwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL2J1Y2tldHM0bGlmZS5zaGFyZS56cm9rLmlvL2FnZW50In1dfQ",
  "invitation_msg_id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
  "invitation": {
    "@type": "https://didcomm.org/out-of-band/1.1/invitation",
    "@id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
    "label": "Proven",
    "handshake_protocols": [
      "https://didcomm.org/didexchange/1.1"
    ],
    "services": [
      {
        "id": "#inline",
        "type": "did-communication",
        "recipientKeys": [
          "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3"
        ],
        "serviceEndpoint": "https://example/agent"
      }
    ]
  },
  "wallet_id": "6b4ae41c-9c8a-49fd-9efa-fa0436d40b5c",
  "accept": "auto",
  "their_role": "sender",
  "their_label": "Proven",
  "service_endpoint": "https://example/agent",
  "domain": "example",
  "path": "agent",
  "workflow_status": "active",
  "state": "done",
  "description": "This is an updated invitation.",
  "active_starting_at": "2023-01-01T00:00:00.000Z",
  "active_ending_at": "2023-12-31T23:59:59.000Z",
  "uses_allowed": 500,
  "uses_total": 2,
  "created_at": "2025-06-26T21:49:44.252Z",
  "updated_at": "2025-06-26T22:42:13.411Z"
}

Delete an invitation

delete

This endpoint deletes an existing invitation.

Authorizations
x-api-keystringRequired
Path parameters
invitation_idstringRequired

The ID of the invitation to delete.

Responses
200

Invitation deleted successfully

application/json
successstringOptionalExample: Invitation was deleted successfully!
delete/api/v1/invitations/{invitation_id}
DELETE /api/v1/invitations/{invitation_id} HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
  "success": "Invitation was deleted successfully!"
}

Get invitation by purpose

get

Retrieves a specific invitation by its purpose identifier.

Authorizations
x-api-keystringRequired
Path parameters
purposestringRequired

The purpose identifier of the invitation.

Example: demo-1
Responses
200

Invitation retrieved successfully

application/json
invitationobjectOptional

The retrieved invitation credential record.

get/api/v1/invitations/purpose/{purpose}
GET /api/v1/invitations/purpose/{purpose} HTTP/1.1
Host: proven-4-2-test.proven.indicio.tech
x-api-key: YOUR_API_KEY
Accept: */*
{
  "invitation_id": 1,
  "oob_id": "ef62b35f-ebd1-4760-89cd-1b33e6506f22",
  "contact_id": null,
  "connection_id": "853dbc66-4daa-45a8-8a6b-3cb81639c108",
  "my_did": "",
  "alias": "Documentation-Example",
  "invitation_key": "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3",
  "invitation_mode": "multi",
  "invitation_url": "https://example/agent?oob=eyJAdHlwZSI6ICJodHRwczovL2RpZGNvbW0ub3JnL291dC1vZi1iYW5kLzEuMS9pbnZpdGF0aW9uIiwgIkBpZCI6ICI5MGRhNGU1YS0yNzQxLTRlZmUtYWY2ZC0yMTVkMTZhODQyOGEiLCAibGFiZWwiOiAiUHJvdmVuIiwgImhhbmRzaGFrZV9wcm90b2NvbHMiOiBbImh0dHBzOi8vZGlkY29tbS5vcmcvZGlkZXhjaGFuZ2UvMS4xIl0sICJzZXJ2aWNlcyI6IFt7ImlkIjogIiNpbmxpbmUiLCAidHlwZSI6ICJkaWQtY29tbXVuaWNhdGlvbiIsICJyZWNpcGllbnRLZXlzIjogWyJkaWQ6a2V5Ono2TWtwYXpVNEVCTVpKU1VDN3VkOHFLMVRhNkwxTGtqMXhUQ1E3OVJMcVZUTHdRMyN6Nk1rcGF6VTRFQk1aSlNVQzd1ZDhxSzFUYTZMMUxrajF4VENRNzlSTHFWVEx3UTMiXSwgInNlcnZpY2VFbmRwb2ludCI6ICJodHRwczovL2J1Y2tldHM0bGlmZS5zaGFyZS56cm9rLmlvL2FnZW50In1dfQ",
  "invitation_msg_id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
  "invitation": {
    "@type": "https://didcomm.org/out-of-band/1.1/invitation",
    "@id": "90da4e5a-2741-4efe-af6d-215d16a8428a",
    "label": "Proven",
    "handshake_protocols": [
      "https://didcomm.org/didexchange/1.1"
    ],
    "services": [
      {
        "id": "#inline",
        "type": "did-communication",
        "recipientKeys": [
          "did:key:z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3#z6MkpazU4EBMZJSUC7ud8qK1Ta6L1Lkj1xTCQ79RLqVTLwQ3"
        ],
        "serviceEndpoint": "https://example/agent"
      }
    ]
  },
  "wallet_id": "6b4ae41c-9c8a-49fd-9efa-fa0436d40b5c",
  "accept": "auto",
  "their_role": "sender",
  "their_label": "Proven",
  "service_endpoint": "https://example/agent",
  "domain": "example",
  "path": "agent",
  "workflow_status": "active",
  "state": "done",
  "description": "",
  "purpose": "demo-1",
  "active_starting_at": "2025-06-26T21:49:44.196Z",
  "active_ending_at": null,
  "uses_allowed": null,
  "uses_total": 2,
  "created_at": "2025-06-26T21:49:44.252Z",
  "updated_at": "2025-06-26T22:29:00.649Z"
}

Last updated