Cable person API

The person API from Cable — 1 operation(s) for person.

Operations 4

GET /v2/person Check if a person exists #
POST /v2/person Add person information #
PUT /v2/person Update person in batch #
DELETE /v2/person Submit a deletion request for a person and any related data #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/cable-person-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

cable-person-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Reference Person API
  version: 1.0.0
servers:
- url: https://api.cable.tech
  description: Production
tags:
- name: person
paths:
  /v2/person:
    get:
      operationId: check-person
      summary: Check if a person exists
      tags:
      - person
      parameters:
      - name: person_id
        in: query
        description: The unique identifier of the person
        required: true
        schema:
          type: string
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Person exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person_checkPerson_Response_200'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '404':
          description: Person does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
    post:
      operationId: add-person-info
      summary: Add person information
      description: Endpoint for adding new person information
      tags:
      - person
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Person added successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteOperationResponse'
        '400':
          description: Invalid person data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '409':
          description: Person already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NewPersonRequest'
    put:
      operationId: update-persons
      summary: Update person in batch
      tags:
      - person
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Persons updated successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteOperationResponse'
        '400':
          description: Invalid person data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '404':
          description: Person not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
      requestBody:
        description: An array of person update payloads. Each payload must include the 'person_id' to identify the person and can include any other fields that need to be updated. The 'timestamp' field represents the time of update.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdatePersonRequest'
    delete:
      operationId: delete-person
      summary: Submit a deletion request for a person and any related data
      description: 'This operation will submit a request to delete the person and any

        related data.


        The deletion request will be processed by the system and

        the data will be removed permanently from Cable''s system. Deletion

        requests are not processed immediately and may take some time to

        complete.


        The status of the deletion request can be checked using the

        deletion request ID and the status endpoint.


        <Warning>This operation is not intended for regular use and should be used with caution.</Warning>

        '
      tags:
      - person
      parameters:
      - name: Authorization
        in: header
        description: Bearer authentication
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Deletion request submitted successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Person_deletePerson_Response_200'
        '401':
          description: Unauthorized request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '404':
          description: Person does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                person_id:
                  type: string
                  description: The unique identifier of the person
                reason:
                  type: string
                  description: The reason for deletion
              required:
              - person_id
              - reason
components:
  schemas:
    Address:
      type: object
      properties:
        lines:
          type: array
          items:
            type: string
        city:
          type: string
        state:
          type: string
        county:
          type: string
        postal_code:
          type: string
        country:
          type: string
      description: Legal/contact address for the entity
      title: Address
    PersonAccountStatus:
      type: string
      enum:
      - APPROVED
      - BLOCKED
      - CLOSED
      - PENDING
      - REJECTED
      description: The account status for the related person. Refer to the Developer Guide "Entity Account Statuses" to understand what account statuses mean at Cable, and how to use them
      title: PersonAccountStatus
    Person:
      type: object
      properties:
        person_id:
          type: string
          description: Unique external identifier of the person entity, ID stored in your database / back-office
        timestamp:
          type: string
          format: date-time
          description: When this person record was created or last modified in your system, in ISO 8601 format. For example, account opening date or KYC completion time.
        is_test_user:
          type: boolean
          default: false
          description: If the person is a test user, this should be set to true
        is_retail_customer:
          type: boolean
          description: Indicates if the person is in the context of retail companies. If the value is false, fields is_beneficial_owner, is_director, is_account_owner and is_shareholder are required.
        related_company_id:
          type: string
          description: Unique external identifier of the related company entity
        is_beneficial_owner:
          type: boolean
          description: If the person is a beneficial owner of the related company, this should be set to true. If is_retail_customer is false, this field is required.
        is_director:
          type: boolean
          description: If the person is a director of the related company, this should be set to true. If is_retail_customer is false, this field is required.
        is_account_owner:
          type: boolean
          description: If the person is an account owner of the related company, this should be set to true. If is_retail_customer is false, this field is required.
        is_sole_prop:
          type: boolean
          description: If the related company is a sole proprietorship (or sole trader if in the UK), this should be set to true.
        is_shareholder:
          type: boolean
          description: If the person is a shareholder of the related company, this should be set to true. If is_retail_customer is false, this field is required.
        is_significant_control_person:
          type: boolean
          description: If the person has significant control of the related company, this should be set to true
        ownership_percentage:
          type: number
          format: double
          description: If the person is a shareholder of the related company, this should be set to their ownership percentage, as a value between 0 and 1
        account_status:
          $ref: '#/components/schemas/PersonAccountStatus'
          description: The account status for the related person. Refer to the Developer Guide "Entity Account Statuses" to understand what account statuses mean at Cable, and how to use them
        name:
          type: string
          description: The provided full name of the person
        first_name:
          type: string
          description: The provided first name of the person
        last_name:
          type: string
          description: The provided last name of the person
        email:
          type: string
          description: Contact email for the person
        address:
          $ref: '#/components/schemas/Address'
        phone_number:
          type: string
          description: Contact telephone number for the person
        date_of_birth:
          type: string
          format: date
        nationality:
          type: string
          description: 2 or 3 Character ISO 3166 Country Code (https://w.wiki/4rY)
        occupation:
          type: string
          description: Primary occupation of the individual
        first_transaction_completed_at:
          type: string
          format: date-time
          description: Original timestamp of when the person completed their first transaction
        national_identification_number:
          $ref: '#/components/schemas/PersonNationalIdentificationNumber'
        product_type:
          type: string
      required:
      - person_id
      - timestamp
      - is_test_user
      - is_retail_customer
      description: Request body for adding information about persons
      title: Person
    WriteOperationResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Indicates if the write operation was successful.
        write_count:
          type: integer
          description: The number of records written to the database.
        message:
          type: string
          description: Provides additional information about the operation result.
        organization_id:
          type: string
          description: The organization ID for which the operation was performed.
      required:
      - success
      - write_count
      - message
      - organization_id
      title: WriteOperationResponse
    UpdatePersonRequest:
      type: array
      items:
        $ref: '#/components/schemas/Person'
      title: UpdatePersonRequest
    GeneralError:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
        errors:
          type: array
          items:
            $ref: '#/components/schemas/GeneralErrorErrorsItems'
          description: Detailed information about errors in specific fields.
      required:
      - code
      - message
      title: GeneralError
    GeneralErrorErrorsItems:
      type: object
      properties:
        field:
          type: string
        message:
          type: string
      title: GeneralErrorErrorsItems
    PersonNationalIdentificationNumber:
      type: object
      properties:
        type:
          type: string
          description: Type of national identification number
        value:
          type: string
          description: National identification number
      required:
      - type
      - value
      title: PersonNationalIdentificationNumber
    NewPersonRequest:
      type: array
      items:
        $ref: '#/components/schemas/Person'
      title: NewPersonRequest
    Person_checkPerson_Response_200:
      type: object
      properties:
        person_id:
          type: string
          description: The unique identifier of the person
        first_seen:
          type: string
          format: date-time
          description: This represents the earliest timestamp associated with the person
        last_seen:
          type: string
          format: date-time
          description: This represents the latest timestamp associated with the person
        organization_id:
          type: string
          description: The organization ID for which the person was found
      title: Person_checkPerson_Response_200
    Person_deletePerson_Response_200:
      type: object
      properties:
        person_id:
          type: string
          description: The unique identifier of the person
        deletion_request_id:
          type: string
          description: The unique identifier of the deletion request
      title: Person_deletePerson_Response_200
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
    BearerAuth:
      type: http
      scheme: bearer