> For the complete documentation index, see [llms.txt](https://help.mimeeq.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.mimeeq.com/developers/contacts.md).

# Contacts

Contacts belonging to companies.

## List Contacts

> List contacts. Optionally filter by contact \`status\`, \`companyId\`, or a case-insensitive \`search\` over name and email. Results are cursor-paginated.\
> \
> Requires the \`contacts:read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Contacts","description":"Contacts belonging to companies."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"ContactsList":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"contactId":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Contact identifier (CONT-<uuid>)."},"contactNumericId":{"type":"number"},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"number":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","number"],"additionalProperties":false}},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"mail":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","mail"],"additionalProperties":false}},"isUserAssigned":{"type":"boolean"},"isInvited":{"type":"boolean","description":"Whether the contact has a pending or accepted invitation."},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the last activity, or null."},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 creation timestamp."},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 last-modified timestamp."}},"required":["contactId","contactNumericId","firstName","lastName","companyId","status","phoneNumbers","emails","isUserAssigned","isInvited","lastActivityAt","createdAt","modifiedAt"],"additionalProperties":false}},"page":{"type":"object","properties":{"limit":{"type":"number"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Cursor for the next page, or null on the last page."}},"required":["limit","nextCursor"],"additionalProperties":false}},"required":["data","page"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}}}},"paths":{"/v1/contacts":{"get":{"summary":"List Contacts","tags":["Contacts"],"description":"List contacts. Optionally filter by contact `status`, `companyId`, or a case-insensitive `search` over name and email. Results are cursor-paginated.\n\nRequires the `contacts:read` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsList"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":5000}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string","minLength":1}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["ACTIVE","INACTIVE"]}},{"name":"companyId","in":"query","required":false,"schema":{"type":"string","pattern":"^COMP-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}},{"name":"search","in":"query","required":false,"schema":{"type":"string","minLength":1}}]}}}}
```

## Create Contact

> Create a contact for a company. \`status\` defaults to ACTIVE when omitted; the nested \`address\` shape is shared with contact updates. \`reportsToId\` must name another contact in the same company (\`400 contact\_invalid\_reports\_to\` otherwise).\
> \
> Requires the \`contacts:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Contacts","description":"Contacts belonging to companies."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"ContactsMutation":{"type":"object","properties":{"data":{"type":"object","properties":{"contactId":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Contact identifier (CONT-<uuid>)."},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyId":{"type":"string"}},"required":["contactId","status","firstName","lastName","companyId"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"ContactsCreateRequest":{"type":"object","properties":{"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"firstName":{"type":"string","minLength":1,"maxLength":255},"lastName":{"type":"string","minLength":1,"maxLength":255},"companyId":{"type":"string","pattern":"^COMP-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"sameAsCompany":{"type":"boolean"},"address":{"type":"object","properties":{"street":{"type":"string","minLength":1,"maxLength":255},"city":{"type":"string","minLength":1,"maxLength":255},"postcode":{"type":"string","minLength":1,"maxLength":255},"country":{"type":"string","minLength":1,"maxLength":255}},"additionalProperties":false},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":255}},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"number":{"type":"string","minLength":1,"maxLength":255}},"required":["type","number"],"additionalProperties":false}},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"mail":{"type":"string"}},"required":["type","mail"],"additionalProperties":false}},"linkedInAccount":{"type":"string","minLength":1,"maxLength":255},"position":{"type":"string","minLength":1,"maxLength":255},"reportsToId":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}},"required":["firstName","lastName","companyId"],"additionalProperties":false}}},"paths":{"/v1/contacts":{"post":{"summary":"Create Contact","tags":["Contacts"],"description":"Create a contact for a company. `status` defaults to ACTIVE when omitted; the nested `address` shape is shared with contact updates. `reportsToId` must name another contact in the same company (`400 contact_invalid_reports_to` otherwise).\n\nRequires the `contacts:write` scope.","responses":{"201":{"description":"Created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsMutation"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsCreateRequest"}}}}}}}}
```

## Get Contact

> Get a contact with its address, tags, reporting line, invitation state, and user-assignment state.\
> \
> Requires the \`contacts:read\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Contacts","description":"Contacts belonging to companies."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"ContactsDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"contactId":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Contact identifier (CONT-<uuid>)."},"contactNumericId":{"type":"number"},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"number":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","number"],"additionalProperties":false}},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"mail":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","mail"],"additionalProperties":false}},"isUserAssigned":{"type":"boolean"},"isInvited":{"type":"boolean","description":"Whether the contact has a pending or accepted invitation."},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the last activity, or null."},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 creation timestamp."},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 last-modified timestamp."},"sameAsCompany":{"type":"boolean"},"address":{"type":"object","properties":{"street":{"anyOf":[{"type":"string"},{"type":"null"}]},"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["street","city","postcode","country"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"string"}},"linkedInAccount":{"anyOf":[{"type":"string"},{"type":"null"}]},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"reportsToId":{"anyOf":[{"type":"string"},{"type":"null"}]},"reportsToName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["contactId","contactNumericId","firstName","lastName","companyId","status","phoneNumbers","emails","isUserAssigned","isInvited","lastActivityAt","createdAt","modifiedAt","sameAsCompany","address","tags","linkedInAccount","position","reportsToId","reportsToName"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}}}},"paths":{"/v1/contacts/{contactId}":{"get":{"summary":"Get Contact","tags":["Contacts"],"description":"Get a contact with its address, tags, reporting line, invitation state, and user-assignment state.\n\nRequires the `contacts:read` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}}]}}}}
```

## Update Contact

> Replace a contact with the supplied fields. Supplied arrays replace their stored values; changing \`companyId\` can be rejected when the contact has quotations, an invitation, or a portal user. \`reportsToId\` must name another contact in the same company — the contact itself is not accepted (\`400 contact\_invalid\_reports\_to\` otherwise).\
> \
> Requires the \`contacts:write\` scope.

```json
{"openapi":"3.1.0","info":{"title":"Mimeeq External API","version":"1.0.0"},"tags":[{"name":"Contacts","description":"Contacts belonging to companies."}],"servers":[{"url":"https://admin.mimeeqapi.com","description":"Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"API key sent as a bearer token (mk_live_… / mk_test_…)."}},"schemas":{"ContactsDetail":{"type":"object","properties":{"data":{"type":"object","properties":{"contactId":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"Contact identifier (CONT-<uuid>)."},"contactNumericId":{"type":"number"},"firstName":{"type":"string"},"lastName":{"type":"string"},"companyId":{"type":"string"},"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"number":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","number"],"additionalProperties":false}},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"mail":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["type","mail"],"additionalProperties":false}},"isUserAssigned":{"type":"boolean"},"isInvited":{"type":"boolean","description":"Whether the contact has a pending or accepted invitation."},"lastActivityAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 timestamp of the last activity, or null."},"createdAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 creation timestamp."},"modifiedAt":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 8601 last-modified timestamp."},"sameAsCompany":{"type":"boolean"},"address":{"type":"object","properties":{"street":{"anyOf":[{"type":"string"},{"type":"null"}]},"city":{"anyOf":[{"type":"string"},{"type":"null"}]},"postcode":{"anyOf":[{"type":"string"},{"type":"null"}]},"country":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["street","city","postcode","country"],"additionalProperties":false},"tags":{"type":"array","items":{"type":"string"}},"linkedInAccount":{"anyOf":[{"type":"string"},{"type":"null"}]},"position":{"anyOf":[{"type":"string"},{"type":"null"}]},"reportsToId":{"anyOf":[{"type":"string"},{"type":"null"}]},"reportsToName":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["contactId","contactNumericId","firstName","lastName","companyId","status","phoneNumbers","emails","isUserAssigned","isInvited","lastActivityAt","createdAt","modifiedAt","sameAsCompany","address","tags","linkedInAccount","position","reportsToId","reportsToName"],"additionalProperties":false}},"required":["data"],"additionalProperties":false},"PublicError":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"details":{"description":"Optional error-specific details (e.g. per-field validation reasons)."}}},"ContactsCreateRequest":{"type":"object","properties":{"status":{"type":"string","enum":["ACTIVE","INACTIVE"]},"firstName":{"type":"string","minLength":1,"maxLength":255},"lastName":{"type":"string","minLength":1,"maxLength":255},"companyId":{"type":"string","pattern":"^COMP-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"},"sameAsCompany":{"type":"boolean"},"address":{"type":"object","properties":{"street":{"type":"string","minLength":1,"maxLength":255},"city":{"type":"string","minLength":1,"maxLength":255},"postcode":{"type":"string","minLength":1,"maxLength":255},"country":{"type":"string","minLength":1,"maxLength":255}},"additionalProperties":false},"tags":{"type":"array","items":{"type":"string","minLength":1,"maxLength":255}},"phoneNumbers":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"number":{"type":"string","minLength":1,"maxLength":255}},"required":["type","number"],"additionalProperties":false}},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["WORK","HOME","PRIVATE"]},"mail":{"type":"string"}},"required":["type","mail"],"additionalProperties":false}},"linkedInAccount":{"type":"string","minLength":1,"maxLength":255},"position":{"type":"string","minLength":1,"maxLength":255},"reportsToId":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}},"required":["firstName","lastName","companyId"],"additionalProperties":false}}},"paths":{"/v1/contacts/{contactId}":{"put":{"summary":"Update Contact","tags":["Contacts"],"description":"Replace a contact with the supplied fields. Supplied arrays replace their stored values; changing `companyId` can be rejected when the contact has quotations, an invitation, or a portal user. `reportsToId` must name another contact in the same company — the contact itself is not accepted (`400 contact_invalid_reports_to` otherwise).\n\nRequires the `contacts:write` scope.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsDetail"}}}},"400":{"description":"Invalid request data.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"401":{"description":"Missing or invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"403":{"description":"The API key lacks the required scope (`scope_denied`), or the operation is not permitted for this account (`operation_not_permitted`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"404":{"description":"Resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicError"}}}}},"parameters":[{"name":"contactId","in":"path","required":true,"schema":{"type":"string","pattern":"^CONT-[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContactsCreateRequest"}}}}}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://help.mimeeq.com/developers/contacts.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
