Skip to main content
GET
/
crm
/
{objectSlug}
List CRM records
curl --request GET \
  --url https://api.zeeg.me/v2/crm/{objectSlug} \
  --header 'Authorization: Bearer <token>'
{
  "success": true,
  "status": 200,
  "data": {
    "pagination": {
      "totalItems": 1,
      "perPage": 10,
      "currentPage": 1,
      "lastPage": 1,
      "hasPreviousPage": false,
      "hasNextPage": false
    },
    "records": [
      {
        "id": "c1d2e3f4-a5b6-7890-cdef-123456789012",
        "objectSlug": "products",
        "attributes": {
          "sku": "DRESS-001",
          "price": 29,
          "inventory_count": 150
        },
        "createdAt": "2025-06-01T10:00:00+00:00",
        "updatedAt": "2025-06-01T10:00:00+00:00"
      }
    ]
  }
}

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.

Returns a paginated list of records for a custom CRM object. Use this endpoint to browse all records for any object you’ve created — products, deals, subscriptions, or any other custom object in your workspace.

Path parameter

ParameterTypeDescription
objectSlugstringThe slug of the custom CRM object. Must already exist. Discover available slugs via List CRM Objects.

Query parameters

ParameterTypeDefaultDescription
pageinteger1Page number. Starts at 1.
perPageinteger10Number of records returned per page. Maximum is 100.
sortBystringcreated_atAttribute slug to sort by. Pass the exact attribute key (e.g. price, sku). Use created_at or updated_at for system timestamps.
sortOrderstringascSort direction. Either asc (oldest/lowest first) or desc (newest/highest first).

Response shape

Each record in the records array contains:
FieldTypeDescription
idstring (UUID)Unique identifier for the record. Store this on your side to avoid re-fetching.
objectSlugstringThe object this record belongs to.
attributesobjectAll attribute values keyed by their attribute slug. Unset attributes are null.
createdAtstring (ISO 8601)When the record was created.
updatedAtstring (ISO 8601)When the record was last modified.
The pagination wrapper contains:
FieldTypeDescription
totalItemsintegerTotal number of records across all pages.
perPageintegerRecords per page as requested.
currentPageintegerThe page returned in this response.
lastPageintegerTotal number of pages.
hasPreviousPagebooleantrue when a previous page exists.
hasNextPagebooleantrue when a next page exists.

Discovering attribute keys

Attribute keys (the keys inside attributes) are defined on the object schema. To see all available attribute slugs and their types, call GET /v2/crm/objects/{slug} before building a UI or processing the response.

Pagination example

To iterate through all records in pages of 50, ordered newest first:
GET /v2/crm/products?perPage=50&sortBy=created_at&sortOrder=desc&page=1
GET /v2/crm/products?perPage=50&sortBy=created_at&sortOrder=desc&page=2
Keep requesting until hasNextPage is false.

When to use this endpoint

  • Browsing — display a table of records in your UI.
  • Export — page through all records to write them to another system.
  • Sync jobs — poll for recently updated records with sortBy=updated_at&sortOrder=desc.

Authorizations

Authorization
string
header
required

Path Parameters

objectSlug
string
required

Slug of the custom CRM object.

Query Parameters

page
integer
default:1

Page number.

Required range: x >= 1
perPage
integer
default:10

Number of records per page.

Required range: 1 <= x <= 100
sortBy
string
default:created_at

Attribute slug to sort by.

sortOrder
enum<string>
default:asc

Sort direction.

Available options:
asc,
desc

Response

OK

success
boolean
Example:

true

status
integer
Example:

200

data
object
Last modified on May 7, 2026