Skip to content
Go to Micro

Query

POST/v2/prism/{teamId}/contact/query

Query

Path ParametersExpand Collapse
teamId: optional string
formatuuid
Header ParametersExpand Collapse
"Idempotency-Key": optional string
minLength1
maxLength255
Body ParametersJSONExpand Collapse
query: object { select, combinator, cursor, 5 more }
select: array of string

Property slugs to select. Use dot notation for relationships (e.g. attendee.contact.first_name). id is always returned at the top level of each row and does not need to be selected.

combinator: optional "AND" or "OR"

Logical operator for combining filters

One of the following:
"AND"
"OR"
cursor: optional string

Opaque cursor from a previous response’s next_cursor. Pass it back unchanged to fetch the next page. When set, page and limit are derived from the cursor and any explicit values are ignored.

filter: optional array of map[object { "=" } or object { "!=" } or object { "<" } or 14 more]

Filters as [{ slug: { operator: value } }]. For select/multiselect properties, values may be option slugs or option UUIDs.

One of the following:
PrismQueryFilterEq object { "=" }
"=": string or boolean
One of the following:
string
boolean
PrismQueryFilterNe object { "!=" }
"!=": string or boolean
One of the following:
string
boolean
PrismQueryFilterLt object { "<" }
"<": string
PrismQueryFilterGt object { ">" }
">": string
PrismQueryFilterLte object { "<=" }
"<=": string
PrismQueryFilterGte object { ">=" }
">=": string
Contains object { contains }
contains: string or boolean or array of string
One of the following:
string
boolean
array of string
BeginsWith object { begins_with }
begins_with: string
EndsWith object { ends_with }
ends_with: string
NotContains object { not_contains }
not_contains: string
Exists object { exists }
exists: boolean
NotExists object { not_exists }
not_exists: boolean
IsNull object { is_null }
is_null: string or boolean or array of string
One of the following:
string
boolean
array of string
IsNotNull object { is_not_null }
is_not_null: string or boolean or array of string
One of the following:
string
boolean
array of string
Between object { between }
between: string or boolean or array of string
One of the following:
string
boolean
array of string
In object { in }
in: array of string
NotIn object { not_in }
not_in: array of string
limit: optional number

Maximum number of rows to return. Capped server-side at 50; requests above the cap are rejected.

minimum1
maximum50
list_id: optional string
formatuuid
Deprecatedpage: optional number

Page number (1-based). Prefer cursor. Page-number pagination drifts under concurrent writes; use it only for one-shot exports.

sort: optional array of map["asc" or "desc"]

Sort order as [{ slug: direction }]. Array order determines sort priority

One of the following:
"asc"
"desc"
id: optional string or array of string
One of the following:
string
array of string
boxes: optional array of string
cursor: optional string

Alternative location for the opaque cursor (a sibling of query). Use whichever feels more natural; if both are present, query.cursor wins.

deleted: optional boolean
include_total: optional boolean

When true, the response includes a total field with the unpaginated row count. Costs an additional pass over the result set — for unfiltered totals prefer GET /v2/prism/{teamId}/{objectType}/count instead.

sources: optional array of string
ReturnsExpand Collapse
data: array of object { id, is_user_object, properties, source }
id: string
formatuuid
is_user_object: optional boolean
properties: optional map[unknown]

Selected property values keyed by property slug. For select/multiselect properties, option slugs are returned. For reference properties, values are nested { id, properties } objects.

source: optional array of string
has_more: boolean

Accurate end-of-data signal. False when this page contains the last record; true only when at least one more record exists. (Implementation note: the server fetches one extra row internally to determine this — clients never need to overshoot to discover the end.)

next_cursor: optional string

Opaque cursor pointing at the next page. Pass it back unchanged. Do not parse it. The current encoding is offset-based (page + limit), so it has the same concurrent-write drift the deprecated page parameter has; treat it as a black box so a future keyset cursor is a drop-in. Null when has_more is false.

total: optional number

Only populated when the request set include_total: true. Total number of records matching the query, ignoring pagination. Opt-in because it costs an additional pass over the result set.

Query

curl https://developers.micro.so/v2/prism/$TEAM_ID/contact/query \
    -H 'Content-Type: application/json' \
    -H "x-api-key: $MICRO_API_KEY" \
    -d '{
          "query": {
            "select": [
              "full_name",
              "email",
              "title",
              "organization"
            ],
            "filter": [
              {
                "full_name": {
                  "=": "Sarah Chen"
                }
              }
            ],
            "limit": 10
          }
        }'
{
  "data": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "properties": {
        "full_name": "Sarah Chen",
        "email": "sarah@example.com",
        "title": "Partner",
        "organization": "Acme Ventures"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "properties": {
        "name": "Acme Ventures",
        "domain": "example.com",
        "industry": "Venture Capital"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "33333333-3333-4333-8333-333333333333",
      "properties": {
        "name": "Acme Ventures — Series A",
        "amount": 2500000,
        "stage": "negotiation",
        "organization": "Acme Ventures"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "44444444-4444-4444-8444-444444444444",
      "properties": {
        "name": "Follow up with Sarah Chen",
        "status": "open",
        "due_date": "2026-08-06",
        "contact": "Sarah Chen"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "55555555-5555-4555-8555-555555555555",
      "properties": {
        "name": "Acme Ventures — Series A notes",
        "content": "Sarah Chen is coordinating diligence for the Series A.",
        "organization": "Acme Ventures"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
Returns Examples
{
  "data": [
    {
      "id": "11111111-1111-4111-8111-111111111111",
      "properties": {
        "full_name": "Sarah Chen",
        "email": "sarah@example.com",
        "title": "Partner",
        "organization": "Acme Ventures"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "22222222-2222-4222-8222-222222222222",
      "properties": {
        "name": "Acme Ventures",
        "domain": "example.com",
        "industry": "Venture Capital"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "33333333-3333-4333-8333-333333333333",
      "properties": {
        "name": "Acme Ventures — Series A",
        "amount": 2500000,
        "stage": "negotiation",
        "organization": "Acme Ventures"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "44444444-4444-4444-8444-444444444444",
      "properties": {
        "name": "Follow up with Sarah Chen",
        "status": "open",
        "due_date": "2026-08-06",
        "contact": "Sarah Chen"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}
{
  "data": [
    {
      "id": "55555555-5555-4555-8555-555555555555",
      "properties": {
        "name": "Acme Ventures — Series A notes",
        "content": "Sarah Chen is coordinating diligence for the Series A.",
        "organization": "Acme Ventures"
      },
      "is_user_object": false,
      "source": null
    }
  ],
  "has_more": false,
  "next_cursor": null,
  "total": 1
}