generated: '2026-08-13' method: generated source: openapi/act-on-rest-api-openapi.yml + openapi/act-on-custom-objects-service-openapi.yml api: Act-On REST API note: >- Act-On publishes no skills, no AGENTS.md and no agent-facing documentation of any kind — the developer portal index (llms.txt, 161 pages) contains none. These five skills are GENERATED by API Evangelist from Act-On's own published OpenAPI documents. Every operationId referenced in every skill was verified to exist in openapi/ before being written; nothing is invented. provider_published: false skill_count: 5 skills: - name: act-on-import-contacts file: skills/act-on-import-contacts.md surface: /ucl/v2 operations: 6 description: Bulk-import contacts through an import definition and poll the job. risk: medium — writes contact data; no idempotency key - name: act-on-send-email-campaign file: skills/act-on-send-email-campaign.md surface: /api/1 + /ete/v1 operations: 10 description: Create, verify and send a message, then read its report. risk: HIGH — irreversible, externally visible send with no dry run and no safe retry - name: act-on-build-segment file: skills/act-on-build-segment.md surface: /ucl/v2 operations: 12 description: Create a segment and manage Direct Select membership by id, email or external id. risk: medium — delete-segment has no undo - name: act-on-manage-consent file: skills/act-on-manage-consent.md surface: /api/1 operations: 9 description: Read and write subscription categories, opt-outs and suppression lists. risk: HIGH — writes consent state; opt-IN requires an explicit recorded human instruction - name: act-on-custom-data-ingest file: skills/act-on-custom-data-ingest.md surface: /custom-objects/v1 operations: 18 description: Define a Custom Data schema, ingest records, poll the job and query joined against Act-On Contacts. risk: medium — BETA, request-only access; destructive schema/dataset deletes cross_cutting_rules: - Cache the OAuth access_token. Act-On permits 5 authentication calls per hour. - Budget every flow against 5 requests/second and 30,000 requests/day. - '{accountId} is a REQUIRED path parameter on /ucl/v2 and /custom-objects/v1; the token does not imply it.' - No Idempotency-Key exists anywhere in Act-On's contract. Never blind-retry a POST that sends mail or creates a job. - No 429 is declared on any operation and no rate-limit headers are returned; count locally. - Five different error envelopes are in use depending on the surface — see errors/act-on-problem-types.yml. refs: conventions: conventions/act-on-conventions.yml errors: errors/act-on-problem-types.yml rate_limits: rate-limits/act-on-rate-limits.yml authentication: authentication/act-on-authentication.yml data_model: data-model/act-on-data-model.yml webhooks: asyncapi/act-on-webhooks.yml