List the account's campaigns. Requires campaigns:read.
| page | integer (Page) >= 1 Default: 1 1-based page number. |
| size | integer (Size) [ 1 .. 100 ] Default: 25 Items per page (max 100). |
{- "items": [
- {
- "date_created": "2019-08-24T14:15:22Z",
- "date_end": "2019-08-24T14:15:22Z",
- "date_start": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "string",
- "is_enabled": true,
- "kind": "string",
- "name": "string",
- "project_id": "string",
- "state": "string"
}
], - "page": 0,
- "size": 0,
- "total": 0
}Fetch one campaign by id, own account only. Requires campaigns:read.
| campaign_id required | string (Campaign Id) |
{- "date_created": "2019-08-24T14:15:22Z",
- "date_end": "2019-08-24T14:15:22Z",
- "date_start": "2019-08-24T14:15:22Z",
- "description": "string",
- "id": "string",
- "is_enabled": true,
- "kind": "string",
- "name": "string",
- "project_id": "string",
- "state": "string"
}List the account's custom fields. Requires custom_fields:read.
Collection (string) or Collection (null) (Collection) Filter to fields for one entity type. | |
| page | integer (Page) >= 1 Default: 1 1-based page number. |
| size | integer (Size) [ 1 .. 100 ] Default: 25 Items per page (max 100). |
{- "items": [
- {
- "collection": "Person",
- "data_type": "str",
- "description": "string",
- "form_type": "text",
- "id": "string",
- "is_default": true,
- "is_read_only": true,
- "key": "string",
- "label": "string"
}
], - "page": 0,
- "size": 0,
- "total": 0
}Create a custom field for the caller's account. Requires custom_fields:write.
Allocates the storage key, creates the Elasticsearch mapping so values can be
indexed, then persists the definition. The owning account comes from the API
key; key+collection must be unique (409) and the account-wide field limit
is enforced (422).
| collection required | string (Collection) Enum: "Person" "Breadcrumb" "Partner" |
| data_type required | string (Data Type) Enum: "str" "int" "float" "bool" "list" "date" "money" "unicode" |
Description (string) or Description (null) (Description) | |
| form_type | string (Form Type) Default: "text" Enum: "text" "number" "textarea" "email" "url" "image" |
| key required | string (Key) [ 1 .. 255 ] characters |
Label (string) or Label (null) (Label) |
{- "collection": "Person",
- "data_type": "str",
- "description": "string",
- "form_type": "text",
- "key": "string",
- "label": "string"
}{- "collection": "Person",
- "data_type": "str",
- "description": "string",
- "form_type": "text",
- "id": "string",
- "is_default": true,
- "is_read_only": true,
- "key": "string",
- "label": "string"
}Archive a custom field (soft delete). Requires custom_fields:write.
Soft delete preserves already-stored values and the Elasticsearch mapping (mappings are only reclaimed on reindex). Integration-managed (read-only) fields cannot be deleted via the API (403).
| field_id required | string (Field Id) |
{- "detail": "string",
- "status": 0,
- "title": "string",
- "type": "about:blank"
}Fetch one custom field by id, own account only. Requires custom_fields:read.
| field_id required | string (Field Id) |
{- "collection": "Person",
- "data_type": "str",
- "description": "string",
- "form_type": "text",
- "id": "string",
- "is_default": true,
- "is_read_only": true,
- "key": "string",
- "label": "string"
}Update a custom field's display attributes. Requires custom_fields:write.
Integration-managed (read-only) fields cannot be edited via the API (403).
| field_id required | string (Field Id) |
Description (string) or Description (null) (Description) | |
Form Type (string) or Form Type (null) (Form Type) | |
Label (string) or Label (null) (Label) |
{- "description": "string",
- "form_type": "text",
- "label": "string"
}{- "collection": "Person",
- "data_type": "str",
- "description": "string",
- "form_type": "text",
- "id": "string",
- "is_default": true,
- "is_read_only": true,
- "key": "string",
- "label": "string"
}Introspect the calling API key: its account, scopes, metadata, and limits.
Requires only a valid key (any scope) and does not count against the key's rate limit. Metadata is read fresh from storage by the key's id; rate-limit counters reflect the bucket as of this request.
{- "account_id": "string",
- "expires_at": "2019-08-24T14:15:22Z",
- "key_id": "string",
- "last_four": "string",
- "last_used_at": "2019-08-24T14:15:22Z",
- "prefix": "string",
- "rate_limit": {
- "enabled": true,
- "limit": 0,
- "remaining": 0,
- "reset_at": "2019-08-24T14:15:22Z",
- "reset_seconds": 0,
- "used": 0
}, - "revoked": false,
- "scopes": [
- "string"
], - "service_name": "string"
}List persons last seen since updated_since, or look up a single person by
email / external_id. Requires persons:read.
One of updated_since, email, or external_id is required, selecting one of
two modes:
updated_since given; capped at 30 days, last-seen ascending for
stable paging): external_id and tag_ids filter the window; email is ignored.updated_since): email or external_id resolves a single
person by stable key (0- or 1-item page); tag_ids is ignored.Inner breadcrumbs are excluded; custom-field values are translated to public keys.
Set extended=true to include the full field set (see the extended param);
it is omitted by default.
Updated Since (string) or Updated Since (null) (Updated Since) Return persons last seen at/after this time (max 30 days ago). | |
Email (string) or Email (null) (Email) Look up the single person with this email (no time window). Ignored when updated_since is set. | |
External Id (string) or External Id (null) (External Id) With updated_since, filter the window to this external id; without it, look up the single person with this external id. | |
Array of Tag Ids (strings) or Tag Ids (null) (Tag Ids) Filter to persons holding ALL of these tag ids (AND). Requires updated_since; ignored without it. | |
| extended | boolean (Extended) Default: false Include the full field set (name, language, pseudonym, occupation, companies, address, age, ethnicity, income, edu, tags, email_opt_out, is_archived, person_url). Off by default. |
| page | integer (Page) >= 1 Default: 1 1-based page number. |
| size | integer (Size) [ 1 .. 100 ] Default: 25 Items per page (max 100). |
{- "items": [
- {
- "0_person_url": "string",
- "address": {
- "administrative_area_code": "string",
- "administrative_area_name": "string",
- "continent_code": "string",
- "country_code": "string",
- "country_code2": "string",
- "country_name": "string",
- "lat": 0,
- "lng": 0,
- "locality": "string",
- "organization": "string",
- "postal_code": "string",
- "premise1": "string",
- "premise2": "string",
- "region_name": "string",
- "sub_administrative_area_code": "string",
- "sub_administrative_area_name": "string",
- "timezone": "string"
}, - "age": 0,
- "companies": [
- "string"
], - "custom_fields": { },
- "date_created": "2019-08-24T14:15:22Z",
- "date_last_seen": "2019-08-24T14:15:22Z",
- "edu": "string",
- "email": "string",
- "email_opt_out": true,
- "ethnicity": "string",
- "external_id": "string",
- "first_name": "string",
- "id": "string",
- "income": 0,
- "is_archived": true,
- "language": "string",
- "last_name": "string",
- "name": "string",
- "occupation": "string",
- "phone": "string",
- "pseudonym": "string",
- "tag_ids": [
- "string"
], - "tags": [
- "string"
], - "upsert_result": "created"
}
], - "page": 0,
- "size": 0,
- "total": 0
}Write a person from a flat attribute body, matched by stable key.
Requires persons:write.
Matches an existing person by external_id to email to f_id, then applies the
provided attributes: scalar fields, nested address_*, email_opt_out,
custom_fields (by public key), and tags (by name — missing ones are created
and added without removing existing tags). mode selects create-or-update
behavior (see the param); the default upsert is idempotent given a stable
external_id. The response is the full person with upsert_result set to
created or updated.
| mode | string (WriteMode) Default: "upsert" Enum: "upsert" "create" "update" upsert (default) matches-or-creates; create returns 409 if the person already exists; update returns 404 if it does not. |
Address Administrative Area Name (string) or Address Administrative Area Name (null) (Address Administrative Area Name) | |
Address Country Name (string) or Address Country Name (null) (Address Country Name) | |
Address Locality (string) or Address Locality (null) (Address Locality) | |
Address Postal Code (string) or Address Postal Code (null) (Address Postal Code) | |
Address Premise1 (string) or Address Premise1 (null) (Address Premise1) | |
Address Premise2 (string) or Address Premise2 (null) (Address Premise2) | |
Age (integer) or Age (null) (Age) | |
Array of Companies (strings) or Companies (null) (Companies) | |
Custom Fields (object) or Custom Fields (null) (Custom Fields) | |
Edu (string) or Edu (null) (Edu) | |
Email (string) or Email (null) (Email) | |
Email Opt Out (boolean) or Email Opt Out (null) (Email Opt Out) | |
Ethnicity (string) or Ethnicity (null) (Ethnicity) | |
External Id (string) or External Id (null) (External Id) | |
F Id (string) or F Id (null) (F Id) | |
First Name (string) or First Name (null) (First Name) | |
Income (integer) or Income (null) (Income) | |
Language (string) or Language (null) (Language) | |
Last Name (string) or Last Name (null) (Last Name) | |
Name (string) or Name (null) (Name) | |
Occupation (string) or Occupation (null) (Occupation) | |
Phone (string) or Phone (null) (Phone) | |
Pseudonym (string) or Pseudonym (null) (Pseudonym) | |
Array of Tags (strings) or Tags (null) (Tags) |
{- "address_administrative_area_name": "string",
- "address_country_name": "string",
- "address_locality": "string",
- "address_postal_code": "string",
- "address_premise1": "string",
- "address_premise2": "string",
- "age": 0,
- "companies": [
- "string"
], - "custom_fields": { },
- "edu": "string",
- "email": "string",
- "email_opt_out": true,
- "ethnicity": "string",
- "external_id": "string",
- "f_id": "string",
- "first_name": "string",
- "income": 0,
- "language": "string",
- "last_name": "string",
- "name": "string",
- "occupation": "string",
- "phone": "string",
- "pseudonym": "string",
- "tags": [
- "string"
]
}{- "0_person_url": "string",
- "address": {
- "administrative_area_code": "string",
- "administrative_area_name": "string",
- "continent_code": "string",
- "country_code": "string",
- "country_code2": "string",
- "country_name": "string",
- "lat": 0,
- "lng": 0,
- "locality": "string",
- "organization": "string",
- "postal_code": "string",
- "premise1": "string",
- "premise2": "string",
- "region_name": "string",
- "sub_administrative_area_code": "string",
- "sub_administrative_area_name": "string",
- "timezone": "string"
}, - "age": 0,
- "companies": [
- "string"
], - "custom_fields": { },
- "date_created": "2019-08-24T14:15:22Z",
- "date_last_seen": "2019-08-24T14:15:22Z",
- "edu": "string",
- "email": "string",
- "email_opt_out": true,
- "ethnicity": "string",
- "external_id": "string",
- "first_name": "string",
- "id": "string",
- "income": 0,
- "is_archived": true,
- "language": "string",
- "last_name": "string",
- "name": "string",
- "occupation": "string",
- "phone": "string",
- "pseudonym": "string",
- "tag_ids": [
- "string"
], - "tags": [
- "string"
], - "upsert_result": "created"
}Fetch a person by id, scoped to the caller's account. Requires persons:read.
Inner breadcrumbs are always excluded from the fetch (they are large and
served by the breadcrumbs endpoint). Custom-field values are translated to
public keys. Set extended=true to include the full field set.
| person_id required | string (Person Id) |
| extended | boolean (Extended) Default: false Include the full field set (name, language, pseudonym, occupation, companies, address, age, ethnicity, income, edu, tags, email_opt_out, is_archived, person_url). Off by default. |
{- "0_person_url": "string",
- "address": {
- "administrative_area_code": "string",
- "administrative_area_name": "string",
- "continent_code": "string",
- "country_code": "string",
- "country_code2": "string",
- "country_name": "string",
- "lat": 0,
- "lng": 0,
- "locality": "string",
- "organization": "string",
- "postal_code": "string",
- "premise1": "string",
- "premise2": "string",
- "region_name": "string",
- "sub_administrative_area_code": "string",
- "sub_administrative_area_name": "string",
- "timezone": "string"
}, - "age": 0,
- "companies": [
- "string"
], - "custom_fields": { },
- "date_created": "2019-08-24T14:15:22Z",
- "date_last_seen": "2019-08-24T14:15:22Z",
- "edu": "string",
- "email": "string",
- "email_opt_out": true,
- "ethnicity": "string",
- "external_id": "string",
- "first_name": "string",
- "id": "string",
- "income": 0,
- "is_archived": true,
- "language": "string",
- "last_name": "string",
- "name": "string",
- "occupation": "string",
- "phone": "string",
- "pseudonym": "string",
- "tag_ids": [
- "string"
], - "tags": [
- "string"
], - "upsert_result": "created"
}Update a person's attributes (incl. custom_fields) by id, own account only.
Requires persons:write.
| person_id required | string (Person Id) |
Custom Fields (object) or Custom Fields (null) (Custom Fields) | |
Email (string) or Email (null) (Email) | |
First Name (string) or First Name (null) (First Name) | |
Last Name (string) or Last Name (null) (Last Name) | |
Phone (string) or Phone (null) (Phone) |
{- "custom_fields": { },
- "email": "string",
- "first_name": "string",
- "last_name": "string",
- "phone": "string"
}{- "0_person_url": "string",
- "address": {
- "administrative_area_code": "string",
- "administrative_area_name": "string",
- "continent_code": "string",
- "country_code": "string",
- "country_code2": "string",
- "country_name": "string",
- "lat": 0,
- "lng": 0,
- "locality": "string",
- "organization": "string",
- "postal_code": "string",
- "premise1": "string",
- "premise2": "string",
- "region_name": "string",
- "sub_administrative_area_code": "string",
- "sub_administrative_area_name": "string",
- "timezone": "string"
}, - "age": 0,
- "companies": [
- "string"
], - "custom_fields": { },
- "date_created": "2019-08-24T14:15:22Z",
- "date_last_seen": "2019-08-24T14:15:22Z",
- "edu": "string",
- "email": "string",
- "email_opt_out": true,
- "ethnicity": "string",
- "external_id": "string",
- "first_name": "string",
- "id": "string",
- "income": 0,
- "is_archived": true,
- "language": "string",
- "last_name": "string",
- "name": "string",
- "occupation": "string",
- "phone": "string",
- "pseudonym": "string",
- "tag_ids": [
- "string"
], - "tags": [
- "string"
], - "upsert_result": "created"
}List the account's projects. Requires projects:read.
| page | integer (Page) >= 1 Default: 1 1-based page number. |
| size | integer (Size) [ 1 .. 100 ] Default: 25 Items per page (max 100). |
{- "items": [
- {
- "date_created": "2019-08-24T14:15:22Z",
- "date_end": "2019-08-24T14:15:22Z",
- "date_start": "2019-08-24T14:15:22Z",
- "id": "string",
- "location": "string",
- "name": "string",
- "registration_url": "string",
- "site_url": "string"
}
], - "page": 0,
- "size": 0,
- "total": 0
}Fetch one project by id, own account only. Requires projects:read.
| project_id required | string (Project Id) |
{- "date_created": "2019-08-24T14:15:22Z",
- "date_end": "2019-08-24T14:15:22Z",
- "date_start": "2019-08-24T14:15:22Z",
- "id": "string",
- "location": "string",
- "name": "string",
- "registration_url": "string",
- "site_url": "string"
}