coldos
API key

The key never leaves your browser. Saved keys are stored in this browser's localStorage so paste-once-run-anywhere works across the portal.

GET/v1/contactscontacts:read

List contacts

Returns a cursor-paginated list of contacts visible to the API key. Supports filtering by stage, owner, tag, and updated-since.

Run a request

GET/v1/contacts
limit
cursor
updated_since
stage
owner_id
tag

GEThttps://coldos.justgotwyrd.com/api/v1/contacts

Paste an API key in the bar at the top of the page to enable Execute.

Parameters

Query parameters

  • limitintegeroptionaldefault 50

    Max items to return. 1-200.

  • cursorstringoptional

    Opaque pagination cursor returned in the previous page's `next_cursor`.

  • updated_sinceiso8601optional

    Only return rows whose `updated_at` is greater than the supplied timestamp.

  • stagestringoptional

    Filter by `internal_stage`.

    newcontactedengagedmeeting_bookedwonlostnurtureunsubscribed
  • owner_iduuidoptional

    Filter by contact owner.

  • tagstringoptional

    Return contacts with this tag (repeat the param to AND multiple tags).

Responses

  • 400Invalid request — see `error.message`.
  • 401Missing or invalid API key.
  • 403Authenticated, but the key lacks the required scope.
  • 404The referenced resource does not exist or is not visible to your key.
  • 429Rate limit exceeded — see `Retry-After`.
  • 500Unexpected server error. Safe to retry with idempotency-key.

Code samples

curl -X GET "https://coldos.justgotwyrd.com/api/v1/contacts" \
  -H "Authorization: Bearer $COLD_OS_API_KEY"
Response · 200
{
  "data": [
    {
      "id": "c2a8a93a-2f1c-4c5b-8f3d-9c1e3a8b5d12",
      "email": "ankit@example.com",
      "full_name": "Ankit Bhardwaj",
      "first_name": "Ankit",
      "last_name": "Bhardwaj",
      "title": "Head of Growth",
      "phone": "+919555516408",
      "mobile_phone": null,
      "whatsapp_number": "+919555516408",
      "linkedin_url": "https://www.linkedin.com/in/ankitbhardwaj",
      "organization_id": "9b2e1cd4-3c9b-4a1d-9b2f-21efae55c012",
      "internal_stage": "meeting_booked",
      "owner_id": "b1f2c3d4-5678-90ab-cdef-1234567890ab",
      "tags": [
        "high-intent",
        "warm-intro"
      ],
      "additional_emails": [],
      "additional_phones": [],
      "custom_fields": {
        "region": "APAC",
        "priority_score": 87
      },
      "last_engagement_at": "2026-05-01T14:30:00.000+05:30",
      "created_at": "2026-04-12T09:11:00.000+05:30",
      "updated_at": "2026-05-01T14:30:00.000+05:30"
    },
    {
      "id": "c2a8a93a-2f1c-4c5b-8f3d-9c1e3a8b5d12",
      "email": "ankit@example.com",
      "full_name": "Ankit Bhardwaj",
      "first_name": "Ankit",
      "last_name": "Bhardwaj",
      "title": "Head of Growth",
      "phone": "+919555516408",
      "mobile_phone": null,
      "whatsapp_number": "+919555516408",
      "linkedin_url": "https://www.linkedin.com/in/ankitbhardwaj",
      "organization_id": "9b2e1cd4-3c9b-4a1d-9b2f-21efae55c012",
      "internal_stage": "meeting_booked",
      "owner_id": "b1f2c3d4-5678-90ab-cdef-1234567890ab",
      "tags": [
        "high-intent",
        "warm-intro"
      ],
      "additional_emails": [],
      "additional_phones": [],
      "custom_fields": {
        "region": "APAC",
        "priority_score": 87
      },
      "last_engagement_at": "2026-05-01T14:30:00.000+05:30",
      "created_at": "2026-04-12T09:11:00.000+05:30",
      "updated_at": "2026-05-01T14:30:00.000+05:30"
    }
  ],
  "next_cursor": "eyJsYXN0X2lkIjoiYzJhOGE5M2EifQ==",
  "has_more": true
}

Was this page helpful?

Your vote stays in this browser. We'll use it to prioritise rewrites.