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

# List CRM Objects

> Retrieve every CRM object in your Zeeg workspace with full attribute schemas, including standard people and companies plus any custom objects you created

Returns all CRM objects in your workspace along with their complete attribute schemas.

**Standard objects** (`people`, `companies`) are always present. Custom objects appear once created.

Use this endpoint first to map your existing schema before importing records — every attribute `key` returned here is the identifier you use when writing record values.

<Note>
  This endpoint returns all objects in a single response. There is no pagination.
</Note>


## OpenAPI

````yaml GET /crm/objects
openapi: 3.0.0
info:
  title: Zeeg Public API
  description: >-
    Zeeg public API documentation.


    ## Authentication

    All endpoints require a Bearer token. You can generate an API token from
    [your Zeeg dashboard](https://app.zeeg.me/account/settings/api-access).


    Each token is scoped to specific permissions (e.g. `events:read`,
    `webhooks:write`). Make sure your token has the required scopes for the
    endpoints you want to use.


    ## Recommended Headers

    We recommend including the `Accept: application/json` header in all API
    requests to ensure you receive JSON responses.
  version: 2.0.0
  x-logo:
    url: https://app.zeeg.me/img/logo-dark.2ca83593.svg
    backgroundColor: '#f7f7f9'
    altText: zeeg
  contact:
    name: Zeeg Support
    email: support@zeeg.me
    url: https://zeeg.me/en/contact
  license:
    name: Proprietary
    url: https://zeeg.me/en/legal/terms
  termsOfService: https://zeeg.me/en/legal/terms
servers:
  - url: https://api.zeeg.me/v2
    description: Production
security:
  - bearer: []
tags:
  - name: Scheduled Events
    description: Management of events scheduled via Zeeg
  - name: Scheduling Pages
    description: Scheduling pages information and management
  - name: Availability Schedule
    description: Read and change availability for users
  - name: Webhooks
    description: Webhooks management
  - name: Notes
    description: Notes for scheduled events
  - name: Workspaces & Teams
    description: Workspace users and team member management
  - name: AI Agent
    description: AI Agent integration endpoints
  - name: Payloads
    description: Webhook payload schemas
  - name: CRM - Objects
    description: >-
      Discover the schema of CRM objects (standard and custom) including all
      attribute definitions
  - name: CRM - Companies
    description: Create, read, update, and delete CRM company records
  - name: CRM - People
    description: Create, read, update, and delete CRM person records
paths:
  /crm/objects:
    get:
      tags:
        - CRM - Objects
      summary: List CRM objects
      description: >-
        Returns all CRM objects available in your workspace — both standard
        objects (`people`, `companies`) and any custom objects you have created.


        Use this endpoint to discover the full attribute schema before importing
        records. Each object includes its list of attributes with types, labels,
        and options.


        **Required scope:** `crm:read` or `crm:write`
      operationId: get-crm-objects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  collection:
                    type: array
                    items:
                      $ref: '#/components/schemas/CrmObject'
              examples:
                Success:
                  value:
                    success: true
                    status: 200
                    collection:
                      - slug: people
                        singularName: Person
                        pluralName: People
                        isStandard: true
                        isActive: true
                        attributes:
                          - key: first_name
                            label: First Name
                            type: text
                            isRequired: false
                            isStandard: true
                          - key: last_name
                            label: Last Name
                            type: text
                            isRequired: false
                            isStandard: true
                          - key: email
                            label: Email
                            type: text
                            isRequired: false
                            isStandard: true
                          - key: phone_number
                            label: Phone Number
                            type: phone_number
                            isRequired: false
                            isStandard: true
                        createdAt: '2025-01-15T09:00:00+00:00'
                        updatedAt: '2025-01-15T09:00:00+00:00'
                      - slug: companies
                        singularName: Company
                        pluralName: Companies
                        isStandard: true
                        isActive: true
                        attributes:
                          - key: name
                            label: Name
                            type: text
                            isRequired: true
                            isStandard: true
                          - key: domain
                            label: Domain
                            type: text
                            isRequired: false
                            isStandard: true
                        createdAt: '2025-01-15T09:00:00+00:00'
                        updatedAt: '2025-01-15T09:00:00+00:00'
        '401':
          $ref: '#/components/responses/401'
        '403':
          description: Forbidden — CRM not enabled or missing scope
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Missing scope:
                  value:
                    success: false
                    message: Invalid scope(s) provided.
                    status: 403
                CRM not enabled:
                  value:
                    success: false
                    message: The CRM functionality is not enabled yet.
                    status: 403
      security:
        - bearer: []
components:
  schemas:
    CrmObject:
      type: object
      description: A CRM object definition including its full attribute schema.
      required:
        - slug
        - singularName
        - pluralName
        - isStandard
        - isActive
        - attributes
        - createdAt
        - updatedAt
      properties:
        slug:
          type: string
          description: Unique identifier for the object. Used in all record API calls.
          example: people
        singularName:
          type: string
          description: Singular display name.
          example: Person
        pluralName:
          type: string
          description: Plural display name.
          example: People
        isStandard:
          type: boolean
          description: >-
            `true` for built-in objects (`people`, `companies`). `false` for
            custom objects.
          example: true
        isActive:
          type: boolean
          description: Whether the object is enabled in the workspace.
          example: true
        attributes:
          type: array
          description: Full list of attribute definitions for this object.
          items:
            $ref: '#/components/schemas/CrmAttribute'
        createdAt:
          type: string
          format: date-time
          example: '2025-01-15T09:00:00+00:00'
        updatedAt:
          type: string
          format: date-time
          example: '2025-06-01T12:00:00+00:00'
    CrmAttribute:
      type: object
      description: Definition of a single attribute on a CRM object.
      required:
        - key
        - label
        - type
        - isRequired
        - isStandard
        - isUnique
        - isArchived
        - createdAt
        - updatedAt
      properties:
        key:
          type: string
          description: Attribute key used when reading or writing record values.
          example: job_title
        label:
          type: string
          description: Human-readable label shown in the UI.
          example: Job Title
        type:
          type: string
          description: Attribute data type. Cannot be changed after creation.
          enum:
            - text
            - number
            - phone_number
            - date
            - datetime
            - checkbox
            - select
            - multiselect
            - rating
            - relation
            - status
            - user
            - currency
          example: text
        isRequired:
          type: boolean
          description: Whether a value is required when creating a record.
          example: false
        isStandard:
          type: boolean
          description: >-
            `true` for built-in attributes, `false` for custom attributes added
            by your workspace.
          example: false
        isUnique:
          type: boolean
          description: >-
            Whether values must be unique across all records. Applies to `text`,
            `phone`, and `number` types.
          example: false
        isArchived:
          type: boolean
          description: >-
            Whether the attribute is archived. Archived attributes are hidden
            from the UI but their data is preserved.
          example: false
        options:
          type: array
          description: >-
            Available options. Present only for `select`, `multiselect`, and
            `status` attributes.
          items:
            $ref: '#/components/schemas/CrmAttributeOption'
        relatedObjectSlug:
          type: string
          nullable: true
          description: >-
            Slug of the related object. Present only for `relation` attributes.
            Immutable after creation.
          example: companies
        relatedObjectLabel:
          type: string
          nullable: true
          description: >-
            Display label for the relation. Present only for `relation`
            attributes. Can be updated via PATCH.
          example: Company
        relationType:
          type: string
          nullable: true
          description: Cardinality of the relation. Present only for `relation` attributes.
          enum:
            - one_to_one
            - many_to_one
            - one_to_many
            - many_to_many
          example: many_to_one
        isMultipleSelection:
          type: boolean
          description: >-
            `true` when `relationType` is `one_to_many` or `many_to_many`.
            Present only for `relation` attributes.
          example: false
        currency:
          type: string
          nullable: true
          description: >-
            ISO 4217 currency code. Present only for `currency` attributes.
            Immutable after creation.
          example: EUR
        currencyDisplay:
          type: string
          nullable: true
          description: >-
            How the currency value is displayed. Present only for `currency`
            attributes.
          enum:
            - code
            - name
            - symbol
          example: symbol
        currencyDecimal:
          type: boolean
          nullable: true
          description: >-
            Whether decimal places are shown. Present only for `currency`
            attributes.
          example: true
        currencyGrouping:
          type: boolean
          nullable: true
          description: >-
            Whether a thousands separator is used. Present only for `currency`
            attributes.
          example: true
        createdAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the attribute was created.
          example: '2025-06-01T10:00:00+00:00'
        updatedAt:
          type: string
          format: date-time
          description: ISO 8601 timestamp when the attribute was last updated.
          example: '2025-06-01T10:00:00+00:00'
    CrmAttributeOption:
      type: object
      description: >-
        A selectable option for a `select`, `multiselect`, or `status`
        attribute.
      required:
        - value
        - color
      properties:
        id:
          type: integer
          nullable: true
          description: >-
            Server-assigned option ID. Omit when adding a new option; include
            when updating an existing one to preserve it.
          example: 1
        value:
          type: string
          description: The option label shown in the UI and stored as the attribute value.
          example: Active
          maxLength: 512
        color:
          type: string
          description: >-
            Color name for the option. Allowed values: `gray`, `primary`,
            `warning`, `success`, `cyan`, `sky`, `violet`, `fuchsia`, `rose`,
            `blue`, `green`, `red`, `pink`, `black`, `yellow`, `orange`.
          example: success
  responses:
    '401':
      description: Unauthorized
      content:
        application/json:
          schema:
            type: object
            properties:
              message:
                type: string
                example: Unauthenticated.
          examples:
            Unauthenticated:
              value:
                message: Unauthenticated.
  securitySchemes:
    bearer:
      type: http
      scheme: bearer
      description: ''

````