Anrok Customers API

The Anrok Customers API endpoints allow you to register customers on your seller account before their first transaction, and to retrieve the customers on your account. Normally a customer is created automatically when its first transaction is ingested; creating it ahead of time makes the customer searchable by name in Anrok - for example, when uploading a tax exemption certificate before the customer's first billing - without needing to push a placeholder transaction.

Operations 3

POST /v1/seller/customers/create Create customer #
POST /v1/seller/customers/id:{customerId}/get Get customer #
POST /v1/seller/customers/list List customers #

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/anrok:anrok-customers-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

anrok-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anrok Customers API
  version: '1.1'
  termsOfService: https://www.anrok.com/privacy-terms
  contact:
    email: support@anrok.com
  license:
    name: All rights reserved
    url: https://www.anrok.com
  x-logo:
    url: https://global-uploads.webflow.com/632add85afcd1ac30aa74675/6357842d130e1f3e0e23d1fe_anrok_logo.svg
  description: '# API reference


    The Anrok API server is accessible at `https://api.anrok.com`.


    All requests are HTTP POSTs with JSON in the body.


    Authentication is via an HTTP header `Authorization: Bearer {apiKey}`.


    The default rate limit for a seller account is 10 API requests per second.'
servers:
- url: https://api.anrok.com
security:
- http: []
tags:
- name: Customers
  description: 'The Anrok Customers API endpoints allow you to register customers on your seller

    account before their first transaction, and to retrieve the customers on your account. Normally a customer is created automatically when its

    first transaction is ingested; creating it ahead of time makes the customer searchable by name

    in Anrok - for example, when uploading a tax exemption certificate before the customer''s first

    billing - without needing to push a placeholder transaction.'
paths:
  /v1/seller/customers/create:
    post:
      tags:
      - Customers
      summary: Create customer
      description: Creates a new customer in Anrok, given a unique external Customer ID.
      operationId: customersCreate
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCustomer'
            example:
              id: cus_K39sWBu92Lo
              name: Acme Inc
              emailAddress: billing@acme.com
        required: true
      responses:
        '200':
          $ref: '#/components/responses/EmptyResponse'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                type: string
              examples:
                missingRequiredProperty:
                  value: 'Request body: "id": Required.'
                  summary: Missing required property
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - idAlreadyInUse
                    - invalidEmailAddress
                required:
                - type
              examples:
                idAlreadyInUse:
                  value:
                    type: idAlreadyInUse
                  summary: A customer with this ID already exists
                invalidEmailAddress:
                  value:
                    type: invalidEmailAddress
                  summary: Email address is not valid
        '429':
          $ref: '#/components/responses/RateLimit'
  /v1/seller/customers/id:{customerId}/get:
    parameters:
    - $ref: '#/components/parameters/CustomerId'
    post:
      tags:
      - Customers
      summary: Get customer
      description: Retrieves a customer by its ID.
      operationId: customersGet
      requestBody:
        $ref: '#/components/requestBodies/Empty'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerResponse'
              example:
                id: cus_K39sWBu92Lo
                name: Acme Inc
                emailAddress: billing@acme.com
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - customerIdNotFound
              example:
                type: customerIdNotFound
        '429':
          $ref: '#/components/responses/RateLimit'
  /v1/seller/customers/list:
    post:
      tags:
      - Customers
      summary: List customers
      description: Lists the customers on your seller account, in ascending customer ID order.
      operationId: customersList
      requestBody:
        $ref: '#/components/requestBodies/ListCustomers'
      responses:
        '200':
          $ref: '#/components/responses/ListCustomersSuccess'
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                type: string
              examples:
                invalidLimitProvided:
                  value: 'Request body: "limit": Number must be less than or equal to 100.'
                  summary: Invalid limit
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                type: object
                properties:
                  type:
                    type: string
                    enum:
                    - invalidCursor
              example:
                type: invalidCursor
        '429':
          $ref: '#/components/responses/RateLimit'
components:
  responses:
    RateLimit:
      description: Too Many Requests
      headers:
        Retry-After:
          description: Number of seconds to wait for rate limit to reset.
          schema:
            type: integer
      content:
        text/plain:
          schema:
            type: string
          example: You've exceeded your API limit of 10 per second
    ListCustomersSuccess:
      description: OK
      content:
        application/json:
          schema:
            type: object
            properties:
              customers:
                description: The list of customers, in ascending customer ID order.
                type: array
                items:
                  $ref: '#/components/schemas/CustomerResponse'
              nextCursor:
                description: The cursor to use to fetch the next page of results. Null if there are no more pages.
                type:
                - string
                - 'null'
                examples:
                - eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
              hasMore:
                description: Whether there are more customers available beyond this page.
                type: boolean
            required:
            - customers
            - nextCursor
            - hasMore
    EmptyResponse:
      description: OK
      content:
        application/json:
          schema:
            type: object
          example: {}
  schemas:
    CustomerName:
      description: The name of the customer. This is used for display purposes only.
      type: string
      examples:
      - Acme Inc
    CustomerResponse:
      type: object
      properties:
        id:
          description: Your unique identifier for this customer.
          type: string
          examples:
          - cus_K39sWBu92Lo
        name:
          $ref: '#/components/schemas/CustomerName'
        emailAddress:
          description: The email address of the customer, if one has been provided.
          type:
          - string
          - 'null'
          format: email
          examples:
          - john.doe@example.com
      required:
      - id
      - name
      - emailAddress
    CreateCustomer:
      type: object
      properties:
        id:
          description: "Your unique identifier for this customer. \nThis must exactly match the customer ID that your billing system or integration  will send on transactions, so that the customer's transactions and exemption certificates link up. For Anrok-native billing integrations, customer IDs are prefixed with the integration type (for example `stripe:cus_K39sWBu92Lo`).  Customer IDs are unique across the entire seller account.\n"
          type: string
          examples:
          - cus_K39sWBu92Lo
        name:
          $ref: '#/components/schemas/CustomerName'
        emailAddress:
          description: Optional email address of the customer.
          type:
          - string
          - 'null'
          format: email
          examples:
          - john.doe@example.com
      required:
      - id
      - name
  requestBodies:
    ListCustomers:
      content:
        application/json:
          schema:
            type: object
            properties:
              limit:
                description: The maximum number of customers to return.
                type: integer
                format: int32
                minimum: 1
                maximum: 100
                default: 25
              cursor:
                description: The cursor to use for pagination. This is the value of the `nextCursor` field returned from the previous page.
                type: string
                example: eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
          examples:
            firstPage:
              summary: List customers from the beginning
              value: {}
            cursor:
              summary: Cursor-based pagination
              value:
                cursor: eyJleGFtcGxlIjoidGhpcyBpcyBhbiBleGFtcGxlIGN1cnNvciJ9
                limit: 5
      required: true
    Empty:
      content:
        application/json:
          schema:
            type: object
          examples:
            emptyExample:
              value: {}
              summary: Empty request body
      required: true
  parameters:
    CustomerId:
      name: customerId
      in: path
      description: 'The customer ID. URL-encode the ID if it contains special characters such as `:` or `/`.

        '
      required: true
      schema:
        type: string
  securitySchemes:
    http:
      type: http
      description: 'The Anrok API uses API keys to authenticate requests. You can view and manage your API keys in [Anrok](https://app.anrok.com/-/api-keys). Use an Authorization header in the format `Bearer {apiKey}` to authenticate Anrok API requests.

        '
      scheme: Bearer
externalDocs:
  description: API Tutorials
  url: https://apidocs.anrok.com/tutorials
x-provenance:
  method: harvested
  publisher: Anrok
  source: https://apidocs.anrok.com/openapi.yaml
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)