> ## Documentation Index
> Fetch the complete documentation index at: https://docs.campfire.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Vendors

> 
        Retrieve a list of vendors/customers with optional filtering and sorting.

        Supports retrieving deleted records for audit purposes. When include_deleted=true,
        returns ONLY deleted records with minimal data (id, is_deleted, deleted_at, last_modified_at).
        When false or omitted, returns ONLY active records.
        



## OpenAPI

````yaml https://api.meetcampfire.com/api/schema?format=json get /coa/api/vendor
openapi: 3.0.3
info:
  title: Campfire Developer APIs
  version: 1.0.0
  description: >
    ## Introduction

    Campfire's developer APIs offer granular access to Campfire's core
    accounting,

    revenue recognition, and financial data features.


    These APIs are designed to be used by developers to build custom
    integrations,

    automate workflows, and perform any other programmatic operations.
servers:
  - url: https://api.meetcampfire.com
    description: Production server
security: []
tags:
  - name: Cash Management
    description: Operations related to accounts, transactions, and other bank-related data.
  - name: Core Accounting
    description: >-
      Operations related to core accounting data, such as the chart of accounts,
      entity management, and the general ledger.
  - name: Revenue Recognition
    description: >-
      Operations related to revenue recognition, contract management, and
      contract data aggregation.
  - name: Accounts Receivable
    description: Operations related to invoicing and the AR subledger
  - name: Accounts Payable
    description: Operations related to billing and the AP subledger.
  - name: Financial Statements
    description: Operations related to financial statement generation and data aggregation.
  - name: Settings
    description: Operations related to system and accounting settings configuration.
paths:
  /coa/api/vendor:
    get:
      tags:
        - Company Objects
      summary: List Vendors
      description: |2-

                Retrieve a list of vendors/customers with optional filtering and sorting.

                Supports retrieving deleted records for audit purposes. When include_deleted=true,
                returns ONLY deleted records with minimal data (id, is_deleted, deleted_at, last_modified_at).
                When false or omitted, returns ONLY active records.
                
      operationId: coa_api_vendor_list
      parameters:
        - in: query
          name: external_id
          schema:
            type: string
          description: Filter by external ID
        - in: query
          name: include_deleted
          schema:
            type: boolean
            default: false
          description: >-
            When set to 'true', returns ONLY deleted records instead of active
            records. Deleted records contain minimal data: 'id',
            'is_deleted=true', 'deleted_at' timestamp, and 'last_modified_at'.
            When 'false' or omitted, returns ONLY active records. This provides
            clean separation between active and deleted data.
        - in: query
          name: include_inactive
          schema:
            type: boolean
            default: false
          description: Include inactive vendors in results
        - in: query
          name: last_modified_at__gte
          schema:
            type: string
          description: >-
            Filter for records modified on or after this timestamp. Format: ISO
            8601 (e.g., '2024-01-01T00:00:00Z' or '2024-01-01'). Works with both
            active records and deleted records (filters by deletion time for
            deleted records).
        - in: query
          name: last_modified_at__lte
          schema:
            type: string
          description: >-
            Filter for records modified on or before this timestamp. Format: ISO
            8601 (e.g., '2024-12-31T23:59:59Z' or '2024-12-31'). Works with both
            active records and deleted records (filters by deletion time for
            deleted records).
        - name: limit
          required: false
          in: query
          description: Number of results to return per page.
          schema:
            type: integer
        - name: offset
          required: false
          in: query
          description: The initial index from which to return the results.
          schema:
            type: integer
        - in: query
          name: q
          schema:
            type: string
          description: >-
            Search query - searches by name, DBA, email, or company name. If
            numeric, also searches by ID
        - in: query
          name: sort
          schema:
            type: string
            default: name
          description: >-
            Sort order. Use field name for ascending, -field for descending.
            Supports multiple fields separated by comma. Default: name
        - in: query
          name: vendor_type
          schema:
            type: string
            enum:
              - customer
              - vendor
          description: >-
            Filter by vendor type. Can be specified multiple times for multiple
            types
          explode: true
          style: form
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedVendorList'
          description: ''
      security:
        - knoxApiToken: []
components:
  schemas:
    PaginatedVendorList:
      type: object
      required:
        - count
        - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/Vendor'
    Vendor:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        contacts:
          type: array
          items:
            $ref: '#/components/schemas/VendorContact'
        parent_name:
          type: string
          readOnly: true
        stripe_connection_name:
          type: string
          readOnly: true
          nullable: true
        stripe_connection_entity:
          type: integer
          nullable: true
          readOnly: true
        stripe_connection_portal_url:
          type: string
          readOnly: true
          nullable: true
        stripe_connection_portal_enabled:
          type: boolean
          readOnly: true
          nullable: true
        stripe_connection_invoicing_enabled:
          type: boolean
          readOnly: true
          nullable: true
        vendor_custom_field_1_name:
          type: string
          readOnly: true
        payment_term_name_display:
          type: string
          readOnly: true
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        is_deleted:
          type: boolean
          readOnly: true
          default: false
        deleted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
        search_vector:
          type: string
          readOnly: true
          nullable: true
        search_text:
          type: string
          readOnly: true
          nullable: true
        vendor_type:
          nullable: true
          default: vendor
          title: Payee Type
          oneOf:
            - $ref: '#/components/schemas/VendorType391Enum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        name:
          type: string
          nullable: true
          maxLength: 250
        dba:
          type: string
          nullable: true
          maxLength: 250
        company_name:
          type: string
          nullable: true
          maxLength: 250
        website:
          type: string
          nullable: true
          maxLength: 250
        first_name:
          type: string
          nullable: true
          maxLength: 250
        last_name:
          type: string
          nullable: true
          maxLength: 250
        email:
          type: string
          format: email
          nullable: true
          maxLength: 250
        phone_number:
          type: string
          nullable: true
          maxLength: 250
        mobile_number:
          type: string
          nullable: true
          maxLength: 250
        address_street_1:
          type: string
          nullable: true
          maxLength: 250
        address_street_2:
          type: string
          nullable: true
          maxLength: 250
        city:
          type: string
          nullable: true
          maxLength: 250
        state:
          type: string
          nullable: true
          maxLength: 250
        zip_code:
          type: string
          nullable: true
          maxLength: 250
        country:
          type: string
          nullable: true
          maxLength: 250
        billing_address_street_1:
          type: string
          nullable: true
          maxLength: 250
        billing_address_street_2:
          type: string
          nullable: true
          maxLength: 250
        billing_city:
          type: string
          nullable: true
          maxLength: 250
        billing_state:
          type: string
          nullable: true
          maxLength: 250
        billing_zip_code:
          type: string
          nullable: true
          maxLength: 250
        billing_country:
          type: string
          nullable: true
          maxLength: 250
        shipping_addressee:
          type: string
          nullable: true
          maxLength: 255
        billing_addressee:
          type: string
          nullable: true
          maxLength: 255
        notes:
          type: string
          nullable: true
          maxLength: 250
        business_id_ssn:
          type: string
          nullable: true
          title: Business ID/SSN
          maxLength: 250
        is_1099:
          type: boolean
        vat_number:
          type: string
          nullable: true
          maxLength: 250
        business_type:
          type: string
          nullable: true
          description: Business type classification (e.g., Korean NTS 업태)
          maxLength: 250
        business_category:
          type: string
          nullable: true
          description: Business category classification (e.g., Korean NTS 종목)
          maxLength: 250
        entity_use_code:
          type: string
          nullable: true
          description: >-
            Avalara entity/use code for tax exemptions (e.g., A - Federal
            Government, B - State/Local Govt)
          maxLength: 25
        stripe_customer_id:
          type: string
          nullable: true
          maxLength: 250
        use_stripe_auto_bill:
          type: boolean
          nullable: true
        bill_vendor_id:
          type: string
          nullable: true
          maxLength: 250
        external_id:
          type: string
          nullable: true
          maxLength: 250
        source:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/Source170Enum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        invoice_message:
          type: string
          nullable: true
        abbreviation:
          type: string
          nullable: true
          maxLength: 250
        created_at:
          type: string
          format: date-time
          readOnly: true
        status:
          $ref: '#/components/schemas/Status372Enum'
        anrok_customer_id:
          type: string
          nullable: true
          maxLength: 250
        terms:
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/TermsEnum'
            - $ref: '#/components/schemas/BlankEnum'
            - $ref: '#/components/schemas/NullEnum'
        invoice_labels:
          nullable: true
        invoice_language:
          type: string
          nullable: true
          maxLength: 10
        lineage_array:
          type: array
          items:
            type: string
            maxLength: 50
          nullable: true
          description: Pre-computed lineage array from root to this vendor
        customer:
          type: integer
          readOnly: true
        parent:
          type: integer
          nullable: true
        stripe_connection:
          type: integer
          nullable: true
        default_expense_category:
          type: integer
          nullable: true
        vendor_custom_field_1:
          type: integer
          nullable: true
        payment_term:
          type: integer
          nullable: true
          description: Payment term for this vendor
      required:
        - created_at
        - customer
        - deleted_at
        - id
        - is_deleted
        - last_modified_at
        - name
        - parent_name
        - payment_term_name_display
        - search_text
        - search_vector
        - stripe_connection_entity
        - stripe_connection_invoicing_enabled
        - stripe_connection_name
        - stripe_connection_portal_enabled
        - stripe_connection_portal_url
        - vendor_custom_field_1_name
    VendorContact:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
        name:
          type: string
          nullable: true
        first_name:
          type: string
          nullable: true
          maxLength: 250
        last_name:
          type: string
          nullable: true
          maxLength: 250
        email:
          type: string
          format: email
          nullable: true
          maxLength: 250
        phone_number:
          type: string
          nullable: true
          maxLength: 250
        mobile_number:
          type: string
          nullable: true
          maxLength: 250
        last_modified_at:
          type: string
          format: date-time
          readOnly: true
        is_deleted:
          type: boolean
          readOnly: true
          default: false
        deleted_at:
          type: string
          format: date-time
          readOnly: true
          nullable: true
      required:
        - deleted_at
        - id
        - is_deleted
        - last_modified_at
    VendorType391Enum:
      enum:
        - vendor
        - customer
        - employee
      type: string
      description: |-
        * `vendor` - Vendor
        * `customer` - Customer
        * `employee` - Employee
    BlankEnum:
      enum:
        - ''
    NullEnum:
      enum:
        - null
    Source170Enum:
      enum:
        - BILL
        - BREX
        - HUBSPOT
        - MANUAL
        - SALESFORCE
      type: string
      description: |-
        * `BILL` - Bill
        * `BREX` - Brex
        * `HUBSPOT` - Hubspot
        * `MANUAL` - Manual
        * `SALESFORCE` - Salesforce
    Status372Enum:
      enum:
        - ACTIVE
        - INACTIVE
      type: string
      description: |-
        * `ACTIVE` - Active
        * `INACTIVE` - Inactive
    TermsEnum:
      enum:
        - custom
        - net_5
        - net_7
        - net_10
        - net_15
        - net_20
        - net_30
        - net_40
        - net_45
        - net_60
        - net_90
        - net_105
        - net_120
        - due_on_receipt
      type: string
      description: |-
        * `custom` - Custom
        * `net_5` - Net 5
        * `net_7` - Net 7
        * `net_10` - Net 10
        * `net_15` - Net 15
        * `net_20` - Net 20
        * `net_30` - Net 30
        * `net_40` - Net 40
        * `net_45` - Net 45
        * `net_60` - Net 60
        * `net_90` - Net 90
        * `net_105` - Net 105
        * `net_120` - Net 120
        * `due_on_receipt` - Due on Receipt
  securitySchemes:
    knoxApiToken:
      type: apiKey
      in: header
      name: Authorization
      description: Token-based authentication with required prefix "Token"

````