Outreach

Suppress people

Store a list of people to suppress — the same lists the Suppress list page in the app shows, so a list pushed from your CRM sits next to the CSVs your team uploaded and behaves identically.

The suppress list is organization-wide: it applies to every outreach campaign, running or not. Every email is checked against it right before it goes out, so an address added here stops a sequence that is already mid-flight, not just future ones.

Matching is exact: a person by their email address (case-insensitive, but jane+crm@acme.com and jane@acme.com are two different entries), a company by its domain (the lead's company domain or the domain of its email address — acme.com does not cover eu.acme.com, list each domain you use).

One call = one list, exactly like uploading one CSV: a list name that is already taken gets a (2) suffix rather than merging, and lists are independent — the same person on two lists is suppressed until both are gone. Delete a list you no longer want.

Each person needs at least one identifier: an email, a LinkedIn URL, or a full name; a row left without a usable one (including a malformed address) comes back in skipped instead of failing the whole batch. Outreach stops on the email — the name and LinkedIn fields are stored but not actively used today; they are kept because a suppressed person is more than their email address, and the day outreach runs somewhere other than email (LinkedIn and the like) those are the fields that will match. To suppress everyone at a company use the companies endpoint.

post/public/api/v1/autogtm/suppress-list/people

Request

  • Base URL: https://api.explee.com (the document declares no server; this is the origin it was published from)
  • URL: https://api.explee.com/public/api/v1/autogtm/suppress-list/people
  • Auth: APIKeyHeader (a scheme the document does not define)

Request body

liststring

Name for this list, exactly like a CSV filename in the app. A name already in use gets a (2) suffix — the previous list stays until you delete it. No slashes: the name is a path segment on the read and delete endpoints.

Example request

{
  "people": [
    {
      "email": "jane@acme.com",
      "first_name": "Jane",
      "last_name": "Doe",
      "linkedin_url": "https://linkedin.com/in/janedoe",
      "company_domain": "acme.com"
    }
  ],
  "list": "crm-sync"
}

Response

Successful Response

liststring required

The list your entries landed in — your name, or it with a (2) suffix if it was taken.

addedinteger required

Entries stored.

skippedinteger required

Entries we could not use: people without any identifier, and values that are not a domain. Entries you already suppress are NOT skipped — lists are independent, so delete the older list if you no longer want it.

Changes

No recorded changes to this operation across all 1 revision of this API.