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

Users

Show a list of organisations the current user is an admin of

get

Show a list of organisations the current user is an admin of. Can take optional parameter tenant_id which restricts the list of organisations to one tenant only.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
tenant_idstring · uuidOptional

This parameter is the ID of a tenant and if present it restricts the list of organisations to one tenant only.

Responses
200

Success

application/json
get/my_orgs
GET /my_orgs HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "archived_orgs": [
    {
      "archived": false,
      "color": "#C0C0C0",
      "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
      "logo_url": "http://url.to.logo.image.com/logo.jpg",
      "name": "vela",
      "security_rights": [
        "atom:org:assign_org_sr_to_user",
        "atom:org:view_org",
        "atom:org:list_org_admins"
      ],
      "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
      "tenant_name": "bhp"
    }
  ],
  "orgs": [
    {
      "archived": false,
      "color": "#C0C0C0",
      "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
      "logo_url": "http://url.to.logo.image.com/logo.jpg",
      "name": "vela",
      "security_rights": [
        "atom:org:assign_org_sr_to_user",
        "atom:org:view_org",
        "atom:org:list_org_admins"
      ],
      "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
      "tenant_name": "bhp"
    }
  ]
}

List invitations

get

Requires no security rights

Endpoint works for a tenant and organisation user based on the Meeco-Organisation-ID header.

Returns a list of invitations available to the caller.

In case of tenant context, endpoint returns all invitations available in the tenancy.

In case of organization context, endpoint returns all invitations available in the organisations.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Query parameters
statusstringOptional

Filter invitation by status attribute: e.g. pending,expired.
Available values: pending, accepted, expired.
To filter by more than one status separate values by using comma.

Example: pending
orderstring · enumOptional

order invitation, Default ordering: DESC (Supported: ASC, DESC)

Possible values:
order_bystring · enumOptional

order invitation for columnName, defaults column: created_at (Supported: given_name)

Possible values:
per_pageintegerOptional

Number of records per page

Example: 10
pageintegerOptional

Page number (starting from 1)

Example: 1
Header parameters
Meeco-Organisation-IDstringOptional

Specify Organisation ID to set request context to organisation

Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f
Responses
200

Invitations successfully listed

application/json
get/users/invitations
GET /users/invitations HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "invitations": [
    {
      "id": "text",
      "to": "text",
      "status": "pending",
      "token": "text",
      "user_id": "text",
      "created_at": "2026-01-01T00:00:00.000Z",
      "accepted_at": "2026-01-01T00:00:00.000Z",
      "expires_at": "2026-01-01T00:00:00.000Z",
      "message": "text",
      "tenant_id": "text",
      "org_id": "text",
      "given_name": "text",
      "family_name": "text",
      "email": "text"
    }
  ],
  "meta": {
    "order_by": "name",
    "order": "ASC",
    "order_from_params": true,
    "per_page": 10,
    "per_page_from_params": true,
    "records_count": 100,
    "page": 1,
    "page_count": 10
  }
}

Invite admin to join the platform

post

Creates an invitation for user to join the platform. If user already exists, he/she will be added to the target organisation or tenant.

Payload example to invite an admin:

{ 
  "invitation": { 
    "email": "email@meeco.me", 
    "given_name": "Peter", 
    "family_name": "Peterson", 
  } 
} 

Tenant admin will be invited to is determined by the tid attribute value inside the JWT token & empty the Meeco-Organisation-ID query param value in request.

Org admin will be invited to is determined by the tid attribute value inside the JWT token & Meeco-Organisation-ID query param value in request.

Global admin will be invited to is determined by the empty value in tid attribute value inside the JWT token & Meeco-Organisation-ID query param value in request.

The user who is sending the invitations can only invite other users within the tenant or organization they have selected.

For example, if the user is in the tenant context, they can only manage tenant users and invitations. Similarly, in the org context, they can only manage org users and invitations, and in the global context, they can only manage global users and invitations.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Header parameters
Meeco-Organisation-IDstringOptional

Specify Organisation ID to set request context to organisation

Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f
Body
Responses
201

User successfully invited

application/json
post/users/invitations
POST /users/invitations HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 114

{
  "invitation": {
    "email": "user@meeco.me",
    "given_name": "Peter",
    "family_name": "Peterson",
    "message": "Welcome message"
  }
}
{
  "invitation": {
    "id": "text",
    "to": "text",
    "status": "pending",
    "token": "text",
    "user_id": "text",
    "created_at": "2026-01-01T00:00:00.000Z",
    "accepted_at": "2026-01-01T00:00:00.000Z",
    "expires_at": "2026-01-01T00:00:00.000Z",
    "message": "text",
    "tenant_id": "text",
    "org_id": "text",
    "given_name": "text",
    "family_name": "text",
    "email": "text"
  }
}

Fetch information about the invitation

get

Fetch information about the invitation.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Header parameters
Meeco-Organisation-IDstringOptional

Specify Organisation ID to set request context to organisation

Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f
Responses
200

Invitation information successfully fetched

application/json
get/users/invitations/{id}
GET /users/invitations/{id} HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "invitation": {
    "id": "text",
    "to": "text",
    "status": "pending",
    "token": "text",
    "user_id": "text",
    "created_at": "2026-01-01T00:00:00.000Z",
    "accepted_at": "2026-01-01T00:00:00.000Z",
    "expires_at": "2026-01-01T00:00:00.000Z",
    "message": "text",
    "tenant_id": "text",
    "org_id": "text",
    "given_name": "text",
    "family_name": "text",
    "email": "text"
  }
}

Delete the invitation

delete

Deletes a pending or expired invitation.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Header parameters
Meeco-Organisation-IDstringOptional

Specify Organisation ID to set request context to organisation

Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f
Responses
204

Invitation successfully deleted

No content

delete/users/invitations/{id}
DELETE /users/invitations/{id} HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*

No content

Resend invitation

post

Resend invitation email to the user.

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Path parameters
idstringRequired
Header parameters
Meeco-Organisation-IDstringOptional

Specify Organisation ID to set request context to organisation

Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f
Responses
200

Invitation successfuly send

application/json
post/users/invitations/{id}/resend
POST /users/invitations/{id}/resend HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "invitation": {
    "id": "text",
    "to": "text",
    "status": "pending",
    "token": "text",
    "user_id": "text",
    "created_at": "2026-01-01T00:00:00.000Z",
    "accepted_at": "2026-01-01T00:00:00.000Z",
    "expires_at": "2026-01-01T00:00:00.000Z",
    "message": "text",
    "tenant_id": "text",
    "org_id": "text",
    "given_name": "text",
    "family_name": "text",
    "email": "text"
  }
}

Update a user detail

put

This endpoint updates a user detail

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
Responses
200

User successfuly updated

application/json
put/users/me
PUT /users/me HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 51

{
  "user": {
    "given_name": "text",
    "family_name": "text"
  }
}
{
  "user": {
    "id": "text",
    "email": "text",
    "email_verified": true,
    "did": "text",
    "jwk_thumbprint_uri": "text",
    "name": "text",
    "given_name": "text",
    "family_name": "text",
    "is_active": true,
    "created_at": "2026-01-01T00:00:00.000Z",
    "updated_at": "2026-01-01T00:00:00.000Z"
  }
}

Change user password

put

This endpoint updates a user password

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Body
Responses
200

User password successfuly updated

No content

put/users/me/password
PUT /users/me/password HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Content-Type: application/json
Accept: */*
Content-Length: 80

{
  "user": {
    "old_password": "text",
    "new_password": "text",
    "confirm_password": "text"
  }
}

No content

Show info about the current user

get

Show information about the user with a valid JWT:

  • User ID from the JWT (taken from sub)

  • Tenant name

  • Whether the user is known to ATOM

Authorizations
AuthorizationstringRequired
Bearer authentication header of the form Bearer <token>.
Responses
200

Success

application/json
family_namestring · nullableRequired

User family name

given_namestring · nullableRequired

User given name

idstring · uuidRequired

User ID from the JWT (taken from sub)

user_known_to_atombooleanRequired

Whether the user is known to ATOM

user_typestring · nullableRequired

user, tenant-agent, or org-agent

get/whoami
GET /whoami HTTP/1.1
Host: api-sandbox.svx.exchange
Authorization: Bearer YOUR_SECRET_TOKEN
Accept: */*
{
  "administered_archived_orgs": [
    {
      "color": "text",
      "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
      "logo_url": "https://example.com",
      "name": "organisation name",
      "tenant_active": true,
      "tenant_id": "3bd00941-6e5b-4852-aefd-3c55f5660592"
    }
  ],
  "administered_archived_tenants": [
    {
      "color": "text",
      "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
      "logo_url": "https://example.com",
      "name": "tenant name"
    }
  ],
  "administered_orgs": [
    {
      "color": "text",
      "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
      "logo_url": "https://example.com",
      "name": "organisation name",
      "tenant_active": true,
      "tenant_id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
      "user_became_org_admin_at": "2026-01-01T00:00:00.000Z"
    }
  ],
  "administered_tenants": [
    {
      "color": "text",
      "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
      "logo_url": "https://example.com",
      "name": "tenant name"
    }
  ],
  "family_name": "text",
  "given_name": "text",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "tenant_in_jwt": {
    "tenant_id": "123e4567-e89b-12d3-a456-426614174000",
    "tenant_known_to_atom": true,
    "tenant_name": "text",
    "user_became_tenant_admin_at": "2026-01-01T00:00:00.000Z"
  },
  "user_known_to_atom": true,
  "user_type": "text"
}

Last updated