Skip to main content

Quickstart

This guide walks through a minimal contact lifecycle. It uses the real Public API v2 route shape:
https://api.reevo.ai/api/v2

1. Check access

The health endpoint does not require authentication and confirms that Public API v2 is mounted.
curl "https://api.reevo.ai/api/v2/health"

2. Authenticate

Send your API key as a bearer token.
curl "https://api.reevo.ai/api/v2/contact/_query" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{"limit": 1}'
X-Api-Key: <your-api-key> is also accepted for compatibility.

3. Create a contact

Create requests use an attributes object. For simple fields, send raw values.
curl -X POST "https://api.reevo.ai/api/v2/contact" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "attributes": {
      "first_name": "Sarah",
      "last_name": "Chen",
      "stage": "working",
      "primary_email": "sarah.chen@acme.com"
    }
  }'
The response returns the record in a data envelope. Field values are self-describing:
{
  "data": {
    "id": "9b4f2fb1-2a7f-4d75-8d5f-3f3f0d7f2a7a",
    "record_type": "contact",
    "attributes": {
      "first_name": {
        "value_type": "string",
        "value": "Sarah"
      },
      "primary_email": {
        "value_type": "email",
        "value": "sarah.chen@acme.com"
      }
    }
  }
}

4. Find records with _query

Use POST /api/v2/<record_type>/_query for filtering, sorting, and cursor pagination.
curl -X POST "https://api.reevo.ai/api/v2/contact/_query" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "filters": [
      {
        "field": "primary_email",
        "operator": "eq",
        "value": "sarah.chen@acme.com"
      }
    ],
    "limit": 50
  }'
If the response includes next_cursor, send it in the next _query request. Treat cursors as opaque strings.

5. Update the record

Patch requests are partial. Omitted fields are left unchanged.
curl -X PATCH "https://api.reevo.ai/api/v2/contact/<contact_id>" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "attributes": {
      "title": "CTO"
    }
  }'
Send null only when you intend to clear a nullable field.

6. Archive the record

Delete endpoints archive records and return 204 No Content.
curl -X DELETE "https://api.reevo.ai/api/v2/contact/<contact_id>" \
  -H "Authorization: Bearer <your-api-key>"

Next steps