---
title: "Query contacts' states for a service"
method: GET
path: "/v1/projects/{project_id}/services/{id}/states"
tags: ["Service"]
---

# Query contacts' states for a service

`GET /v1/projects/{project_id}/services/{id}/states`

## Request

- Base URL: `https://api.telerivet.com`
- URL: `https://api.telerivet.com/v1/projects/{project_id}/services/{id}/states`
- Auth: one of:
  - HTTP basic
  - OAuth 2 (authorization code, authorization URL `https://telerivet.com/oauth/authorize`, token URL `https://api.telerivet.com/oauth/token`)

Query the current states of contacts for this service.

## Path parameters

- `project_id` string, required
- `id` string, required

## Query parameters

- `id` string
- `vars` object
- `sort` 'default'
- `sort_dir` 'asc' | 'desc'
- `page_size` integer
- `offset` integer
- `marker` string
- `count` boolean

## Response `200`

Successful response. When count=1 parameter is provided, returns {"count": N} instead.

- object
  - `data` ContactServiceState[]: Array of results (omitted when count=1)
    - `id` string: Arbitrary string representing the contact's current state for this service, e.g. 'q1', 'q2', etc.
    - `contact_id` string: ID of the contact
    - `service_id` string: ID of the service
    - `vars` object: Custom variables stored for this contact/service state. Only persisted when the state 'id' is non-null; saving with a null 'id' deletes the state and its variables. Variable names may be up to 32 characters in length and can contain the characters a-z, A-Z, 0-9, and _. Values may be strings, numbers, or boolean (true/false). String values may be up to 4096 bytes in length when encoded as UTF-8. Up to 100 variables are supported per object. Setting a variable to null will delete the variable.
    - `time_created` integer: Time the state was first created in Telerivet
    - `time_updated` integer: Time the state was last updated in Telerivet
    - `project_id` string: ID of the project this contact/service state belongs to
  - `truncated` boolean: True if there are more results
  - `next_marker` string: Marker for pagination
  - `page_size` integer: Number of results per page
  - `sort_dir` 'asc' | 'desc': Sort direction
  - `count` integer: Total count of matching items (only when count=1 parameter is provided)

## Other responses

- `400`: Invalid request parameters
- `401`: Invalid or missing API key or Bearer token
- `404`: Resource not found

---

[API](https://skmtc.dev/telerivet/apis/telerivet-api.md) · [All operations](https://skmtc.dev/telerivet/apis/telerivet-api/llms.txt) · [OpenAPI document](https://skmtc.dev/telerivet/apis/telerivet-api/revisions/4e14b1c8d917?raw)
