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

# Contacts

## List All Contacts

> Returns a list of your contacts for a specific campaign, with optional filtering.

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Contacts","version":"v14"},"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"schemas":{"Contact":{"type":"object","properties":{"Id":{"type":"string","description":"Unique Contact ID. System-created contacts are prefixed with 'M'."},"FirstName":{"type":"string"},"LastName":{"type":"string"},"EmailAddress":{"type":"string","format":"email"},"Title":{"type":"string","nullable":true},"ProfileImage":{"type":"string","format":"uri-reference"},"WorkPhoneNumberCountry":{"type":"string"},"WorkPhoneNumber":{"type":"string"},"CellphoneNumberCountry":{"type":"string"},"CellphoneNumber":{"type":"string"},"Editable":{"type":"boolean","description":"Indicates if the contact is user-created and fully editable (`true`) or system-created and partially editable (`false`)."},"Labels":{"type":"array","items":{"type":"string"}},"Accounts":{"type":"array","items":{"type":"object","properties":{"Id":{"type":"string"},"Name":{"type":"string"}}}},"Uri":{"type":"string","format":"uri-reference"}}}}},"paths":{"/Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contacts":{"get":{"summary":"List All Contacts","description":"Returns a list of your contacts for a specific campaign, with optional filtering.","operationId":"listContacts","tags":["Contacts"],"parameters":[{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"}},{"name":"CampaignId","in":"path","required":true,"schema":{"type":"integer"}},{"name":"AccountId","in":"query","description":"Filter by a contact's partner account ID.","schema":{"type":"string"}},{"name":"Title","in":"query","description":"Filter by a contact's title (must be URL-encoded).","schema":{"type":"string"}}],"responses":{"200":{"description":"A paginated list of contact objects.","content":{"application/json":{"schema":{"type":"object","properties":{"Contacts":{"type":"array","items":{"$ref":"#/components/schemas/Contact"}}}}}}}}}}}}
```

## Create a Contact

> Creates a new contact associated with one or more partner accounts. Use \`multipart/form-data\` for profile image uploads.

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Contacts","version":"v14"},"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"schemas":{"ContactCreate":{"type":"object","required":["FirstName","LastName","EmailAddress","Accounts"],"properties":{"FirstName":{"type":"string"},"LastName":{"type":"string"},"EmailAddress":{"type":"string","format":"email"},"Accounts":{"type":"string","description":"A comma-separated string of partner account IDs."},"Title":{"type":"string"},"ProfileImageUrl":{"type":"string","format":"uri","description":"URL of an image file. Cannot be used with `ProfileImageFile`."},"ProfileImageFile":{"type":"string","format":"binary","description":"An image file to upload. Use `multipart/form-data`."},"WorkPhoneNumber":{"type":"string","description":"Requires `WorkPhoneNumberCountry`."},"WorkPhoneNumberCountry":{"type":"string"},"CellphoneNumber":{"type":"string","description":"Requires `CellphoneNumberCountry`."},"CellphoneNumberCountry":{"type":"string"},"Labels":{"type":"string","description":"A comma-separated string of labels."}}},"SuccessUriResponse":{"type":"object","properties":{"Status":{"type":"string"},"Uri":{"type":"string","format":"uri-reference"}}}}},"paths":{"/Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contacts":{"post":{"summary":"Create a Contact","description":"Creates a new contact associated with one or more partner accounts. Use `multipart/form-data` for profile image uploads.","operationId":"createContact","tags":["Contacts"],"parameters":[{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"}},{"name":"CampaignId","in":"path","required":true,"schema":{"type":"integer"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/ContactCreate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ContactCreate"}}}},"responses":{"200":{"description":"The contact was created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessUriResponse"}}}}}}}}}
```

## Get Contact Details

> Retrieves the details of an existing contact by their unique impact.com Contact ID.

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Contacts","version":"v14"},"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"schemas":{"Contact":{"type":"object","properties":{"Id":{"type":"string","description":"Unique Contact ID. System-created contacts are prefixed with 'M'."},"FirstName":{"type":"string"},"LastName":{"type":"string"},"EmailAddress":{"type":"string","format":"email"},"Title":{"type":"string","nullable":true},"ProfileImage":{"type":"string","format":"uri-reference"},"WorkPhoneNumberCountry":{"type":"string"},"WorkPhoneNumber":{"type":"string"},"CellphoneNumberCountry":{"type":"string"},"CellphoneNumber":{"type":"string"},"Editable":{"type":"boolean","description":"Indicates if the contact is user-created and fully editable (`true`) or system-created and partially editable (`false`)."},"Labels":{"type":"array","items":{"type":"string"}},"Accounts":{"type":"array","items":{"type":"object","properties":{"Id":{"type":"string"},"Name":{"type":"string"}}}},"Uri":{"type":"string","format":"uri-reference"}}}}},"paths":{"/Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contacts/{ContactId}":{"get":{"summary":"Get Contact Details","description":"Retrieves the details of an existing contact by their unique impact.com Contact ID.","operationId":"getContactById","tags":["Contacts"],"parameters":[{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"}},{"name":"CampaignId","in":"path","required":true,"schema":{"type":"integer"}},{"name":"ContactId","in":"path","required":true,"description":"The unique identifier for the contact (e.g., '2750' or 'M1369520').","schema":{"type":"string"}}],"responses":{"200":{"description":"A single contact object.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Contact"}}}}}}}}}
```

## Update a Contact

> Updates the specified contact.\
> \- \*\*User-created contacts\*\* (\`"Editable": "true"\`) can have any parameter updated.\
> \- \*\*System-created contacts\*\* (\`"Editable": "false"\`) can only have \`Title\` and \`Labels\` updated.

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Contacts","version":"v14"},"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}},"schemas":{"ContactUpdate":{"type":"object","properties":{"FirstName":{"type":"string"},"LastName":{"type":"string"},"EmailAddress":{"type":"string","format":"email"},"Title":{"type":"string"},"ProfileImageUrl":{"type":"string","format":"uri"},"ProfileImageFile":{"type":"string","format":"binary"},"WorkPhoneNumber":{"type":"string","description":"The contact's work phone number. Requires `WorkPhoneNumberCountry` if updated."},"WorkPhoneNumberCountry":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code. Required when `WorkPhoneNumber` is updated."},"CellphoneNumber":{"type":"string","description":"The contact's cellphone number. Requires `CellphoneNumberCountry` if updated."},"CellphoneNumberCountry":{"type":"string","description":"Two-letter ISO 3166-1 alpha-2 country code. Required when `CellphoneNumber` is updated."},"LabelsAdd":{"type":"string","description":"A comma-separated string of labels to add."},"LabelsRemove":{"type":"string","description":"A comma-separated string of labels to remove."},"AccountsAdd":{"type":"string","description":"A comma-separated string of partner account IDs to add."},"AccountsRemove":{"type":"string","description":"A comma-separated string of partner account IDs to remove."}}},"SuccessUriResponse":{"type":"object","properties":{"Status":{"type":"string"},"Uri":{"type":"string","format":"uri-reference"}}}}},"paths":{"/Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contacts/{ContactId}":{"put":{"summary":"Update a Contact","description":"Updates the specified contact.\n- **User-created contacts** (`\"Editable\": \"true\"`) can have any parameter updated.\n- **System-created contacts** (`\"Editable\": \"false\"`) can only have `Title` and `Labels` updated.","operationId":"updateContact","tags":["Contacts"],"parameters":[{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"}},{"name":"CampaignId","in":"path","required":true,"schema":{"type":"integer"}},{"name":"ContactId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/ContactUpdate"}},"multipart/form-data":{"schema":{"$ref":"#/components/schemas/ContactUpdate"}}}},"responses":{"200":{"description":"The contact was updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessUriResponse"}}}}}}}}}
```

## Delete a Contact

> Permanently deletes a user-created contact. This cannot be undone.

```json
{"openapi":"3.1.0","info":{"title":"Brand API - Contacts","version":"v14"},"servers":[{"url":"https://api.impact.com"}],"security":[{"basicAuth":[]}],"components":{"securitySchemes":{"basicAuth":{"type":"http","scheme":"basic","description":"Use your AccountSID as the username and AuthToken as the password."}}},"paths":{"/Advertisers/{AccountSID}/Campaigns/{CampaignId}/Contacts/{ContactId}":{"delete":{"summary":"Delete a Contact","description":"Permanently deletes a user-created contact. This cannot be undone.","operationId":"deleteContact","tags":["Contacts"],"parameters":[{"name":"AccountSID","in":"path","required":true,"schema":{"type":"string"}},{"name":"CampaignId","in":"path","required":true,"schema":{"type":"integer"}},{"name":"ContactId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The contact was deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"Status":{"type":"string"}}}}}}}}}}}
```


---

# 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://integrations.impact.com/brand-api-reference/reference/contacts/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.
