LeafLink Customers API

The customers API from LeafLink — 7 operation(s) for customers.

Business capability
Customer Data Management BC-420.10

Operations 16

POST /customers #
PUT /customers/{id} #
PATCH /customers/{id} #
DELETE /customers/{id} #
POST /customers/{id}/corporate_address #
PATCH /customers/{id}/corporate_address #
DELETE /customers/{id}/corporate_address #
POST /customers/{id}/delivery_address #
PATCH /customers/{id}/delivery_address #
DELETE /customers/{id}/delivery_address #
DELETE /customers/active_entries/{id} #
GET /customers/ List customers #
POST /customers/ Create a customer #
GET /customers/{id}/ Retrieve a customer #
PATCH /customers/{id}/ Update a customer #
DELETE /customers/{id}/ Archive a customer #

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/leaflink-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

leaflink-customers-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Leaflink Customers API
  contact:
    email: support@leaflink.com
  version: '1.0'
  description: 'Operations tagged customers across 2 of this provider''s published API definitions: leaflink-api-openapi-original.yml, leaflink-marketplace-v2-openapi-original.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.leaflink.com
  description: LeafLink API production URL.
- url: https://staging-api.leaflink.com
  description: LeafLink API staging URL.
- url: https://app.leaflink.com/api/v2
tags:
- name: customers
paths:
  /customers:
    post:
      operationId: customers_create
      description: LeafLink API for Marketplace customers.
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnifiedCustomerRequest'
        required: true
      security:
      - bearerAuth: []
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedCustomer'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    servers:
    - url: https://api.leaflink.com
      description: LeafLink API production URL.
    - url: https://staging-api.leaflink.com
      description: LeafLink API staging URL.
  /customers/{id}:
    put:
      operationId: customers_update
      description: LeafLink API for Marketplace customers.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnifiedCustomerRequest'
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedCustomer'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    patch:
      operationId: customers_partial_update
      description: LeafLink API for Marketplace customers.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUnifiedCustomerRequest'
      security:
      - bearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedCustomer'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    delete:
      operationId: customers_destroy
      description: For delete request
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      security:
      - bearerAuth: []
      responses:
        '204':
          description: No response body
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    servers:
    - url: https://api.leaflink.com
      description: LeafLink API production URL.
    - url: https://staging-api.leaflink.com
      description: LeafLink API staging URL.
  /customers/{id}/corporate_address:
    post:
      operationId: customers_corporate_address_create
      description: Action route for interfacing with the corporate address
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnifiedAddressRequest'
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedAddress'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    patch:
      operationId: customers_corporate_address_partial_update
      description: Action route for interfacing with the corporate address
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUnifiedAddressRequest'
      security:
      - bearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedAddress'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    delete:
      operationId: customers_corporate_address_destroy
      description: Action route for interfacing with the corporate address
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      security:
      - bearerAuth: []
      responses:
        '204':
          description: No response body
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    servers:
    - url: https://api.leaflink.com
      description: LeafLink API production URL.
    - url: https://staging-api.leaflink.com
      description: LeafLink API staging URL.
  /customers/{id}/delivery_address:
    post:
      operationId: customers_delivery_address_create
      description: Action route for interfacing with the delivery address
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnifiedAddressRequest'
        required: true
      security:
      - bearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedAddress'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    patch:
      operationId: customers_delivery_address_partial_update
      description: Action route for interfacing with the delivery address
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PatchedUnifiedAddressRequest'
      security:
      - bearerAuth: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnifiedAddress'
          description: ''
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    delete:
      operationId: customers_delivery_address_destroy
      description: Action route for interfacing with the delivery address
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company customer.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      security:
      - bearerAuth: []
      responses:
        '204':
          description: No response body
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    servers:
    - url: https://api.leaflink.com
      description: LeafLink API production URL.
    - url: https://staging-api.leaflink.com
      description: LeafLink API staging URL.
  /customers/active_entries/{id}:
    delete:
      operationId: customers_active_entries_destroy
      description: Delete an Active Entry for a company
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this company activity entry.
        required: true
      - name: LeafLink-Version
        description: '[API version docs](/api/getting-started/#versioning)'
        required: false
        in: header
        schema:
          type: string
          format: date
      tags:
      - customers
      security:
      - bearerAuth: []
      responses:
        '204':
          description: No response body
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: The requests quota in the time window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: The remaining requests quota in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: The time remaining in the current window, specified in seconds.
            RateLimit-Policy:
              schema:
                type: string
              description: The quota policy information.
        '429':
          description: Rate Limit Error
          headers:
            Retry-After:
              schema:
                type: integer
              description: The time remaining before the rejected request can be tried again, specified in seconds.
    servers:
    - url: https://api.leaflink.com
      description: LeafLink API production URL.
    - url: https://staging-api.leaflink.com
      description: LeafLink API staging URL.
  /customers/:
    parameters: []
    get:
      operationId: customers_list
      summary: List customers
      description: List customers for all active companies where the user is a member of.
      parameters:
      - name: fields_include
        in: query
        description: Include only specific fields in the response, separated by commas.
        schema:
          type: string
      - name: fields_exclude
        in: query
        description: Exclude specific fields in the response, separated by commas.
        schema:
          type: string
      - name: include_children
        in: query
        description: Include additional fields in the response. Available values include `tags`, `service_zone`, `managers`, `contacts`, and `license_type`
        schema:
          type: string
      - name: nickname
        in: query
        description: Filter by the customer's nickname.
        required: false
        schema:
          type: string
      - name: nickname__in
        in: query
        description: Filter by nickname__in
        required: false
        schema:
          type: string
      - name: nickname__startswith
        in: query
        description: Filter by nickname__startswith
        required: false
        schema:
          type: string
      - name: phone
        in: query
        description: Filter by the customer's business phone number.
        required: false
        schema:
          type: string
      - name: phone__in
        in: query
        description: Filter by phone__in
        required: false
        schema:
          type: string
      - name: phone__startswith
        in: query
        description: Filter by phone__startswith
        required: false
        schema:
          type: string
      - name: dba
        in: query
        description: Filter by the customer's dba.
        required: false
        schema:
          type: string
      - name: dba__in
        in: query
        description: Filter by dba__in
        required: false
        schema:
          type: string
      - name: dba__startswith
        in: query
        description: Filter by dba__startswith
        required: false
        schema:
          type: string
      - name: owner__slug
        in: query
        description: Filter by the slug of the Company that owns this Customer record.
        required: false
        schema:
          type: string
      - name: id__in
        in: query
        description: Filter by id__in
        required: false
        schema:
          type: number
      - name: id
        in: query
        description: Filter by id
        required: false
        schema:
          type: number
      - name: next_contact_date__lt
        in: query
        description: Filter by next_contact_date__lt
        required: false
        schema:
          type: string
      - name: next_contact_date__lte
        in: query
        description: Filter by next_contact_date__lte
        required: false
        schema:
          type: string
      - name: next_contact_date__gt
        in: query
        description: Filter by next_contact_date__gt
        required: false
        schema:
          type: string
      - name: next_contact_date__gte
        in: query
        description: Filter by next_contact_date__gte
        required: false
        schema:
          type: string
      - name: company_slug
        in: query
        description: Filter by the slug of the Company that owns this Customer record.
        required: false
        schema:
          type: string
      - name: external_id
        in: query
        description: Filter by the customer's external id.
        required: false
        schema:
          type: string
      - name: external_id__in
        in: query
        description: Filter by external_id__in
        required: false
        schema:
          type: string
      - name: external_id__startswith
        in: query
        description: Filter by external_id__startswith
        required: false
        schema:
          type: string
      - name: ein
        in: query
        description: Filter by the customer's EIN.
        required: false
        schema:
          type: string
      - name: ein__in
        in: query
        description: Filter by ein__in
        required: false
        schema:
          type: string
      - name: ein__startswith
        in: query
        description: Filter by ein__startswith
        required: false
        schema:
          type: string
      - name: discount_percent__lt
        in: query
        description: Filter by discount_percent__lt
        required: false
        schema:
          type: number
      - name: discount_percent__lte
        in: query
        description: Filter by discount_percent__lte
        required: false
        schema:
          type: number
      - name: discount_percent__gt
        in: query
        description: Filter by discount_percent__gt
        required: false
        schema:
          type: number
      - name: discount_percent__gte
        in: query
        description: Filter by discount_percent__gte
        required: false
        schema:
          type: number
      - name: old_license_number
        in: query
        description: Filter by the customer's previous license number.
        required: false
        schema:
          type: string
      - name: old_license_number__in
        in: query
        description: Filter by old_license_number__in
        required: false
        schema:
          type: string
      - name: old_license_number__startswith
        in: query
        description: Filter by old_license_number__startswith
        required: false
        schema:
          type: string
      - name: modified__lt
        in: query
        description: Filter by the datetime the object was last modified, less than.
        required: false
        schema:
          type: string
      - name: modified__lte
        in: query
        description: Filter by the datetime the object was last modified, less than or equal to.
        required: false
        schema:
          type: string
      - name: modified__gt
        in: query
        description: Filter by the datetime the object was last modified, greater than.
        required: false
        schema:
          type: string
      - name: modified__gte
        in: query
        description: Filter by the datetime the object was last modified, greater than or equal to.
        required: false
        schema:
          type: string
      - name: brand
        in: query
        description: Filter by the customer's associated brand.
        required: false
        schema:
          type: string
      - name: brand__in
        in: query
        description: Filter by brand__in
        required: false
        schema:
          type: string
      - name: brand__startswith
        in: query
        description: Filter by brand__startswith
        required: false
        schema:
          type: string
      - name: created_on__lt
        in: query
        description: Filter by created_on datetime, less than.
        required: false
        schema:
          type: string
      - name: created_on__lte
        in: query
        description: Filter by created_on datetime, less than or equal to.
        required: false
        schema:
          type: string
      - name: created_on__gt
        in: query
        description: Filter by created_on datetime, greater than.
        required: false
        schema:
          type: string
      - name: created_on__gte
        in: query
        description: Filter by created_on datetime, greater than or equal to.
        required: false
        schema:
          type: string
      - name: address
        in: query
        description: Filter by the customer's address.
        required: false
        schema:
          type: string
      - name: address__in
        in: query
        description: Filter by address__in
        required: false
        schema:
          type: string
      - name: address__startswith
        in: query
        description: Filter by address__startswith
        required: false
        schema:
          type: string
      - name: business_license_name
        in: query
        description: Filter by the customer's business license name.
        required: false
        schema:
          type: string
      - name: business_license_name__in
        in: query
        description: Filter by business_license_name__in
        required: false
        schema:
          type: string
      - name: business_license_name__startswith
        in: query
        description: Filter by business_license_name__startswith
        required: false
        schema:
          type: string
      - name: name
        in: query
        description: Filter by the customer's name.
        required: false
        schema:
          type: string
      - name: name__in
        in: query
        description: Filter by name__in
        required: false
        schema:
          type: string
      - name: name__startswith
        in: query
        description: Filter by name__startswith
        required: false
        schema:
          type: string
      - name: business_identifier
        in: query
        description: Filter by the customer's business identifier.
        required: false
        schema:
          type: string
      - name: business_identifier__in
        in: query
        description: Filter by business_identifier__in
        required: false
        schema:
          type: string
      - name: business_identifier__startswith
        in: query
        description: Filter by business_identifier__startswith
        required: false
        schema:
          type: string
      - name: license_number
        in: query
        description: Filter by the customer's license number.
        required: false
        schema:
          type: string
      - name: license_number__in
        in: query
        description: Filter by license_number__in
        required: false
        schema:
          type: string
      - name: license_number__startswith
        in: query
        description: Filter by license_number__startswith
        required: false
        schema:
          type: string
      - name: ext_acct_id
        in: query
        description: Filter by the customer's external account id.
        required: false
        schema:
          type: string
      - name: ext_acct_id__in
        in: query
        description: Filter by ext_acct_id__in
        required: false
        schema:
          type: string
      - name: ext_acct_id__startswith
        in: query
        description: Filter by ext_acct_id__startswith
        required: false
        schema:
          type: string
      - name: ext_acct_id__isnull
        in: query
        description: Filter by ext_acct_id__isnull
        required: false
        schema:
          type: string
      - name: email
        in: query
        description: Filter by the customer's email.
        required: false
        schema:
          type: string
      - name: email__in
        in: query
        description: Filter by email__in
        required: false
        schema:
          type: string
      - name: email__startswith
        in: query
        description: Filter by email__startswith
        required: false
        schema:
          type: string
      - name: website
        in: query
        description: Filter by the customer's website.
        required: false
        schema:
          type: string
      - name: website__in
        in: query
        description: Filter by website__in
        required: false
        schema:
          type: string
      - name: website__startswith
        in: query
        description: Filter by website__startswith
        required: false
        schema:
          type: string
      - name: owner
        in: query
        description: Filter by owner ID (supports multiple values, comma-separated).
        required: false
        schema:
          type: string
      - name: partner
        in: query
        description: Filter by p

# --- truncated at 32 KB (85 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/leaflink/refs/heads/main/openapi/leaflink-customers-api-openapi.yml