> ## 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.

# Get a CRM Object

> Retrieve the full schema of a single Zeeg CRM object by slug, including every attribute definition with its type, label, options, and relation metadata

Returns the full schema for a single object identified by its slug, including every attribute definition with its type, label, options, and relation metadata.

Standard object slugs are always `people` and `companies`. Custom object slugs are set at creation time and are immutable.


## OpenAPI

````yaml GET /crm/objects/{slug}
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/{slug}:
    get:
      tags:
        - CRM - Objects
      summary: Get a CRM object
      description: >-
        Returns the full schema for a single CRM object identified by its slug.


        The response includes every attribute definition with its type, label,
        options (for `select` / `multiselect`), and relation metadata (for
        `relation` attributes). Use this to map your legacy fields to Zeeg
        attribute keys before writing records.


        **Required scope:** `crm:read` or `crm:write`
      operationId: get-crm-object-by-slug
      parameters:
        - name: slug
          in: path
          required: true
          schema:
            type: string
            example: people
          description: >-
            The object slug. Standard objects use `people` and `companies`.
            Custom objects use the slug you assigned when creating them.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  status:
                    type: integer
                    example: 200
                  object:
                    $ref: '#/components/schemas/CrmObject'
              examples:
                Standard object (people):
                  value:
                    success: true
                    status: 200
                    object:
                      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
                          isRequired: false
                          isStandard: true
                        - key: job_title
                          label: Job Title
                          type: text
                          isRequired: false
                          isStandard: true
                        - key: customer_status
                          label: Customer Status
                          type: select
                          isRequired: false
                          isStandard: false
                          isUnique: false
                          isArchived: false
                          options:
                            - id: 1
                              value: Lead
                              color: warning
                            - id: 2
                              value: Active
                              color: success
                            - id: 3
                              value: Churned
                              color: red
                      createdAt: '2025-01-15T09:00:00+00:00'
                      updatedAt: '2025-06-01T12:00:00+00:00'
                Custom object:
                  value:
                    success: true
                    status: 200
                    object:
                      slug: products
                      singularName: Product
                      pluralName: Products
                      isStandard: false
                      isActive: true
                      attributes:
                        - key: title
                          label: Title
                          type: text
                          isRequired: true
                          isStandard: false
                        - key: price
                          label: Price
                          type: currency
                          isRequired: false
                          isStandard: false
                        - key: inventory_count
                          label: Inventory Count
                          type: number
                          isRequired: false
                          isStandard: false
                        - key: assigned_person
                          label: Assigned Person
                          type: relation
                          isRequired: false
                          isStandard: false
                          relatedObjectSlug: people
                          isMultipleSelection: false
                      createdAt: '2025-03-10T08:00:00+00:00'
                      updatedAt: '2025-03-10T08: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
        '404':
          description: Object not found
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                  message:
                    type: string
                  status:
                    type: integer
              examples:
                Not found:
                  value:
                    success: false
                    message: Object not found.
                    status: 404
      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: ''

````