Partner API

Clients

Read every client of your company, page by change time. email / phone come masked unless the key carries clients:read_email / clients:read_phone.

GET/api/external/v1/clients

#Clients changed since a time (delta feed)

Auth X-Api-Key Partner API

Clients of your company ordered by change time. Start with updated_since; afterwards send the last next_cursor (the cursor wins over updated_since) and keep reading while has_more is true. Rows changed inside the last few seconds (as_of) come with the next call.

Query parameters

updated_since string<date-time> optional
cursor string optional
per_page integer optional

Responses

200

One page.

401

No key, an unknown / expired / revoked key, or a refused token.

422

invalid_request with details.errors = { field: reason }.

curl "https://api.your-brand.com/api/external/v1/clients" \
  -H "X-Api-Key: $OCTOLIT_PARTNER_KEY"
Response 200
{
  "data": [
    {
      "id": 1042,
      "first_name": "Ana",
      "last_name": "Ortiz",
      "full_name": "Ana Ortiz",
      "email": "ana.ortiz@example.com",
      "emails": [
        "ana.ortiz@example.com"
      ],
      "phone": "+357 99 123456",
      "phones": [
        "+357 99 123456"
      ],
      "brand": {
        "id": 1042,
        "name": "Main"
      },
      "desk": {
        "id": 1042,
        "name": "Main"
      },
      "sales_status": "string",
      "sales_status_changed_at": "2026-11-11T09:30:00Z",
      "kyc": {
        "id_status": "string",
        "billing_status": "string"
      },
      "active": true,
      "is_lead": true,
      "deleted": true,
      "country": "CY",
      "external_user_id": "abc123",
      "agents": [
        {
          "id": 1042,
          "name": "Main"
        }
      ],
      "created_at": "2026-11-11T09:30:00.000000Z",
      "updated_at": "2026-11-11T09:31:12.000000Z",
      "first_deposit_date": "2026-11-11T09:30:00Z",
      "comments": [
        null
      ],
      "custom_fields": {}
    }
  ],
  "next_cursor": "eyJ0IjoiMjAyNi0xMS0wMVQwMDowMDowMFoiLCJpIjoxMDQyfQ",
  "has_more": true,
  "as_of": "2026-11-11T09:30:00Z",
  "per_page": 1
}
GET/api/external/v1/clients/deleted

#Clients deleted since a time

Auth X-Api-Key Partner API

Query parameters

updated_since string<date-time> optional
cursor string optional
per_page integer optional

Responses

200

One page of { id, deleted_at }.

curl "https://api.your-brand.com/api/external/v1/clients/deleted" \
  -H "X-Api-Key: $OCTOLIT_PARTNER_KEY"
Response 200
{
  "data": [
    {
      "id": 1042,
      "deleted_at": "2026-11-11T09:30:00Z"
    }
  ],
  "next_cursor": "eyJ0IjoiMjAyNi0xMS0wMVQwMDowMDowMFoiLCJpIjoxMDQyfQ",
  "has_more": true,
  "as_of": "2026-11-11T09:30:00Z",
  "per_page": 1
}
GET/api/external/v1/clients/{id}

#One client by the Octolit CRM's id

Auth X-Api-Key Partner API

Path parameters

id integer required

Responses

200

The client.

404

not_found / user_not_found / account_not_found / symbol_not_found.

curl "https://api.your-brand.com/api/external/v1/clients/1042" \
  -H "X-Api-Key: $OCTOLIT_PARTNER_KEY"
Response 200
{
  "data": {
    "id": 1042,
    "first_name": "Ana",
    "last_name": "Ortiz",
    "full_name": "Ana Ortiz",
    "email": "ana.ortiz@example.com",
    "emails": [
      "ana.ortiz@example.com"
    ],
    "phone": "+357 99 123456",
    "phones": [
      "+357 99 123456"
    ],
    "brand": {
      "id": 1042,
      "name": "Main"
    },
    "desk": {
      "id": 1042,
      "name": "Main"
    },
    "sales_status": "string",
    "sales_status_changed_at": "2026-11-11T09:30:00Z",
    "kyc": {
      "id_status": "string",
      "billing_status": "string"
    },
    "active": true,
    "is_lead": true,
    "deleted": true,
    "country": "CY",
    "external_user_id": "abc123",
    "agents": [
      {
        "id": 1042,
        "name": "Main"
      }
    ],
    "created_at": "2026-11-11T09:30:00.000000Z",
    "updated_at": "2026-11-11T09:31:12.000000Z",
    "first_deposit_date": "2026-11-11T09:30:00Z",
    "comments": [
      null
    ],
    "custom_fields": {}
  }
}