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

# Get a buyer by ID

> Retrieves a single buyer (phantom) by ID including related contacts, phones, emails, and locations.



## OpenAPI

````yaml openapi.json get /api/v1/buyers/{id}
openapi: 3.0.3
info:
  title: Polinate External API
  version: 1.0.0
  description: >-
    External API for partners and services. Authentication via X-Business-Id and
    X-API-Key headers.


    Credentials location: In the Polinate app, navigate to Business Settings →
    Integrations to find your Business ID and API Key.
servers:
  - url: https://integrations.polinate.ai
    description: Production
security: []
tags:
  - name: Items
    description: >-
      Manage items and item variants. Auth: X-Business-Id and X-API-Key (see
      Business Settings → Integrations).
  - name: Buyers
    description: >-
      Create buyers and related contacts/locations. Auth: X-Business-Id and
      X-API-Key (see Business Settings → Integrations).
  - name: Pricing
    description: >-
      Create price lists and entries. Auth: X-Business-Id and X-API-Key (see
      Business Settings → Integrations).
  - name: Invoices
    description: >-
      List and update invoices. Auth: X-Business-Id and X-API-Key (see Business
      Settings → Integrations).
  - name: Orders
    description: >-
      Order ingestion. Auth: X-Business-Id and X-API-Key (see Business Settings
      → Integrations).
paths:
  /api/v1/buyers/{id}:
    get:
      tags:
        - Buyers
      summary: Get a buyer by ID
      description: >-
        Retrieves a single buyer (phantom) by ID including related contacts,
        phones, emails, and locations.
      operationId: getBuyer
      parameters:
        - schema:
            type: string
            example: phm_123
          required: true
          name: id
          in: path
        - schema:
            type: string
            description: >-
              Business identifier for external auth. Find in Polinate app →
              Business Settings → Integrations.
            example: '{{businessId}}'
          required: true
          name: X-Business-Id
          in: header
        - schema:
            type: string
            description: >-
              Per-business API key for external auth. Find in Polinate app →
              Business Settings → Integrations.
            example: '{{apiKey}}'
          required: true
          name: X-API-Key
          in: header
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BuyerDetailResponse'
              example:
                id: phm_123
                name: Acme Pty Ltd
                legalName: Acme Pty Ltd
                primaryEmail: contact@acme.example
                primaryPhone: +61 2 9000 0000
                status: ACTIVE
                partnershipId: prt_456
                partnershipStatus: ACTIVE
                itemListId: list_789
                buyerInfo:
                  notes: Key account
                emails:
                  - id: eml_1
                    email: orders@acme.example
                    contactName: Orders
                    isPrimary: true
                phones:
                  - id: phn_1
                    phone: +61 400 000 001
                    contactName: Warehouse
                    isPrimary: false
                locations:
                  - id: loc_1
                    label: Sydney DC
                    type: WAREHOUSE
                    status: ACTIVE
                    addressLine1: 1 George St
                    city: Sydney
                    state: NSW
                    postcode: '2000'
                    country: AU
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
        '403':
          description: Forbidden - No active partnership with this buyer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
              example:
                errorCode: FORBIDDEN
                message: You do not have an active partnership with this buyer
        '404':
          description: Not Found - Buyer does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
              example:
                errorCode: NOT_FOUND
                message: Buyer not found
        '429':
          description: Rate limited
          headers:
            Retry-After:
              schema:
                type: string
              description: Seconds to wait before retrying
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardError'
components:
  schemas:
    BuyerDetailResponse:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        legalName:
          type: string
        primaryEmail:
          type: string
          nullable: true
        primaryPhone:
          type: string
          nullable: true
        status:
          type: string
        createdAt:
          type: string
        updatedAt:
          type: string
        deletedAt:
          type: string
          nullable: true
        properties:
          type: object
          properties: {}
        partnershipId:
          type: string
        partnershipStatus:
          type: string
          enum:
            - PENDING
            - ACTIVE
            - PAUSED
            - TERMINATED
            - DECLINED
            - EXPIRED
        itemListId:
          type: string
          nullable: true
        buyerInfo:
          type: object
          properties: {}
        emails:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              email:
                type: string
                format: email
              contactName:
                type: string
                nullable: true
              isPrimary:
                type: boolean
              isVerified:
                type: boolean
              verifiedAt:
                type: string
                nullable: true
              sequence:
                type: number
                nullable: true
            required:
              - id
              - email
        phones:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              phone:
                type: string
              contactName:
                type: string
                nullable: true
              isPrimary:
                type: boolean
              isVerified:
                type: boolean
              verifiedAt:
                type: string
                nullable: true
              sequence:
                type: number
                nullable: true
            required:
              - id
              - phone
        locations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              label:
                type: string
              type:
                type: string
              status:
                type: string
              addressLine1:
                type: string
              addressLine2:
                type: string
                nullable: true
              city:
                type: string
              state:
                type: string
              postcode:
                type: string
              country:
                type: string
            required:
              - id
              - label
      required:
        - id
        - name
        - legalName
        - partnershipId
        - partnershipStatus
        - itemListId
    StandardError:
      type: object
      properties:
        errorCode:
          type: string
        message:
          type: string
        fieldErrors:
          type: object
          additionalProperties:
            type: string
      required:
        - errorCode
        - message

````