---
title: "List clients"
method: GET
path: "/api/v1/clients"
tags: ["Clients"]
---

# List clients

`GET /api/v1/clients`

## Request

- Base URL: `https://app.relaw.ai`
- URL: `https://app.relaw.ai/api/v1/clients`
- Auth: HTTP bearer

Returns clients oldest-first, paginated by cursor.

Pass `nextCursor` from one response as `cursor` on the next.
Cursors are opaque — do not construct or parse them. Offsets are
deliberately not supported: rows are inserted while you page, and
an offset would silently repeat or skip records.

## Query parameters

- `limit` integer
- `cursor` string
- `lifecycle` 'lead' | 'client' | 'former'
- `email` string
- `phone` string

## Response `200`

A page of clients.

- object
  - `data` Client[], required
    - `id` string, uuid, required
    - `object` 'client', required
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, nullable: Null is a real possibility, not an edge case — imported contacts often have no email. Do not assume this is present.
    - `phone` string, nullable: E.164.
    - `type` 'person' | 'organization'
    - `lifecycle` 'lead' | 'client' | 'former', required: `lead` has not been engaged; `client` is active; `former` is closed.
    - `leadSource` string, nullable
    - `leadScore` integer, nullable: 0–100, or null if not yet scored. Recomputed as engagement changes and as a lead goes cold, so it moves without the record changing.
    - `leadScoreBand` 'hot' | 'warm' | 'cold' | 'null', nullable
    - `attribution` object: First-touch, captured once on arrival and never overwritten.
      - `utmSource` string, nullable
      - `utmMedium` string, nullable
      - `utmCampaign` string, nullable
      - `utmTerm` string, nullable
      - `utmContent` string, nullable
      - `referrerHost` string, nullable
    - `createdAt` string, date-time
  - `hasMore` boolean, required
  - `nextCursor` string, nullable, required: Null on the last page.

## Other responses

- `400`: Malformed request.
- `401`: Missing, malformed, revoked, or unknown API key.
- `429`: Over 120 requests per minute for this key. Honour the `Retry-After` header.

---

[API](https://skmtc.dev/relaw/apis/relaw-api.md) - [All operations](https://skmtc.dev/relaw/apis/relaw-api/llms.txt) - [OpenAPI document](https://skmtc.dev/relaw/apis/relaw-api/revisions/51a8e71983e0?raw)
