Create Agreement Participant Self

POST /agreements/{agreement_ref}/participants/self

Creates a canonical active participant for the authenticated actor on the identified agreement.


Conventions

Authentication

All endpoints require a Bearer token. Pass it in the Authorization header as Bearer <token>. Tokens are issued from the API settings page in your workspace.

Base URL

All paths are relative to https://api.allsign.app. The spec includes full paths; strip the base when constructing requests.

Versioning

The current version is 0.1.0. Breaking changes are documented in the Changelog and announced before taking effect.

Specification

The API follows OpenAPI Specification 3.x. All documentation on this page is generated directly from the spec.


Example

Bash
curl "https://api.allsign.app/agreements/{agreement_ref}/participants/self" \
-X POST \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
--data-raw '{}'

Request

Request Path
agreement_ref

Public agreement reference.

stringrequired
Request Body
{
  "type": "editor"
}
type

editor | signeroptional

Responses

201 Created

Participant created.

{
  "data": {
    "participant": {
      "active": true,
      "actor": {},
      "avatar_url": "",
      "email": "",
      "name": "",
      "ref": "00000000-0000-4000-8000-000000000000",
      "type": "commentor"
    }
  }
}
data

objectrequired
data.participant

Canonical agreement participant resource.

objectrequired
data.participant.active

booleanrequired
data.participant.actor

objectrequired
data.participant.avatar_url

stringnullrequired
data.participant.email

string (email)required
data.participant.name

stringrequired
data.participant.ref

Public stable resource reference.

string (uuid)required
data.participant.type

commentor | editor | signer | viewerrequired
400 Bad Request

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
401 Unauthorized

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
404 Not Found

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
409 Conflict

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional
422 Unprocessable Entity

{
  "error": {
    "code": "",
    "message": "",
    "request_id": "",
    "status": 1
  }
}
error

objectrequired
error.code

stringrequired
error.message

stringrequired
error.request_id

stringrequired
error.status

integerrequired
error.fields

object[]optional

© 2026 AllSign. All rights reserved.