Sign inGet started

List SMTP configs

GET
/v1/email/smtp/configs
curl -X GET "https://us1.platform.bird.com/v1/email/smtp/configs" \
  -H "Authorization: Bearer $TOKEN" \
  --url-query "sort=created_at" \
  --url-query "order=desc" \
  --url-query "limit=25" \
  --url-query "include_total=false"
Response200
{
  "data": [
    {
      "api_key_id": "key_01krdgeqcxet5s7t44vh8rt9mg",
      "category": "marketing",
      "tags": [
        {
          "name": "category",
          "value": "welcome"
        }
      ],
      "created_at": "2026-05-20T09:14:52Z",
      "updated_at": "2026-05-25T16:42:01Z"
    }
  ],
  "next_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE0OjAzOjEwWlwiIiwiaSI6IjAxOTJmM2IxLTRjN2UtN2EyYi05ZDYxLThmM2E1YzJlN2I0MCJ9",
  "prev_cursor": null,
  "refresh_cursor": "eyJ2IjoxLCJzIjoiXCIyMDI2LTA1LTI1VDE2OjQyOjAxWlwiIiwiaSI6IjAxOTJmM2IxLTllMDQtN2NkMy1iODE3LTJhNmY0ZDFjOGUwOSJ9"
}
Returns the SMTP send-option configs stored for API keys in this workspace, as a cursor page. Only keys with an explicitly stored config are included. A key with no config still accepts SMTP submissions, using your organization's default pool, the transactional category, and tracking on.
Query Parameters
sort
string
Sort by created_at, the default and only supported field.
Possible values: created_at
order
string
Sort direction. Defaults to desc, which sorts from newest to oldest or largest to smallest, depending on the selected sort field.
Possible values: asc, desc
limit
integer
Maximum number of items to return per page.
starting_after
string
Cursor from the next_cursor field of a previous list response. Returns items immediately after the cursor position in the current sort order.
ending_before
string
Cursor from the prev_cursor or refresh_cursor field of a previous list response. Returns items immediately before the cursor position in the current sort order. prev_cursor returns the preceding page. refresh_cursor anchors at the first row of that response, which on a newest-first sort is how to fetch the items that have appeared since.
include_total
boolean
When true, the response includes a total field with the total number of items matching the request's filters across all pages.
Response Payload
data
array of object
required
Page of stored SMTP configs, newest first by default.
Show child attributes
data.api_key_id
string
required
ID of the API key this config applies to, the same key your SMTP client authenticates with. One config exists per key.
data.ip_pool_id
nullable string
ID of the IP pool that SMTP sends with this key use, or ipp_shared for the shared pool. null when this key uses your organization's default pool.
data.category
string
required
Content classification applied to messages submitted over SMTP with this key. Controls suppression policy:
  • marketing: Blocks on all suppression reasons.
  • transactional: Allows delivery through complaint and unsubscribe suppressions.
Possible values: marketing, transactional
data.tags
array of object
required
Structured {name, value} labels applied to every message submitted over SMTP with this key, the same tags used by the email sending API. Use tags to filter and break down your email statistics.
Show child attributes
data.tags.name
string
required
Tag name. ASCII letters, digits, underscore, and hyphen only. Case-sensitive. Maximum 32 characters.
data.tags.value
string
required
Tag value. ASCII letters, digits, underscore, and hyphen only. Case-sensitive. Maximum 64 characters.
data.track_opens
boolean
required
Whether open events are tracked for messages submitted over SMTP with this key.
data.track_clicks
boolean
required
Whether click events are tracked for messages submitted over SMTP with this key.
data.created_at
string
required
data.updated_at
string
required
next_cursor
nullable string
required
Cursor for the next page. Pass back as starting_after to advance forward. null when no next page exists.
prev_cursor
nullable string
required
Cursor for the previous page. Pass back as ending_before to step backward. null when no previous page exists.
refresh_cursor
nullable string
required
Refresh anchor, the first row of this response. Pass back as ending_before to fetch what precedes it in the current sort order. On a newest-first sort those are the items that have appeared since; on any other sort they are the items that sort earlier, so refreshing such a list means re-fetching it instead. Non-null whenever data is non-empty; null only on an empty page. Distinct from prev_cursor.
total
nullable integer
Total number of items matching the request's filters across all pages. Present only when include_total=true was passed; otherwise null.