Skip to main content

Datasets

List records

Returns a page of records from one of your datasets, filtered and sorted. Reading records never uses a run.

GEThttps://api.clickr.cloud/v2/datasets/{datasetId}/records
  • No daily limit.
  • Your access on the account must include this dataset.
  • For assistants, the MCP tool list_dataset_records.

Request

curl -G https://api.clickr.cloud/v2/datasets/66f2a91c4b7e3d0012a8c5f1/records \
  -H "Authorization: Bearer $CLICKR_API_KEY" \
  --data-urlencode "filter[isCompleted][eq]=false" \
  --data-urlencode "sort=startDate" \
  --data-urlencode "limit=1"

Response

200
{
  "records": [
    {
      "scheduleItemId": "9100209",
      "jobId": "7310423",
      "jobName": "Patel Basement Finish",
      "builderId": "48213",
      "phaseId": "304",
      "phaseTitle": "Inspections",
      "title": "Electrical rough-in inspection",
      "startDate": "2026-10-15T00:00:00",
      "endDate": "2026-10-15T00:00:00",
      "durationWorkdays": 1,
      "isHourly": false,
      "isCompleted": false,
      "percentComplete": 0,
      "assignees": [
        {
          "id": "6120404",
          "name": "Tasha Nguyen"
        }
      ],
      "showOwner": true,
      "notes": "Inspector did not show for the original slot. Rebooking with the City of Louisville.",
      "commentCount": 0,
      "attachedFileCount": 0,
      "isDeleted": false
    }
  ],
  "count": 99,
  "limit": 1,
  "skip": 0,
  "sort": [
    {
      "field": "startDate",
      "direction": "asc"
    },
    {
      "field": "_id",
      "direction": "asc"
    }
  ]
}

From the sample builder, Halvorsen & Styke.

Ask Claude or ChatGPT about the same records: add https://api.clickr.cloud/mcp/playground as a connector, with no sign-in. Try it on a sample builder ›

Each dataset's page lists the fields its records carry. Filter and sort on any of them.

Path parameters

datasetIdstringRequired

The dataset to read. Copy it from the dataset's API panel in Clickr, or ask the MCP tool list_datasets.

Query parameters

filter[field][operator]string

Keeps the records where the field matches: filter[jobName][contains]=patel. Operators are eq, ne, gt, gte, lt, lte, contains and in. in takes a comma-separated list and contains ignores case. Repeat it to combine filters; a record must match all of them.

sortstring

Up to 3 fields, comma-separated: sort=jobName,-startDate. Prefix a field with a minus sign, or add :desc, to sort it descending.

limitinteger

How many records to return, from 1 to 200. Defaults to 50.

skipinteger

How many matching records to skip before the page starts. Defaults to 0.

Response

200, as JSON.

recordsarray of objects

The page of records, with the fields listed on the dataset's page.

countnumber

How many records match the filters, across every page.

limitnumber

The page size used.

skipnumber

The offset used.

sortarray of objects

The sort applied, as field and direction. The last entry is always _id, which keeps pages stable.

fieldstring
directionstring

One of asc, desc

Errors

JSON with an error and, on most, a message saying what to change. All errors

StatusErrorWhen
400Invalid requestA filter, sort, limit or skip can't be read. The message names the parameter and what was expected.
401No API Key providedThe Authorization header is missing.
401No account found for api key providedThe key isn't recognised: mistyped, revoked, or held by someone who has left the account.
401No integration found for accountThe account has no connector connected yet.
403ForbiddenYour access on the account doesn't include this dataset.
404Failed to list dataset recordsNo dataset on your account has this id.
500Failed to list dataset recordsThe id isn't a valid dataset id.