# Outreach Today Public API > LLM-ready API reference generated from live OpenAPI. ## Authentication - Use `Authorization: Bearer YOUR_API_KEY` on every request. - Compatibility option for static-header clients: `x-api-key: YOUR_API_KEY`. - Generate API key: https://app.outreach2day.com/login?returnTo=%2Fapi-keys ## Workspace Scoping - Most resource operations are workspace-scoped. - Use `workspaceId` query parameter where specified in endpoint metadata. ## Rate Limits - 10 requests per second - 300 requests per minute ## High-Signal Notes - Domain transfer supports both canonical and alias routes: - `POST /domains/transfer/checkout` canonical start-transfer endpoint - `POST /domains/transfer` compatibility alias (same behavior) - `GET /domains/transfer/status` canonical polling endpoint - `GET /domains/transfer` compatibility alias (same behavior) - Campaign reply webhooks: - Subscribe to `campaign.reply.classified.v1` with `replyIntents` filter for outcomes like `interested`, `bounce`, `ooo`, `negative`, `wrong_person`. - Subscribe to `campaign.reply.positive.v1` for positive-only intents. - Discover all available intents and event types via `GET /campaigns/webhooks/event-types`. ## Documentation Links - OpenAPI JSON: https://public.outreach2day.com/openapi.json - OpenAPI YAML: https://public.outreach2day.com/openapi.yaml - API Markdown: https://public.outreach2day.com/api.md - Interactive docs: https://public.outreach2day.com/docs ## Endpoint Catalog (Auto-Synced from OpenAPI) ### Account - `GET /v2/account/status` - Account status and next step. What the workspace has and what to do next. Returns subscription and mailbox quota, domains and mailboxes by state, warm-up progress with a ready estimate, open agent orders, whether campaigns are enabled, and `next_action` + `next_step` + absolute `links`. `next_action` is one of: pay_order, wait_provisioning, buy_or_connect_domains, create_mailboxes, start_warmup, wait_warmup, create_campaign, ready (returns: Response Public Get Account Status V2 Account Status Get) ### Campaign Suppression - `DELETE /campaigns/suppressions` - Delete suppression entry. Delete one suppression entry in workspace/group scope (required: email(query), workspaceId(query); returns: CampaignSuppressionDeleteOut) - `GET /campaigns/suppressions` - List suppression entries. List suppression records with optional group/email/reason filters (required: workspaceId(query); returns: CampaignSuppressionsPageOut) - `POST /campaigns/suppressions` - Upsert campaign suppression entries. Create or update suppression records by email for workspace/group scope (required: workspaceId(query); body: CampaignSuppressionUpsertIn (required); returns: CampaignSuppressionUpsertOut) - `GET /campaigns/suppressions/status` - Get suppression status for one email. Resolve suppression for a contact, preferring group-specific over workspace-wide records (required: email(query), workspaceId(query); returns: CampaignSuppressionStatusEnvelopeOut) ### Campaign Webhooks - `POST /campaigns/webhooks/deliveries/{delivery_id}/retrigger` - Requeue one campaign webhook delivery. Reset one delivery attempt back to queued state for redelivery (required: delivery_id(path), workspaceId(query); returns: CampaignWebhookDeliveryEnvelopeOut) - `GET /campaigns/webhooks/event-types` - List supported campaign webhook event types. Return canonical event types clients can subscribe to for campaign webhooks (required: workspaceId(query); returns: CampaignWebhookEventTypesOut) - `GET /campaigns/webhooks/events` - List emitted campaign webhook events. List stored webhook events with optional filtering by type or campaign (required: workspaceId(query); returns: CampaignWebhookEventsPageOut) - `GET /campaigns/webhooks/events/{event_id}` - Get emitted campaign webhook event by id. Return full payload and metadata for one emitted webhook event (required: event_id(path), workspaceId(query); returns: CampaignWebhookEventEnvelopeOut) - `GET /campaigns/webhooks/subscriptions` - List campaign webhook subscriptions. List workspace webhook subscriptions, optionally filtered by status (required: workspaceId(query); returns: CampaignWebhookSubscriptionsOut) - `POST /campaigns/webhooks/subscriptions` - Create campaign webhook subscription. Create an outbound webhook subscription with event and filtering configuration (required: workspaceId(query); body: PublicCreateCampaignWebhookSubscriptionIn (required); returns: CampaignWebhookSubscriptionEnvelopeOut) - `DELETE /campaigns/webhooks/subscriptions/{subscription_id}` - Delete campaign webhook subscription. Delete a webhook subscription and stop creating new deliveries for it (required: subscription_id(path), workspaceId(query); returns: CampaignDeleteOut) - `GET /campaigns/webhooks/subscriptions/{subscription_id}` - Get campaign webhook subscription by id. Return a single webhook subscription with current delivery configuration (required: subscription_id(path), workspaceId(query); returns: CampaignWebhookSubscriptionEnvelopeOut) - `PATCH /campaigns/webhooks/subscriptions/{subscription_id}` - Update campaign webhook subscription. Patch webhook subscription fields such as endpoint, events, filters, and status (required: subscription_id(path), workspaceId(query); body: PublicUpdateCampaignWebhookSubscriptionIn (required); returns: CampaignWebhookSubscriptionEnvelopeOut) - `GET /campaigns/webhooks/subscriptions/{subscription_id}/deliveries` - List deliveries for campaign webhook subscription. List delivery attempts and statuses for a specific webhook subscription (required: subscription_id(path), workspaceId(query); returns: CampaignWebhookDeliveriesPageOut) - `POST /campaigns/webhooks/subscriptions/{subscription_id}/pause` - Pause campaign webhook subscription. Pause a subscription so matching events are not enqueued for delivery (required: subscription_id(path), workspaceId(query); returns: CampaignWebhookSubscriptionEnvelopeOut) - `POST /campaigns/webhooks/subscriptions/{subscription_id}/resume` - Resume campaign webhook subscription. Resume a paused subscription and allow event deliveries again (required: subscription_id(path), workspaceId(query); returns: CampaignWebhookSubscriptionEnvelopeOut) - `POST /campaigns/webhooks/subscriptions/{subscription_id}/rotate-secret` - Rotate campaign webhook subscription secret. Replace the signing secret used to generate webhook signature headers (required: subscription_id(path), workspaceId(query); body: Body_public_rotate_campaign_webhook_subscription_secret_campaigns_webhooks_subscriptions__subscription_id__rotate_secret_post (optional); returns: CampaignWebhookSubscriptionEnvelopeOut) - `POST /campaigns/webhooks/subscriptions/{subscription_id}/test` - Enqueue test campaign webhook event. Create a synthetic webhook.test.v1 event for this subscription and queue delivery (required: subscription_id(path), workspaceId(query); returns: CampaignWebhookActionOut) - `GET /campaigns/webhooks/summary` - Get campaign webhook delivery summary. Return aggregate delivery metrics for a time window and optional subscription (required: workspaceId(query); returns: CampaignWebhookSummaryOut) - `GET /campaigns/{campaign_id}/contact-outcomes` - List campaign contact outcomes. List contact-level outcomes derived from reply classification and overrides (required: campaign_id(path), workspaceId(query); returns: CampaignContactOutcomesPageOut) - `POST /campaigns/{campaign_id}/contacts/outcome-override` - Override campaign contact reply intent via EVA. Manually override contact reply intent in EVA canonical storage (required: campaign_id(path), workspaceId(query); body: PublicCampaignOutcomeOverrideIn (required); returns: CampaignReplyClassificationOut) - `POST /campaigns/{campaign_id}/reply-classification` - Classify campaign reply and emit webhook events. Store reply intent classification and emit corresponding webhook events (required: campaign_id(path), workspaceId(query); body: PublicCampaignReplyClassificationIn (required); returns: CampaignReplyClassificationOut) ### Campaigns - `GET /campaigns` - Public List Campaigns. Campaigns endpoint for GET /campaigns (required: workspaceId(query); returns: Response Public List Campaigns Campaigns Get) - `POST /campaigns` - Public Create Campaign. Campaigns endpoint for POST /campaigns (required: workspaceId(query); body: CampaignCreateIn (required); returns: CampaignOut) - `GET /campaigns/analytics/overview` - Public Get Campaign Analytics Overview. Return workspace-scoped campaign analytics without per-campaign requests (required: workspaceId(query); returns: CampaignAnalyticsOverviewOut) - `GET /campaigns/capabilities` - Get campaign API capability contract for workspace (required: workspaceId(query)) - `GET /campaigns/status-enums` - List campaign lifecycle statuses and transitions. Campaigns endpoint for GET /campaigns/status-enums (required: workspaceId(query); returns: CampaignStatusEnumsOut) - `DELETE /campaigns/steps/{step_id}` - Public Delete Campaign Step. Campaigns endpoint for DELETE /campaigns/steps/{step_id} (required: step_id(path), workspaceId(query); returns: CampaignDeleteOut) - `PATCH /campaigns/steps/{step_id}` - Public Update Campaign Step. Campaigns endpoint for PATCH /campaigns/steps/{step_id} (required: step_id(path), workspaceId(query); body: CampaignStepUpdateIn (required); returns: CampaignStepOut) - `DELETE /campaigns/{campaign_id}` - Public Delete Campaign. Campaigns endpoint for DELETE /campaigns/{campaign_id} (required: campaign_id(path), workspaceId(query); returns: CampaignDeleteOut) - `GET /campaigns/{campaign_id}` - Public Get Campaign. Campaigns endpoint for GET /campaigns/{campaign_id} (required: campaign_id(path), workspaceId(query); returns: CampaignOut) - `PATCH /campaigns/{campaign_id}` - Public Update Campaign. Campaigns endpoint for PATCH /campaigns/{campaign_id} (required: campaign_id(path), workspaceId(query); body: CampaignUpdateIn (required); returns: CampaignOut) - `GET /campaigns/{campaign_id}/analytics/steps` - Public Get Campaign Step Analytics. Return campaign step performance in one optimized EVA request (required: campaign_id(path), workspaceId(query); returns: CampaignStepAnalyticsOut) - `GET /campaigns/{campaign_id}/contacts` - Public List Campaign Contacts. Campaigns endpoint for GET /campaigns/{campaign_id}/contacts (required: campaign_id(path), workspaceId(query); returns: Response Public List Campaign Contacts Campaigns Campaign Id Contacts Get) - `GET /campaigns/{campaign_id}/contacts/changes` - Public List Campaign Contacts Changes. Campaigns endpoint for GET /campaigns/{campaign_id}/contacts/changes (required: campaign_id(path), workspaceId(query); returns: CampaignContactsChangesPageOut) - `POST /campaigns/{campaign_id}/contacts/import` - Public Import Campaign Contacts Csv. Campaigns endpoint for POST /campaigns/{campaign_id}/contacts/import (required: campaign_id(path), workspaceId(query); body: Body_public_import_campaign_contacts_csv_campaigns__campaign_id__contacts_import_post (required); returns: Response Public Import Campaign Contacts Csv Campaigns Campaign Id Contacts Import Post) - `POST /campaigns/{campaign_id}/duplicate` - Duplicate campaign with steps and mailboxes. Create campaign copy with schedule/settings/steps/mailboxes (required: campaign_id(path), workspaceId(query); body: PublicCampaignDuplicateIn (optional); returns: CampaignDuplicateOut) - `GET /campaigns/{campaign_id}/export` - Export campaign analytics CSV payload. Return generated CSV payload for summary or sends export (required: campaign_id(path), workspaceId(query); returns: CampaignExportOut) - `POST /campaigns/{campaign_id}/launch` - Public Launch Campaign. Campaigns endpoint for POST /campaigns/{campaign_id}/launch (required: campaign_id(path), workspaceId(query); returns: CampaignLaunchOut) - `GET /campaigns/{campaign_id}/launch-jobs/{job_id}` - Public Get Campaign Launch Job. Campaigns endpoint for GET /campaigns/{campaign_id}/launch-jobs/{job_id} (required: campaign_id(path), job_id(path), workspaceId(query); returns: CampaignLaunchJobOut) - `POST /campaigns/{campaign_id}/lifecycle` - Execute campaign lifecycle action. Pause, resume, or launch campaign with preflight gating (required: campaign_id(path), workspaceId(query); body: PublicCampaignLifecycleIn (optional); returns: CampaignLifecycleOut) - `GET /campaigns/{campaign_id}/mailbox-preflight` - Run campaign mailbox auth preflight checks (required: campaign_id(path), workspaceId(query); returns: Response Public Get Campaign Mailbox Preflight Campaigns Campaign Id Mailbox Preflight Get) - `GET /campaigns/{campaign_id}/mailboxes` - Public List Campaign Mailboxes. Campaigns endpoint for GET /campaigns/{campaign_id}/mailboxes (required: campaign_id(path), workspaceId(query); returns: Response Public List Campaign Mailboxes Campaigns Campaign Id Mailboxes Get) - `POST /campaigns/{campaign_id}/mailboxes` - Public Add Campaign Mailbox. Campaigns endpoint for POST /campaigns/{campaign_id}/mailboxes (required: campaign_id(path), workspaceId(query); body: CampaignMailboxAttachIn (required); returns: CampaignMailboxOut) - `POST /campaigns/{campaign_id}/mailboxes/batch` - Public Add Campaign Mailboxes Batch. Campaigns endpoint for POST /campaigns/{campaign_id}/mailboxes/batch (required: campaign_id(path), workspaceId(query); body: CampaignMailboxBatchAttachIn (required); returns: CampaignMailboxBatchAttachOut) - `POST /campaigns/{campaign_id}/mailboxes/batch-delete` - Public Remove Campaign Mailboxes Batch. Campaigns endpoint for POST /campaigns/{campaign_id}/mailboxes/batch-delete (required: campaign_id(path), workspaceId(query); body: CampaignMailboxBatchDeleteIn (required); returns: CampaignMailboxBatchDeleteOut) - `DELETE /campaigns/{campaign_id}/mailboxes/{mailbox_id}` - Public Remove Campaign Mailbox. Campaigns endpoint for DELETE /campaigns/{campaign_id}/mailboxes/{mailbox_id} (required: campaign_id(path), mailbox_id(path), workspaceId(query); returns: CampaignDeleteOut) - `PATCH /campaigns/{campaign_id}/mailboxes/{mailbox_id}` - Public Update Campaign Mailbox. Campaigns endpoint for PATCH /campaigns/{campaign_id}/mailboxes/{mailbox_id} (required: campaign_id(path), mailbox_id(path), workspaceId(query); body: CampaignMailboxPolicyUpdateIn (required); returns: CampaignMailboxOut) - `GET /campaigns/{campaign_id}/preflight` - Run campaign preflight checks. Evaluate campaign readiness for launch or resume (required: campaign_id(path), workspaceId(query); returns: CampaignPreflightOut) - `PUT /campaigns/{campaign_id}/schedule` - Public Update Campaign Schedule. Campaigns endpoint for PUT /campaigns/{campaign_id}/schedule (required: campaign_id(path), workspaceId(query); body: CampaignScheduleIn (required); returns: CampaignOut) - `GET /campaigns/{campaign_id}/sends` - Public List Campaign Sends. Campaigns endpoint for GET /campaigns/{campaign_id}/sends (required: campaign_id(path), workspaceId(query); returns: CampaignSendsPageOut) - `GET /campaigns/{campaign_id}/sends/{send_id}/explain` - Public Explain Campaign Send Schedule. Campaigns endpoint for GET /campaigns/{campaign_id}/sends/{send_id}/explain (required: campaign_id(path), send_id(path), workspaceId(query)) - `GET /campaigns/{campaign_id}/share` - Get shareable campaign URL. Generate deterministic share token and URL for campaign (required: campaign_id(path), workspaceId(query); returns: CampaignShareOut) - `GET /campaigns/{campaign_id}/stats` - Public Get Campaign Stats. Campaigns endpoint for GET /campaigns/{campaign_id}/stats (required: campaign_id(path), workspaceId(query); returns: CampaignStatsOut) - `GET /campaigns/{campaign_id}/steps` - Public List Campaign Steps. Campaigns endpoint for GET /campaigns/{campaign_id}/steps (required: campaign_id(path), workspaceId(query); returns: Response Public List Campaign Steps Campaigns Campaign Id Steps Get) - `POST /campaigns/{campaign_id}/steps` - Public Create Campaign Step. Campaigns endpoint for POST /campaigns/{campaign_id}/steps (required: campaign_id(path), workspaceId(query); body: CampaignStepCreateIn (required); returns: CampaignStepOut) - `PUT /campaigns/{campaign_id}/stop-rules` - Public Update Campaign Stop Rules. Campaigns endpoint for PUT /campaigns/{campaign_id}/stop-rules (required: campaign_id(path), workspaceId(query); body: CampaignStopRulesIn (required); returns: CampaignOut) - `GET /campaigns/{campaign_id}/subsequence-routing` - Get subsequence routing policy. Get parent-level default routing policy for child subsequences (required: campaign_id(path), workspaceId(query); returns: CampaignSubsequenceRoutingOut) - `PATCH /campaigns/{campaign_id}/subsequence-routing` - Update subsequence routing policy. Update parent-level default routing policy for newly created subsequences (required: campaign_id(path), workspaceId(query); body: PublicCampaignSubsequenceRoutingPatchIn (required); returns: CampaignSubsequenceRoutingPatchOut) - `GET /campaigns/{campaign_id}/subsequences` - List campaign subsequences. List child subsequences linked to a parent campaign (required: campaign_id(path), workspaceId(query); returns: CampaignSubsequenceListOut) - `POST /campaigns/{campaign_id}/subsequences` - Create campaign subsequence. Create a child campaign (subsequence) under a parent campaign (required: campaign_id(path), workspaceId(query); body: PublicCampaignSubsequenceCreateIn (required); returns: CampaignSubsequenceEnvelopeOut) - `DELETE /campaigns/{campaign_id}/subsequences/{subsequence_id}` - Delete campaign subsequence. Delete a child subsequence campaign (required: campaign_id(path), subsequence_id(path), workspaceId(query); returns: CampaignSubsequenceDeleteOut) - `GET /campaigns/{campaign_id}/subsequences/{subsequence_id}` - Get campaign subsequence. Get one child subsequence by id inside a parent campaign context (required: campaign_id(path), subsequence_id(path), workspaceId(query); returns: CampaignSubsequenceEnvelopeOut) - `PATCH /campaigns/{campaign_id}/subsequences/{subsequence_id}` - Update campaign subsequence. Update child subsequence name, status, enrollment mode, and trigger policy (required: campaign_id(path), subsequence_id(path), workspaceId(query); body: PublicCampaignSubsequenceUpdateIn (required); returns: CampaignSubsequenceEnvelopeOut) - `POST /campaigns/{campaign_id}/subsequences/{subsequence_id}/sync` - Sync leads into subsequence. Evaluate subsequence trigger and import matching leads into child campaign (required: campaign_id(path), subsequence_id(path), workspaceId(query); body: PublicCampaignSubsequenceSyncIn (optional); returns: CampaignSubsequenceSyncOut) - `POST /imports` - Public Create Import Job (required: workspaceId(query); body: Body_public_create_import_job_imports_post (required); returns: CampaignImportEnvelopeOut) - `POST /imports/v3/submit` - Public Submit Import Job With Mapping V3 (required: workspaceId(query); body: Body_public_submit_import_job_with_mapping_v3_imports_v3_submit_post (required); returns: CampaignImportEnvelopeOut) - `GET /imports/{import_id}` - Public Get Import Status (required: import_id(path), workspaceId(query); returns: CampaignImportStatusOut) - `POST /imports/{import_id}/cancel` - Public Cancel Import (required: import_id(path), workspaceId(query)) - `POST /imports/{import_id}/mapping-confirm` - Public Confirm Import Mapping (required: import_id(path), workspaceId(query); body: PublicCampaignImportMappingConfirmIn (required); returns: CampaignImportConfirmOut) - `GET /imports/{import_id}/mapping-preview` - Public Get Import Mapping Preview (required: import_id(path), workspaceId(query); returns: CampaignImportMappingEnvelopeOut) - `GET /imports/{import_id}/status` - Public Get Import Status Alias (required: import_id(path), workspaceId(query); returns: CampaignImportStatusOut) ### Domains - `POST /check_domains` - Check Domains. Check availability of multiple domains (body: CheckDomainsIn (required); returns: CheckDomainsOut) - `GET /domains` - List Domains. List all domains for a user or a specific workspace. - If workspace_id is provided, it will return domains for that specific workspace. - If workspace_id is not provided, it will return domains for all workspaces of the user (returns: Response List Domains Domains Get) - `POST /domains/purchase` - Purchase Domains (body: DomainPurchaseRequest (required); returns: DomainPurchaseResponse) - `PATCH /domains/redirects` - Update Domains Redirects. Bulk update redirect_domain for workspace domains. Provider-specific redirect infrastructure is reconciled automatically (body: PublicDomainRedirectsUpdateIn (required)) - `GET /domains/transfer` - Get Cloudflare transfer status for workspace domains. Alias endpoint for transfer status polling (required: workspaceId(query); returns: TransferStatusResponse) - `POST /domains/transfer` - Start Cloudflare domain transfer flow. Alias endpoint for transfer checkout. Keeps backward compatibility for clients/LLMs that expect `/domains/transfer` as the primary transfer entrypoint (body: TransferCheckoutRequest (required); returns: PublicTransferCheckoutResponse) - `POST /domains/transfer/checkout` - Start Cloudflare domain transfer flow. Validate and enqueue domains for the transfer flow. Transfer itself is free in this flow: we persist domains as `pending_transfer` and return the nameservers to set at the registrar via `/domains/transfer/status` (body: TransferCheckoutRequest (required); returns: PublicTransferCheckoutResponse) - `GET /domains/transfer/status` - Get Cloudflare transfer status for workspace domains. Return per-domain transfer progress for Cloudflare-managed transfer flow (required: workspaceId(query); returns: TransferStatusResponse) - `GET /domains/{domain}/dns` - Get Dns Records. Temporarily disabled to protect upstream DNS provider rate limits (required: domain(path); returns: Response Get Dns Records Domains Domain Dns Get) - `POST /domains/{domain}/dns` - Update Dns Records (required: domain(path); body: Records (required)) ### Mailboxes - `DELETE /mailboxes` - Delete Mailboxes. Delete multiple mailboxes by their addresses (body: Addresses (required)) - `GET /mailboxes` - List Mailboxes. List all mailboxes for a user or a specific workspace. - If workspace_id is provided, it will return mailboxes for that specific workspace. - If workspace_id is not provided, it will return mailboxes for all workspaces of the user (required: workspace_id(query); returns: Response List Mailboxes Mailboxes Get) - `POST /mailboxes` - Create Mailboxes. Create mailbox records through the deprecated v1 response contract (required: workspace_id(query); body: Mailboxes (required)) - `POST /update_mailboxes` - Update Mailboxes Handler. Update information for multiple mailboxes (body: UpdateMailboxesIn (required)) - `POST /v2/mailboxes` - Create Mailboxes V2. Save local mailbox records without claiming provider setup or completion (required: workspaceId(query); body: Mailboxes (required); returns: PublicMailboxAdmissionV2Out) ### Orders - `GET /v2/orders` - List Orders. Orders of a workspace (newest first, up to 50) (required: workspaceId(query)) - `GET /v2/orders/{order_id}` - Get Order. Order status, per-item progress and the next step (required: order_id(path)) - `GET /v2/pricing` - Get Pricing. Public price list (no API key): mailbox monthly price, domain prices by TLD, processing fee rule, minimum mailboxes. Equals what Stripe Checkout charges (returns: Response Get Pricing V2 Pricing Get) - `POST /v2/quotes` - Post Quote. Price an order server-side (nothing is charged or registered). Returns 201 ``quoted`` or 202 ``requires_review``. Show ``human_summary`` and ``due_now_cents`` to the human, then create the checkout (body: QuoteRequest (required)) - `POST /v2/quotes/{quote_id}/checkout` - Post Checkout. Create the Stripe-hosted payment page for a confirmed quote. Nothing is charged by the API: the human pays on checkout.stripe.com / invoice.stripe.com (required: quote_id(path); body: CheckoutRequest (required)) ### Payment - `GET /workspaces/{workspace_id}/payment_method` - Get Payment Method. Check if workspace has a payment method on file. Returns payment method info if available (required: workspace_id(path)) - `POST /workspaces/{workspace_id}/setup_payment_method` - Setup Payment Method. Get a Stripe Checkout URL to add/update payment method for the workspace. Returns a URL where the user can securely enter card details (required: workspace_id(path)) ### Sequencers - `GET /sequencers` - Public List Sequencers. Sequencers endpoint for GET /sequencers (required: workspaceId(query); returns: SequencerConnectionsOut) - `POST /sequencers` - Public Create Sequencer. Sequencers endpoint for POST /sequencers (required: workspaceId(query); body: PublicCreateSequencerIn (required); returns: SequencerConnectionEnvelopeOut) - `GET /sequencers/providers` - Public List Sequencer Providers. Sequencers endpoint for GET /sequencers/providers (required: workspaceId(query); returns: SequencerProvidersOut) - `POST /sequencers/validate` - Public Validate Sequencer. Sequencers endpoint for POST /sequencers/validate (required: workspaceId(query); body: PublicValidateSequencerIn (required); returns: SequencerValidateOut) - `DELETE /sequencers/{connection_id}` - Public Delete Sequencer. Sequencers endpoint for DELETE /sequencers/{connection_id} (required: connection_id(path), workspaceId(query); returns: SequencerDeleteOut) - `PATCH /sequencers/{connection_id}` - Public Update Sequencer. Sequencers endpoint for PATCH /sequencers/{connection_id} (required: connection_id(path), workspaceId(query); body: PublicUpdateSequencerIn (required); returns: SequencerConnectionEnvelopeOut) - `POST /sequencers/{connection_id}/export` - Public Export Mailboxes. Sequencers endpoint for POST /sequencers/{connection_id}/export (required: connection_id(path), workspaceId(query); body: Body_public_export_mailboxes_sequencers__connection_id__export_post (optional); returns: SequencerExportOut) - `GET /sequencers/{connection_id}/exports` - Public List Exports. Sequencers endpoint for GET /sequencers/{connection_id}/exports (required: connection_id(path), workspaceId(query); returns: SequencerExportsOut) - `GET /sequencers/{connection_id}/readiness` - Public Get Sequencer Readiness. Sequencers endpoint for GET /sequencers/{connection_id}/readiness (required: connection_id(path), workspaceId(query); returns: SequencerReadinessOut) - `POST /sequencers/{connection_id}/reconnect` - Public Reconnect Mailboxes. Sequencers endpoint for POST /sequencers/{connection_id}/reconnect (required: connection_id(path), workspaceId(query); returns: SequencerReconnectOut) ### Unibox - `GET /threads` - Public Get Threads. List email thread previews (Unibox) (required: workspaceId(query); returns: UniboxThreadsOut) - `GET /threads/capabilities` - Public Get Threads Capabilities (required: workspaceId(query); returns: UniboxSchema) - `POST /threads/new` - Public Send New Message. Send a new message through the Unibox outbound path (required: workspaceId(query); body: UniboxPublicSendNewIn (required); returns: UniboxSendOut) - `GET /threads/outbound-operations/{operation_id}` - Public Get Outbound Operation Status (required: operation_id(path), workspaceId(query); returns: UniboxSchema) - `POST /threads/{thread_id}/forward` - Public Forward Thread Message (required: thread_id(path), workspaceId(query); body: UniboxPublicForwardIn (required); returns: UniboxSendOut) - `GET /threads/{thread_id}/messages` - Public Get Thread Messages. Get all messages for a specific Unibox thread (required: thread_id(path), workspaceId(query); returns: UniboxThreadMessagesOut) - `POST /threads/{thread_id}/reply` - Public Reply To Thread. Reply to a Unibox thread message (required: thread_id(path), workspaceId(query); body: UniboxPublicReplyIn (required); returns: UniboxReplyOut) - `PATCH /threads/{thread_id}/reply-intent` - Public Update Thread Reply Intent. Override reply intent for one thread. External Unibox workspaces only (required: thread_id(path), workspaceId(query); body: Payload (required)) ### Warmup - `GET /warmup/mailboxes` - Public List Warmup Mailboxes. Warmup endpoint for GET /warmup/mailboxes (required: workspaceId(query); returns: Response Public List Warmup Mailboxes Warmup Mailboxes Get) - `POST /warmup/operations` - Public Create Warmup Operation. Warmup endpoint for POST /warmup/operations (required: workspaceId(query); body: WarmupOperationCreateIn (required); returns: WarmupOperationOut) - `GET /warmup/operations/{operation_id}` - Public Get Warmup Operation. Warmup endpoint for GET /warmup/operations/{operation_id} (required: operation_id(path), workspaceId(query); returns: WarmupOperationOut) ### Workspaces - `GET /workspaces` - List Workspaces. List all workspaces for the authenticated user (returns: Response List Workspaces Workspaces Get) - `POST /workspaces` - Create New Workspace. Create a new workspace for the authenticated user (body: CreateWorkspaceRequest (required); returns: WorkspaceInfo) - `GET /workspaces/{workspace_id}` - Get Workspace Info Handler. Get detailed information about a specific workspace. This endpoint returns information such as the workspace name, description, and the maximum number of mailboxes allowed (required: workspace_id(path); returns: WorkspaceInfo) - `POST /workspaces/{workspace_id}/upgrade_subscription` - Upgrade Workspace Subscription. Upgrade or downgrade the subscription for a specific workspace. - For upgrades: Payment is charged immediately and verified before updating - For downgrades: No refund is given, user keeps access until end of billing period (required: workspace_id(path), newMaxMailboxes(query)) ## Error Shape ```json {"detail":"Error message","error":"ERROR_CODE"} ``` ## Support - Email: support@outreach2day.com - Docs: https://public.outreach2day.com/docs