Stripe Projects
fossasia/eventyay
A skill your agent uses when the user wants to provision infrastructure or third-party services using Stripe Projects.
Manage email suppressions (blocks), import and export suppression lists, and manage unsubscribe groups.
$ npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install team-telnyx/ai telnyx-email-suppressions-curl --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/telnyx-email-suppressions-curl .claude/skills/telnyx-email-suppressions-curl && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "telnyx-email-suppressions-curl" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curl into .claude/skills/telnyx-email-suppressions-curl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-email-suppressions-curl", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curlType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install team-telnyx/ai telnyx-email-suppressions-curl --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/telnyx-email-suppressions-curl .agents/skills/telnyx-email-suppressions-curl && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "telnyx-email-suppressions-curl" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curl into .agents/skills/telnyx-email-suppressions-curl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-email-suppressions-curl", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install team-telnyx/ai telnyx-email-suppressions-curl --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/telnyx-email-suppressions-curl .cursor/skills/telnyx-email-suppressions-curl && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "telnyx-email-suppressions-curl" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curl into .cursor/skills/telnyx-email-suppressions-curl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-email-suppressions-curl", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/team-telnyx/ai.git --path skills/telnyx-email-suppressions-curl--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install team-telnyx/ai telnyx-email-suppressions-curl --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/telnyx-email-suppressions-curl .gemini/skills/telnyx-email-suppressions-curl && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "telnyx-email-suppressions-curl" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curl into .gemini/skills/telnyx-email-suppressions-curl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-email-suppressions-curl", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install team-telnyx/ai telnyx-email-suppressions-curlInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/telnyx-email-suppressions-curl .github/skills/telnyx-email-suppressions-curl && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "telnyx-email-suppressions-curl" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curl into .github/skills/telnyx-email-suppressions-curl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-email-suppressions-curl", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install team-telnyx/ai telnyx-email-suppressions-curl --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/telnyx-email-suppressions-curl .opencode/skills/telnyx-email-suppressions-curl && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "telnyx-email-suppressions-curl" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-email-suppressions-curl into .opencode/skills/telnyx-email-suppressions-curl/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-email-suppressions-curl", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
telnyx-email-suppressions-curlManage email suppressions (blocks), import and export suppression lists, and manage unsubscribe groups.
Telnyx Email Suppressions Curl is an agent skill from team-telnyx/ai. Manage email suppressions (blocks), import and export suppression lists, and manage unsubscribe groups. Use for deliverability compliance and bounce handling.
Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/api-details.md`).
It sits in Backend & APIs, covering Transactional email. The repository describes itself as: Official one-stop shop for AI Agents and developers building with Telnyx. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 4d2ace0. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
curljqFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.telnyx.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TELNYX_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Telnyx Email Suppressions Curl loads about 5k tokens when it runs, and up to ~9.7k if it reads all its reference files. Until then it costs about 47 tokens; SKILL.md has 1,629 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
# Debian/Ubuntu: sudo apt-get install jqAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from team-telnyx/ai at commit 4d2ace0, republished under its MIT licence (© team-telnyx). 1,629 words, ~4,972 tokens.
.claude/skills/telnyx-email-suppressions-curl/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
# curl is pre-installed on macOS, Linux, and Windows 10+
# jq is required for the import polling examples below:
# macOS: brew install jq
# Debian/Ubuntu: sudo apt-get install jqexport TELNYX_API_KEY="YOUR_API_KEY_HERE"All examples below use $TELNYX_API_KEY for authentication and the API base URL
https://api.telnyx.com/v2.
All API calls can fail with network errors, authentication errors (401), or
framework errors (406). List-query validation failures return 400, resource
lookups can return 404, and JSON body validation failures normally return 422.
Inspect the HTTP status and the top-level .errors array before continuing:
response_file=$(mktemp)
status=$(curl --silent --show-error \
--output "$response_file" \
--write-out '%{http_code}' \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_blocks")
if [ "$status" -lt 200 ] || [ "$status" -ge 300 ]; then
printf 'Telnyx API error (HTTP %s):\n' "$status" >&2
jq . "$response_file" >&2
rm -f "$response_file"
exit 1
fi
jq . "$response_file"
rm -f "$response_file"Common statuses are 400 malformed query or import, 401 invalid API key,
404 resource not found, 409 group still has active suppressions, 413
import too large, and 422 invalid request attributes. A successful delete may
return 204 No Content; do not attempt to parse that response as JSON.
from address on a manual block is also normalized.page[number] and page[size] (maximum 100). The main block list also supports opaque cursors. Do not combine offset and cursor modes.alice%40example.com, not an untrusted raw string.POST /v2/email_blocks always creates reason: manual_block with source: manual. Customers cannot use this endpoint to create hard_bounce, spam_complaint, or invalid suppressions; caller-supplied reason and source are ignored.account, domain, or address, never customer-set: no domain_id and no from gives account; domain_id without from gives domain; a from address gives address scope.unsubscribe and manual_block are overridable at send time with ignore_suppression: true. hard_bounce, spam_complaint, and invalid are not overridable. Bypassing an overridable suppression should be deliberate and auditable.POST /v2/email_blocks/import returns 202 and a job ID; poll GET /v2/email_blocks/import/{id} until completed or failed. Import behavior for scoped suppressions may vary. Check the import result for the actual scope assigned.status: removed. Recreating the same removed suppression reactivates it.expires_at field is available for setting an expiration timestamp on suppressions.error_count and skipped_count in the import response for rejected entries.Do not invent Telnyx parameters, enums, response fields, import counters, or CSV columns.
Use offset pagination for page-oriented tools or cursor pagination for sequential traversal without page-number offsets.
GET /v2/email_blocks
| Parameter | Type | Required | Description |
|---|---|---|---|
page[number] | integer | No | Offset page, default 1. Do not combine with a cursor. |
page[size] | integer | No | 1-100, default 25. |
page[after] | string | No | Opaque next-page cursor. Exclusive with page[number] and page[before]. |
page[before] | string | No | Opaque previous-page cursor. Exclusive with page[number] and page[after]. |
sort | enum | No | created_at or -created_at (default). |
filter[reason] | enum | No | Exact reason match. |
filter[domain_id] | UUID | No | Exact domain ID match. |
filter[created_after] | date-time | No | Match created_at > value. |
filter[created_before] | date-time | No | Match created_at < value. |
curl --get --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
--data-urlencode 'page[size]=100' \
--data-urlencode 'filter[reason]=hard_bounce' \
--data-urlencode 'sort=-created_at' \
"https://api.telnyx.com/v2/email_blocks"Offset responses expose .meta.total_pages; cursor responses expose
.meta.has_next and, when another page exists, .meta.next_cursor. Pass the
returned cursor unchanged.
POST /v2/email_blocks
| Parameter | Type | Required | Description |
|---|---|---|---|
to | string | Yes | Recipient address; trimmed and lower-cased by the server. |
domain_id | UUID or null | No | Domain context; omit/null for account scope. |
from | string or null | No | Sender context; a value produces address scope. |
expires_at | date-time or null | No | Expiration timestamp for the suppression. |
curl --silent --show-error \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "blocked@example.com"
}' \
"https://api.telnyx.com/v2/email_blocks"The response is .data with forced reason: manual_block, source: manual,
a server-derived scope, and status: active. Do not send scope, group_id,
bounce_category, dsn_code, or meta to this public operation.
GET /v2/email_blocks/export
curl --get --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Accept: text/csv" \
--data-urlencode 'filter[created_after]=2026-01-01T00:00:00Z' \
--output email_blocks_export.csv \
"https://api.telnyx.com/v2/email_blocks/export"The 200 response is the CSV stream itself. Filters supported by the list
endpoint affect export. Although sort and page[*] are parsed and invalid
values can return 400, valid values are ignored; export always streams every
matching row ordered by created_at ASC, id ASC.
POST /v2/email_blocks/import
curl --silent --show-error \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Accept: application/json" \
-F 'file=@email_blocks.csv;type=text/csv' \
-F 'block_ttl_days=30' \
"https://api.telnyx.com/v2/email_blocks/import"A valid request returns 202 with .data.id and .data.status equal to
pending. CSV content may not exceed 25 MiB or 250,000 rows. Provider format is
auto-detected as sendgrid, mailgun, ses, or generic.
block_ttl_days applies only to imported manual_block rows.
GET /v2/email_blocks/import/{id}
IMPORT_ID="00000000-0000-0000-0000-000000000000"
while :; do
body=$(curl --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_blocks/import/$IMPORT_ID") || exit 1
state=$(printf '%s' "$body" | jq -r '.data.status')
printf 'import status: %s\n' "$state"
case "$state" in
completed)
printf '%s' "$body" | jq '.data | {
processed_rows, created_count, existing_count,
skipped_count, error_count, errors
}'
break
;;
failed)
printf '%s' "$body" | jq '.data | {status, failure_reason}' >&2
exit 1
;;
pending|processing) sleep 2 ;;
*) printf 'unexpected import status: %s\n' "$state" >&2; exit 1 ;;
esac
doneCompletion counters are omitted until status is completed; failure_reason
is only present on failure. Check both error_count and skipped_count in the
import response for rejected entries, and inspect errors when present.
GET /v2/email_blocks/{id}
BLOCK_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_blocks/$BLOCK_ID"Primary response fields are .data.id, .data.to, .data.from,
.data.domain_id, .data.group_id, .data.reason, .data.source,
.data.scope, .data.status, .data.expires_at, .data.created_at, and
.data.updated_at.
DELETE /v2/email_blocks/{id}
BLOCK_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-X DELETE \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_blocks/$BLOCK_ID"This returns 200 with the tombstone in .data; verify
.data.status == "removed". Repeating the delete is idempotent and does not
append another audit event.
GET /v2/email_blocks/{id}/events
BLOCK_ID="00000000-0000-0000-0000-000000000000"
curl --get --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
--data-urlencode 'page[number]=1' \
--data-urlencode 'page[size]=50' \
"https://api.telnyx.com/v2/email_blocks/$BLOCK_ID/events"Events are newest first and can be created, removed, expired, or
override_used. This endpoint has offset pagination only and a default page
size of 50; it has no filters, sort, or cursor parameters.
GET /v2/email_unsubscribe_groups
curl --get --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
--data-urlencode 'page[number]=1' \
--data-urlencode 'page[size]=25' \
"https://api.telnyx.com/v2/email_unsubscribe_groups"Groups use offset pagination only and fixed newest-first ordering.
POST /v2/email_unsubscribe_groups
curl --silent --show-error \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Product announcements",
"description": "Optional opt-out category for product email"
}' \
"https://api.telnyx.com/v2/email_unsubscribe_groups"name is required, non-empty, and at most 255 characters. A successful create
returns 201 and the group in .data.
GET /v2/email_unsubscribe_groups/{id}
GROUP_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID"Only name and description are mutable. This is a partial update; PUT is
not routed.
PATCH /v2/email_unsubscribe_groups/{id}
GROUP_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-X PATCH \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"description": "Announcements and release notes"
}' \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID"DELETE /v2/email_unsubscribe_groups/{id}
GROUP_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-X DELETE \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID"A successful delete returns 204. If active group suppressions remain, the request returns 409. Either remove them first or deliberately force the delete:
curl --get --silent --show-error \
-X DELETE \
-H "Authorization: Bearer $TELNYX_API_KEY" \
--data-urlencode 'force=true' \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID"force=true soft-deletes active group suppressions, clears their group links,
appends removal events, and then hard-deletes the group in one transaction.
GET /v2/email_unsubscribe_groups/{id}/suppressions
GROUP_ID="00000000-0000-0000-0000-000000000000"
curl --get --silent --show-error \
-H "Authorization: Bearer $TELNYX_API_KEY" \
--data-urlencode 'page[number]=1' \
--data-urlencode 'page[size]=100' \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID/suppressions"Rows use the standard email-block shape with .group_id set to this group.
This list supports offset pagination only; no filters, sort, or cursor.
POST /v2/email_unsubscribe_groups/{id}/suppressions
GROUP_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "subscriber@example.com"
}' \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID/suppressions"Only to is read. The server forces reason: unsubscribe, source: manual,
and this group's group_id. A duplicate is idempotent and returns 200.
DELETE /v2/email_unsubscribe_groups/{id}/suppressions/{email}
GROUP_ID="00000000-0000-0000-0000-000000000000"
# The email path segment is percent-encoded.
EMAIL_PATH="subscriber%40example.com"
curl --silent --show-error \
-X DELETE \
-H "Authorization: Bearer $TELNYX_API_KEY" \
"https://api.telnyx.com/v2/email_unsubscribe_groups/$GROUP_ID/suppressions/$EMAIL_PATH"A successful removal returns 204 and soft-deletes every active matching row for the normalized address in that group. A repeat returns 404 because no active matching group suppression remains.
Email webhooks are configured at the domain level, not on an individual
suppression. Create a subscription with POST /email_domains/{id}/webhooks
using the https://api.telnyx.com/v2 base URL. The suppression-related event
names in the current OpenAPI EmailWebhookEvent enum are:
| Event | Use in a suppression workflow |
|---|---|
email.bounced | Process a bounced-delivery outcome. |
email.failed | Process a terminal delivery failure. |
email.complained | Process a recipient complaint. |
email.unsubscribed | Process a recipient unsubscribe action. |
DOMAIN_ID="00000000-0000-0000-0000-000000000000"
curl --silent --show-error \
-X POST \
-H "Authorization: Bearer $TELNYX_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://example.com/webhooks/email",
"events": ["email.bounced", "email.failed", "email.complained", "email.unsubscribed"]
}' \
"https://api.telnyx.com/v2/email_domains/$DOMAIN_ID/webhooks"Telnyx signs webhook requests with Ed25519. Read the
telnyx-signature-ed25519 and telnyx-timestamp headers, and retain the exact
raw request body bytes. Do not parse or re-serialize the JSON before
verification.
telnyx-timestamp + "|" + raw_body with
the Telnyx public key. Ed25519 verification is not HMAC validation.2xx response within 10 seconds.Use the core tasks above first. All 16 reachable suppression and unsubscribe group operations are indexed here with their exact HTTP endpoints. Use references/api-details.md for full optional parameters, response schemas, status codes, and operation IDs.
| Operation | SDK method | Endpoint | Use when | Required params |
|---|---|---|---|---|
| List suppressions | HTTP only | GET /email_blocks | Inspect suppressions or select a block before another action. | None |
| Create a manual suppression | HTTP only | POST /email_blocks | Add a manual recipient suppression. | to |
| Export suppressions as CSV | HTTP only | GET /email_blocks/export | Download matching suppressions as CSV. | None |
| Start a CSV import | HTTP only | POST /email_blocks/import | Upload suppressions for asynchronous import. | file |
| Poll an import job | HTTP only | GET /email_blocks/import/{id} | Check whether an asynchronous import completed or failed. | id |
| Retrieve a suppression | HTTP only | GET /email_blocks/{id} | Fetch one suppression by ID. | id |
| Soft-delete a suppression | HTTP only | DELETE /email_blocks/{id} | Remove an existing suppression. | id |
| List suppression audit events | HTTP only | GET /email_blocks/{id}/events | Inspect the history of one suppression. | id |
| List unsubscribe groups | HTTP only | GET /email_unsubscribe_groups | Inspect available unsubscribe groups. | None |
| Create an unsubscribe group | HTTP only | POST /email_unsubscribe_groups | Create a campaign-level unsubscribe category. | name |
| Retrieve an unsubscribe group | HTTP only | GET /email_unsubscribe_groups/{id} | Fetch one unsubscribe group by ID. | id |
| Update an unsubscribe group | HTTP only | PATCH /email_unsubscribe_groups/{id} | Change a group's name or description. | id |
| Delete an unsubscribe group | HTTP only | DELETE /email_unsubscribe_groups/{id} | Remove an unsubscribe group. | id |
| List group suppressions | HTTP only | GET /email_unsubscribe_groups/{id}/suppressions | Inspect recipients suppressed in one group. | id |
| Add a group suppression | HTTP only | POST /email_unsubscribe_groups/{id}/suppressions | Suppress a recipient in one unsubscribe group. | id, to |
| Remove a group suppression | HTTP only | DELETE /email_unsubscribe_groups/{id}/suppressions/{email} | Remove a recipient suppression from one group. | id, email |
For exhaustive parameter behavior, CSV columns and limitations, response schemas, status codes, and operation IDs, see references/api-details.md.
© team-telnyx, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (references) in skills/telnyx-email-suppressions-curl of team-telnyx/ai.
Open the folder on GitHubat commit 4d2ace0
Telnyx Email Suppressions Curl next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Telnyx Email Suppressions Curl this skillteam-telnyx/ai | 220 | — | ~5k | Automated safety check: Notes | MIT | |
| Stripe Projectsfossasia/eventyay | 1.7k | 5 repos | ~2k | Automated safety check: Notes | Apache-2.0 | |
| WooCommerce Email Editor Developmentwoocommerce/woocommerce | 11k | — | ~893 | Automated safety check: Pass | Custom licence | |
| Email Best Practicesviclafouch/meme-studio | 110 | 7 repos | ~787 | Automated safety check: Pass | None | |
| React Emailviclafouch/meme-studio | 110 | 2 repos | ~3.6k | Automated safety check: Pass | MIT | |
| Pinme Emailglitternetwork/pinme | 3.8k | — | ~1.2k | Automated safety check: Pass | MIT |
fossasia/eventyay
A skill your agent uses when the user wants to provision infrastructure or third-party services using Stripe Projects.
woocommerce/woocommerce
Sets up a local environment for the WooCommerce block email editor, with a watcher, Mailpit email capture and build and test commands for its PHP and JS packages.
viclafouch/meme-studio
A skill your agent uses when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/DMARC authentication, implementing email capture, ensuring compliance (CAN-SPAM…
viclafouch/meme-studio
A skill your agent uses when creating HTML email templates with React components - welcome emails, password resets, notifications, order confirmations, newsletters, or transactional emails.
glitternetwork/pinme
A skill your agent uses when a PinMe project (Worker TypeScript) needs to integrate email sending (sendemail).
growthenginenowoslawski/coldoutboundskills
Diagnostic audit for a running cold email program. An agent skill from growthenginenowoslawski/coldoutboundskills.
team-telnyx/ai
Test VoIP push notifications for Telnyx WebRTC iOS (APNs) and Android (FCM) apps.
team-telnyx/ai
Send and receive SMS/MMS, handle opt-outs and delivery webhooks.
team-telnyx/ai
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK.
team-telnyx/ai
End-to-end setup for making a Telnyx AI assistant call a phone number.
team-telnyx/ai
Send transactional email, batch sends, scheduled delivery, templates, email validation, and track delivery events.
team-telnyx/ai
Manage email inboxes, list and search inbound messages, threads, sender filters, and reply to or forward messages.
Categories
Manage email suppressions (blocks), import and export suppression lists, and manage unsubscribe groups. Telnyx Email Suppressions Curl is an agent skill from team-telnyx/ai. Manage email suppressions (blocks), import and export suppression lists, and manage unsubscribe groups.
Telnyx Email Suppressions Curl fits situations like: deliverability compliance and bounce handling; tasks that involve Transactional email.
Run `npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a claude-code`. Or copy the skill folder (skills/telnyx-email-suppressions-curl in team-telnyx/ai) into .claude/skills/telnyx-email-suppressions-curl in your project. Claude Code loads it when a task matches its description.
Run `npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a codex`. Or copy the skill folder (skills/telnyx-email-suppressions-curl in team-telnyx/ai) into .agents/skills/telnyx-email-suppressions-curl in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add team-telnyx/ai --skill telnyx-email-suppressions-curl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/telnyx-email-suppressions-curl, .gemini/skills/telnyx-email-suppressions-curl, .github/skills/telnyx-email-suppressions-curl and .opencode/skills/telnyx-email-suppressions-curl in your project.
Going by SKILL.md and its folder, Telnyx Email Suppressions Curl needs the command-line tools its instructions call (curl and jq) and credentials named TELNYX_API_KEY. Our summary lists: A credential in TELNYX_API_KEY.
SKILL.md names 1 domain. In commands or code: api.telnyx.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Telnyx Email Suppressions Curl is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5k tokens (SKILL.md is roughly 20k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Telnyx Email Suppressions Curl: Stripe Projects (fossasia/eventyay, 1.7k stars), WooCommerce Email Editor Development (woocommerce/woocommerce, 11k stars), Email Best Practices (viclafouch/meme-studio, 110 stars) and React Email (viclafouch/meme-studio, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
team-telnyx (a GitHub organization) maintains it in team-telnyx/ai, which has 220 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on October 8, 2026.
Source: team-telnyx/ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.