/v1/brands/{brand_id}/contacts/{contact_id} Retrieve an outreach contact
One contact with its best tier, tags, the static lists it is on, what the emails to it did and its last 50 sends, opens and replies. Requires the brand owner on Pro. A client seat cannot reach contacts.
Path parameters
-
Contact id.
-
Brand UUID.
Query parameters
-
Preview the call without executing it. Runs auth, scope, eligibility and body validation, then returns
200with adry_runobject reporting the request-unit and credit cost plus a non-consuming quota snapshot. Nothing is debited, reserved, dispatched or mutated. An invalid body still returns422.default: false
Responses
-
Owning brand id.
-
Cited pages the contact was found on.
-
Whether the email was verified as deliverable.
-
Contact id.
-
active,unsubscribedorbounced; onlyactivecontacts are emailed. - activity array of ContactActivity
The last 50 sends, opens and replies, newest first.
- best_tier integer (nullable) nullable
Best tier across the pages the contact was found on: 1 is the page's author or a named editor, 6 a generic inbox.
nullfor a contact added by hand and not found on any page. - company string (nullable) nullable
Company or publication.
- created_at string (nullable) nullable
When the contact was added.
- email string (nullable) nullable
Email address.
- engagement ContactEngagement (nullable) nullable
Email results with the contact;
nullunless the brand owner is on Pro. - last_contacted_at string (nullable) nullable
When an email last went to the contact.
- linkedin_url string (nullable) nullable
LinkedIn profile URL.
- lists array of ContactListRef
Static lists the contact is on.
- name string (nullable) nullable
Name.
- object string
- tags array of string
Free-form labels; a dynamic list can follow them.
- twitter_handle string (nullable) nullable
X handle, without the
@. - updated_at string (nullable) nullable
Last change.
- website string (nullable) nullable
Website.
Example response
{
"activity": [],
"best_tier": 1,
"brand_id": "3f9c7e8a-1b6a-4d8e-92cf-7d9c8b1e2a04",
"citation_count": 3,
"company": "Runner's World",
"created_at": "2026-09-20T10:00:00+00:00",
"email": "alex.rivera@e2e.test",
"email_verified": true,
"engagement": {
"emails_opened": 1,
"emails_replied": 1,
"emails_sent": 2,
"open_rate": 50,
"reply_rate": 50
},
"id": "7a8b9c0d-1e2f-4a3b-8c4d-5e6f7a8b9c0d",
"lists": [
{
"id": "9b8a7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
"name": "Running editors"
}
],
"name": "Alex Rivera",
"object": "contact",
"status": "active",
"tags": [
"running",
"tier-1"
],
"updated_at": "2026-09-28T10:00:00+00:00",
"website": "https://www.runnersworld.com"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "validation_error",
"message": "Request validation failed"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "unauthorized",
"message": "Missing or invalid credentials"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "forbidden",
"message": "You do not have permission to access this resource"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "not_found",
"message": "Resource not found"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "conflict",
"message": "Resource conflict"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "rate_limit_exceeded",
"message": "Per-minute rate limit exceeded"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "internal_error",
"message": "An unexpected error occurred"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}-
Show fields
-
Stable machine-readable error code from the catalog.
-
Human-readable description suitable for logging.
- details object
Optional, code-specific context (e.g.
errorsarray forvalidation_error,retry_afterforservice_unavailable). Shape depends onerror.code; treat as opaque otherwise.Show fields
Empty object (no properties).
-
- request_id string
Server-generated correlation id for the request. Mirrors the
X-Correlation-IDresponse header. Include this when contacting support.
Example response
{
"error": {
"code": "service_unavailable",
"message": "Service temporarily unavailable, please retry"
},
"request_id": "9f6c4e8a-1d3b-4c8b-9f1e-7a3b1c2d3e4f"
}