List contacts
List canonical contacts with cursor pagination. Filter by roles (customer, supplier, lead, or the synthetic unassigned relationship; CSV or array), role_match (any or all), role status, kind, fiscal identity, external ID, tags, metadata, archive state and creation date. Contacts with cumulative roles appear once and match every role they contain.
Request
- Base URL: https://api.factuarea.com/v1
- URL: https://api.factuarea.com/v1/companies/{company}/contacts
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Path parameters
Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).
Query parameters
Number of objects to return, between 1 and 100 (default 25).
Cursor for forward pagination: pass the id of the last object on the previous page (the next_cursor of the previous response).
Free-text search (up to 255 characters) over name, commercial name, tax identifiers, email, external ID and phone numbers.
Only contacts with these roles: customer, supplier, lead or unassigned (repeat it or send a comma-separated list).
any (default) matches at least one of the roles[]; all requires all of them.
Only roles in this status: active or inactive.
Contact kind: person or company.
Exact match on any tax identifier of the contact (NIF/NIE/CIF, EU VAT number or alternative ID document).
Exact match on the external_id you assigned.
Only contacts carrying all these tags (case-insensitive, up to 50).
true returns only archived contacts and false only the rest; omit it to return both.
City name, exact match.
Exact match on the province.
Exact ISO 3166-1 alpha-2 country code.
true returns only contacts with an email address and false only those without one.
true returns only contacts with a phone number and false only those without one.
Only records created on or after this date (YYYY-MM-DD).
Only records created on or before this date (YYYY-MM-DD).
Metadata filter as metadata[key]=value (exact match, up to 20 pairs, all must match).
Sort direction by creation date: asc (default) or desc.
Headers
Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.
Response
Example response
{
"data": [
{
"id": "0198f4d1-a492-7e05-9a35-000000000001",
"object": "contact",
"kind": "company",
"name": "Distribuciones Ejemplo SL",
"business_name": "Distribuciones Ejemplo SL",
"commercial_name": "Ejemplo",
"tax_id": "B12345674",
"vat_id": null,
"alternative_id": null,
"address": {
"line1": "Calle Mayor",
"line2": null,
"number": "10",
"floor": null,
"door": null,
"staircase": null,
"city": "Madrid",
"province": "Madrid",
"postal_code": "28013",
"country": "ES"
},
"contact_person": "Ana García",
"email": "administracion@example.com",
"phone": "+34910000000",
"mobile": null,
"fax": null,
"website": "https://example.com",
"billing_emails": [
"facturas@example.com"
],
"tags": [
"distribuidor"
],
"coordinates": null,
"notes": null,
"metadata": {
"erp_id": "CONTACT-42"
},
"accumulate_347": true,
"external_id": "CONTACT-42",
"roles": [
{
"role": "customer",
"status": "active",
"assigned_at": "2026-08-29T10:00:00+00:00",
"deactivated_at": null
},
{
"role": "supplier",
"status": "active",
"assigned_at": "2026-08-29T10:00:00+00:00",
"deactivated_at": null
}
],
"bank_accounts": [],
"customer_profile": null,
"supplier_profile": null,
"financial_summary": {
"sales": {
"invoiced_amount": "1210.00",
"collected_amount": "800.00",
"receivable_amount": "410.00",
"currency": "EUR"
},
"purchases": {
"purchased_amount": "605.00",
"paid_amount": "400.00",
"payable_amount": "205.00",
"currency": "EUR"
}
},
"latest_activity": null,
"is_archived": false,
"archived_at": null,
"created_at": "2026-08-29T10:00:00+00:00",
"updated_at": "2026-08-29T10:00:00+00:00"
}
],
"has_more": true,
"next_cursor": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a0c"
}Changes
No recorded changes to this operation across all 1 revision of this API.