WundertreOS

List contacts

Retrieve a paginated list of contacts in your organization, optionally filtered by update time or event type.

GET/api-contacts
Try it
GET

Create an API key in your workspace under Settings → Integrations & API.

Query

Returns contacts in the caller's organization. Designed to support both general listing and Zapier‑style polling triggers.

Query parameters

Query
NameTypeDescription
updated_sincestring (ISO 8601)Return only contacts updated at or after this timestamp.
eventstringOptional. Filter by event type for Zapier polling. Accepted values: created, updated, tag_added, enriched. When combined with updated_since, returns only contacts matching that specific change type. When set to created, results are sorted by created_at and combined with updated_since as a created_at filter. When set to enriched, results are filtered to contacts with a non‑null enriched_at and sorted by enriched_at.
limitintegerMax contacts to return. Default 100, max 200.
offsetintegerPagination offset. Default 0.
orderstringOptional. Sort direction. Accepted values: asc, desc. Defaults to desc (newest first, as expected by Zapier polling triggers).

Example request

bash
curl -X GET \
  'https://api.wundertreos.com/functions/v1/api-contacts?limit=50&updated_since=2026-01-01T00:00:00Z' \
  -H 'Authorization: Bearer YOUR_ACCESS_TOKEN'
js
const res = await fetch(
  "https://api.wundertreos.com/functions/v1/api-contacts?limit=50",
  { headers: { Authorization: `Bearer ${token}` } }
);
const { data, meta } = await res.json();

Response

json
{
  "data": [
    {
      "id": "c8b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c",
      "org_id": "a1b2c3d4-1111-2222-3333-444455556666",
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane@example.com",
      "phone": "+15551234567",
      "company": "Acme Inc",
      "company_id": null,
      "job_title": "Head of Growth",
      "industry": "SaaS",
      "address_line1": "100 Market St",
      "address_line2": null,
      "city": "San Francisco",
      "state": "CA",
      "zip": "94105",
      "country": "US",
      "tags": ["lead", "vip"],
      "status": "active",
      "stage": "customer",
      "source": "api",
      "score": 72,
      "notes": null,
      "linkedin_url": "https://linkedin.com/in/janedoe",
      "enriched_at": "2026-05-17T11:02:08Z",
      "enrichment_status": "complete",
      "email_subscribed": true,
      "created_at": "2026-04-12T09:31:22Z",
      "updated_at": "2026-05-17T11:02:08Z",
      "created_by": "u1b1f3a0-4d2e-4f9a-9b1c-2d4e5f6a7b8c"
    }
  ],
  "meta": { "limit": 50, "offset": 0, "count": 1 }
}
Response
FieldTypeDescription
dataContact[]Array of contact objects.
data[].iduuidUnique contact ID.
data[].org_iduuidOrganization the contact belongs to.
data[].first_namestringGiven name.
data[].last_namestringFamily name.
data[].emailnullablestringPrimary email address.
data[].phonenullablestringPhone number.
data[].companynullablestringFree‑text company name.
data[].company_idnullableuuidLinked company record, if any.
data[].job_titlenullablestringJob title.
data[].industrynullablestringIndustry.
data[].address_line1nullablestring
data[].address_line2nullablestring
data[].citynullablestring
data[].statenullablestring
data[].zipnullablestring
data[].countrynullablestring
data[].tagsstring[]Tags applied to the contact.
data[].statusstringLifecycle status (e.g. active, unsubscribed).
data[].stagenullablestringPipeline stage label.
data[].sourcestringHow the contact was created (e.g. api, import, form).
data[].scorenullableintegerLead score.
data[].notesnullablestringFree‑form notes.
data[].linkedin_urlnullablestring
data[].enriched_atnullablestring (ISO 8601)When enrichment last ran.
data[].enrichment_statusnullablestring
data[].email_subscribedboolean
data[].created_atstring (ISO 8601)
data[].updated_atstring (ISO 8601)
data[].created_bynullableuuidUser who created the contact.
meta.limitinteger
meta.offsetinteger
meta.countintegerNumber of items returned in the current page. Note: count reflects the number of records in this page, not the total across all pages. Use offset to paginate through results.