Blocklist

Addresses and domains that must never be emailed, for one workspace or for the whole account.

List blocklist entries

get https://api.emailchaser.com/r/blocklist
Works with a read-only key

Returns the suppression entries (blocked domains and email addresses) that apply to the calling key's workspace, newest first. By default that is both lists: the workspace's own entries and the account-wide ones inherited from the main workspace. Narrow with scope=workspace or scope=global. Each item reports which list it came from.

  • scope string in query

    Which list to return: workspace, global, or all (default all)

    One of: "workspace", "global", "all"
  • search string in query

    Case-insensitive substring match on the domain or email address

  • limit integer in query

    Page size (default 100, max 1000)

  • offset integer in query

    Offset (default 0)

Fields in the 200 response
  • items array of BlocklistEntry
    6 fields inside items
    • createdAt string
    • domain string
      Example: competitor.com
    • emailAddress string

      EmailAddress is the blocked address when the entry blocks one address rather than a whole domain.

      Example: jane@acme.com
    • id integer
      Example: 17
    • scope string

      Scope is "workspace" for the calling workspace's own entry, "global" for an account-wide one.

      One of: "workspace", "global". Example: workspace
    • workspaceId integer

      WorkspaceId is the workspace the entry is stored on. For a global entry read from a sub-workspace this is the main workspace, not the caller.

      Example: 12
  • totalCount integer
    Example: 214

Request

curl -X GET "https://api.emailchaser.com/r/blocklist" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY"

Response

{
  "items": [
    {
      "createdAt": "string",
      "domain": "competitor.com",
      "emailAddress": "jane@acme.com",
      "id": 17,
      "scope": "workspace",
      "workspaceId": 12
    }
  ],
  "totalCount": 214
}

Add blocklist entries

post https://api.emailchaser.com/r/blocklist

Adds up to 1000 suppression entries in one call. Each value is either a full email address (contains "@") or a bare domain. Existing entries and invalid values are skipped, so the call is safe to retry and suited to carrying over a suppression list from another sending platform. scope defaults to "workspace", which suppresses for the calling key's workspace only; "global" suppresses across every workspace on the account and requires a main workspace's key.

  • scope string

    Scope is "workspace" (default) or "global". A global entry suppresses across every workspace on the account and can only be written with a main workspace's API key.

    One of: "workspace", "global". Example: workspace
  • values array of string required

    Values holds the email addresses and/or domains to block, up to 1000 per request.

    Example: ["competitor.com","jane@acme.com"]
Fields in the 200 response
  • created integer

    Created is the number of new suppression entries written.

    Example: 42
  • scope string

    Scope is the list the entries were written to.

    One of: "workspace", "global". Example: workspace
  • skipped integer

    Skipped is the number of values ignored because they already existed or failed validation.

    Example: 3

Request

curl -X POST "https://api.emailchaser.com/r/blocklist" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "scope": "workspace",
  "values": [
    "competitor.com",
    "jane@acme.com"
  ]
}'

Response

{
  "created": 42,
  "scope": "workspace",
  "skipped": 3
}

Delete blocklist entries

delete https://api.emailchaser.com/r/blocklist

Removes up to 1000 entries in one call, by id or by value. Values are matched case-insensitively against both the domain and the email-address column, so unblocking "acme.com" removes the domain entry, not the individual addresses on it. scope limits the delete to one list and defaults to "workspace"; "all" covers both, and anything touching the account-wide list requires a main workspace's key. Entries that match nothing the caller may delete are counted as skipped rather than failing the call.

  • ids array of integer

    Ids are entry ids as returned by GET /blocklist.

  • scope string

    Scope limits the delete to one list: "workspace" (default), "global", or "all". Deleting from "global" requires a main workspace's key.

    One of: "workspace", "global", "all". Example: workspace
  • values array of string

    Values are domains or email addresses to unblock, matched case-insensitively. Values not present are counted as skipped.

    Example: ["competitor.com","jane@acme.com"]
Fields in the 200 response
  • deleted integer

    Deleted is the number of entries removed.

    Example: 12
  • skipped integer

    Skipped is the number of requested values or ids that matched nothing the caller may delete.

    Example: 1

Request

curl -X DELETE "https://api.emailchaser.com/r/blocklist" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "ids": [
    123
  ],
  "scope": "workspace",
  "values": [
    "competitor.com",
    "jane@acme.com"
  ]
}'

Response

{
  "deleted": 12,
  "skipped": 1
}

Get a blocklist entry

get https://api.emailchaser.com/r/blocklist/{id}
Works with a read-only key

Returns one suppression entry by id. Entries inherited from the account-wide list are visible here too, and report scope "global".

  • id integer required in path

    Blocklist entry ID

Fields in the 200 response
  • createdAt string
  • domain string
    Example: competitor.com
  • emailAddress string

    EmailAddress is the blocked address when the entry blocks one address rather than a whole domain.

    Example: jane@acme.com
  • id integer
    Example: 17
  • scope string

    Scope is "workspace" for the calling workspace's own entry, "global" for an account-wide one.

    One of: "workspace", "global". Example: workspace
  • workspaceId integer

    WorkspaceId is the workspace the entry is stored on. For a global entry read from a sub-workspace this is the main workspace, not the caller.

    Example: 12

Request

curl -X GET "https://api.emailchaser.com/r/blocklist/123" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY"

Response

{
  "createdAt": "string",
  "domain": "competitor.com",
  "emailAddress": "jane@acme.com",
  "id": 17,
  "scope": "workspace",
  "workspaceId": 12
}

Update a blocklist entry

put https://api.emailchaser.com/r/blocklist/{id}

Changes the blocked value, the scope, or both. A value containing "@" is stored as an email address, otherwise as a domain, so an entry can be converted between the two. Moving an entry to or from the account-wide list requires a main workspace's key, and moves the entry onto the main workspace.

  • id integer required in path

    Blocklist entry ID

  • scope string

    Scope moves the entry between the workspace list and the account-wide list. Moving an entry to "global" requires a main workspace's key.

    One of: "workspace", "global". Example: global
  • value string

    Value is the new domain or email address. Which of the two the entry holds is re-inferred from whether the value contains "@", so an entry can be converted between a domain block and an address block.

    Example: competitor.com
Fields in the 200 response
  • createdAt string
  • domain string
    Example: competitor.com
  • emailAddress string

    EmailAddress is the blocked address when the entry blocks one address rather than a whole domain.

    Example: jane@acme.com
  • id integer
    Example: 17
  • scope string

    Scope is "workspace" for the calling workspace's own entry, "global" for an account-wide one.

    One of: "workspace", "global". Example: workspace
  • workspaceId integer

    WorkspaceId is the workspace the entry is stored on. For a global entry read from a sub-workspace this is the main workspace, not the caller.

    Example: 12

Request

curl -X PUT "https://api.emailchaser.com/r/blocklist/123" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "scope": "global",
  "value": "competitor.com"
}'

Response

{
  "createdAt": "string",
  "domain": "competitor.com",
  "emailAddress": "jane@acme.com",
  "id": 17,
  "scope": "workspace",
  "workspaceId": 12
}

Delete a blocklist entry

delete https://api.emailchaser.com/r/blocklist/{id}

Removes one suppression entry, unblocking the domain or address. A sub-workspace key cannot delete an account-wide entry it merely inherits.

  • id integer required in path

    Blocklist entry ID

Fields in the 200 response
  • id integer
    Example: 17
  • message string
    Example: blocklist entry deleted successfully

Request

curl -X DELETE "https://api.emailchaser.com/r/blocklist/123" \
  -H "Authorization: Bearer $EMAILCHASER_API_KEY"

Response

{
  "id": 17,
  "message": "blocklist entry deleted successfully"
}

Generated from the Emailchaser API's own OpenAPI definition, so it always matches the running API.