Summary
The same contact history for the account. Optional inbox_id (id, username, or email) limits it to one inbox and follows the same pin as GET /api/v1/search. Omit inbox_id to read every inbox this key can see. The response inbox_id is null when it is not limited to one inbox. A bad address is HTTP 400 invalid_address. An unknown inbox_id is HTTP 404 inbox_not_found. Requires message_read. MCP: cooper_contact_history.
Request
This call has no JSON body.
Response
HTTP 200. Sample values illustrate the schema.
{
"object": "contact_history",
"address": "ada@example.com",
"inbox_id": null,
"summary": {
"first_seen_at": null,
"last_seen_at": null,
"last_inbound_at": null,
"last_outbound_at": null,
"messages_received": 1,
"messages_sent": 1,
"threads": 1,
"attachments": 1,
"truncated": true
},
"threads": [
{
"object": "thread",
"id": "inb_example",
"inbox_id": "inb_example",
"subject": "Hello",
"message_count": 1,
"updated_at": "2026-10-18T12:00:00.000Z"
}
],
"threads_has_more": true,
"messages": [
{
"id": "msg_example",
"inbox_id": "inb_example",
"thread_id": "thr_example",
"folder": "inbox",
"direction": "inbound",
"from": "ada@example.com",
"to": [
"string"
],
"subject": "Hello",
"text": "Tuesday works.",
"html": null,
"extracted_text": "string",
"alias": null,
"aliases": [
"string"
],
"extracted_html": "string",
"preview": "string",
"verification": {
"codes": [
"string"
],
"links": [
{
"url": null,
"text": null
}
]
},
"delivery_events": [
{
"type": "string",
"recipient": "string",
"created_at": "2026-10-18T12:00:00.000Z",
"detail": "string"
}
],
"cc": [
"string"
],
"bcc": [
"string"
],
"reply_to": null,
"in_reply_to": null,
"references": [
"string"
],
"labels": [
"string"
],
"auth": {
"spf": null,
"dkim": null,
"dmarc": null
}
}
],
"has_more": true,
"next_cursor": null
}Errors
- HTTP 400 invalid_address
- HTTP 404 inbox_not_found
- HTTP 400 invalid_date
- HTTP 400 invalid_cursor
- HTTP 400 invalid_folder
- HTTP 400 invalid_include
Idempotency
This route does not document Idempotency-Key or client_id.