### API Key Format Example Source: https://docs.supersend.io/docs/authentication Example of the format for a SuperSend API key. ```text BBMRRJ2-T424J8W-K9PQZZR-BOP924 ``` -------------------------------- ### SuperSend CLI Installation and Usage Source: https://docs.supersend.io/docs/changelog Commands to run the SuperSend CLI via npx or install it globally via npm. ```bash npx -y -p @super-send/mcp-server supersend health npm install -g @super-send/mcp-server ``` -------------------------------- ### POST /v2/contacts/bulk request example Source: https://docs.supersend.io/docs/changelog Example cURL command for bulk importing contacts to the V2 API. ```bash curl -X POST 'https://api.supersend.io/v2/contacts/bulk' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d 700 dark:text-green-400">'{"contacts": [...], "TeamId": "...", "CampaignId": "..."}' ``` -------------------------------- ### Install and verify CLI with npx Source: https://docs.supersend.io/docs/cli Use npx to run the CLI without a global installation. The health command verifies connectivity to the API. ```bash npx -y -p @super-send/mcp-server supersend --help npx -y -p @super-send/mcp-server supersend health ``` -------------------------------- ### ifNode Configuration Example Source: https://docs.supersend.io/docs/sequence Example of an ifNode configuration. It requires true_step_number and false_step_number attributes to define the branching logic based on the step_number of subsequent nodes. ```json { "id": "2852bfde-49f0-4108-a137-85e858348241", "data": { "type": 10, "wait": 1, "event": "country", "label": "If Node", "wait_unit": "days", "comparison": "=", "step_number": 1, "send_as_reply": false, "comparison_value": "US" }, "type": "ifNode",, "true_step_number": 2, "false_step_number": 3, "width": 384, "height": 214, "dragging": false, "position": { "x": 374.1282297640014, "y": -395.7084951681734 }, "selected": false, "positionAbsolute": { "x": 374.1282297640014, "y": -395.7084951681734 }, "next_step_number": null } ``` -------------------------------- ### Bulk Import Contacts Response Example Source: https://docs.supersend.io/openapi.yaml Example response returned when a bulk import is accepted for processing. ```json success: true data: upload_id: 770e8400-e29b-41d4-a716-446655440002 status: pending contact_count: 500 message: Upload received. Processing will begin shortly. request_id: req_abc123def456 ``` -------------------------------- ### Bulk Import Contacts Request Example Source: https://docs.supersend.io/openapi.yaml Example request payload for the bulk import contacts endpoint. ```json contacts: - email: john@example.com first_name: John last_name: Doe company_name: Acme Corp - email: jane@example.com first_name: Jane last_name: Smith TeamId: 550e8400-e29b-41d4-a716-446655440000 CampaignId: 660e8400-e29b-41d4-a716-446655440001 ``` -------------------------------- ### Create Contact Request Example Source: https://docs.supersend.io/openapi.yaml Example JSON payload for the createContact operation, including email, name, company, and associated identifiers. ```json { "email": "john@example.com", "first_name": "John", "last_name": "Doe", "company": "Acme Corp", "TeamId": "550e8400-e29b-41d4-a716-446655440000", "CampaignId": "660e8400-e29b-41d4-a716-446655440001" } ``` -------------------------------- ### Bulk Import Contacts JSON Body Example Source: https://docs.supersend.io/openapi.yaml Example structure for the JSON body used in bulk contact imports. ```json { "contacts": [ { "email": "john@example.com", "first_name": "John" }, { "email": "jane@example.com", "first_name": "Jane" } ], "TeamId": "uuid", "CampaignId": "uuid" } ``` -------------------------------- ### Health Check Response Example Source: https://docs.supersend.io/openapi.yaml Example JSON response for the /health endpoint. ```json { "success": true, "data": { "status": "healthy", "version": "v2", "timestamp": "2026-01-19T12:00:00.000Z", "uptime": 86400 }, "request_id": "req_abc123def456" } ``` -------------------------------- ### Environment Variable Configuration Source: https://docs.supersend.io/docs/authentication Example of storing the API key in a .env file and accessing it in JavaScript. ```bash # .env file SUPERSEND_API_KEY=BBMRRJ2-T424J8W-K9PQZZR-BOP924 ``` ```javascript // Access in code const apiKey = process.env.SUPERSEND_API_KEY; ``` -------------------------------- ### Get Campaign GET /campaigns/{id} Source: https://docs.supersend.io/openapi.yaml Retrieves a single campaign with messages and contact count. ```yaml /campaigns/{id}: get: tags: [Campaigns] summary: Get Campaign description: Retrieves a single campaign with messages and contact count. operationId: getCampaign parameters: - $ref: "#/components/parameters/IdPath" responses: "200": description: Campaign details content: application/json: schema: $ref: "#/components/schemas/CampaignResponse" "404": $ref: "#/components/responses/NotFound" ``` -------------------------------- ### Get Campaign Sequence GET /campaigns/{id}/sequence Source: https://docs.supersend.io/openapi.yaml Retrieves the sequence (nodes and edges) for a campaign. This endpoint provides detailed access to the visual sequence builder structure. ```yaml /campaigns/{id}/sequence: get: tags: [Campaigns] summary: Get Campaign Sequence description: | Retrieves the sequence (nodes and edges) for a campaign. This endpoint provides detailed access to the visual sequence builder structure. ``` -------------------------------- ### GET /v2/campaigns Source: https://docs.supersend.io/docs/v2-api List all campaigns. ```APIDOC ## GET /v2/campaigns ### Description List campaigns. ### Method GET ### Endpoint /v2/campaigns ``` -------------------------------- ### Create Campaign POST /campaigns Source: https://docs.supersend.io/openapi.yaml Creates a new campaign. Campaigns start in inactive/draft status. ```yaml /campaigns: post: tags: [Campaigns] summary: Create Campaign description: Creates a new campaign. Campaigns start in inactive/draft status. operationId: createCampaign requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/CreateCampaignRequest" responses: "201": description: Campaign created content: application/json: schema: $ref: "#/components/schemas/CampaignResponse" "400": $ref: "#/components/responses/BadRequest" ``` -------------------------------- ### List Campaigns GET /campaigns Source: https://docs.supersend.io/openapi.yaml Lists campaigns with filtering and pagination. ```yaml get: tags: [Campaigns] summary: List Campaigns description: Lists campaigns with filtering and pagination. operationId: listCampaigns parameters: - $ref: "#/components/parameters/TeamIdQuery" - $ref: "#/components/parameters/LimitParam" - $ref: "#/components/parameters/OffsetParam" - name: search in: query description: Search by campaign name schema: type: string - name: status in: query description: Filter by status schema: type: string enum: [active, inactive] responses: "200": description: List of campaigns content: application/json: schema: $ref: "#/components/schemas/CampaignListResponse" ``` -------------------------------- ### GET /v1/placement-tests Source: https://docs.supersend.io/docs/placement-test Retrieves a list of placement tests using the legacy V1 API. ```APIDOC ## GET /v1/placement-tests ### Description Get all placement tests for your organization using the V1 API. ### Method GET ### Endpoint https://api.supersend.io/v1/placement-tests ### Parameters #### Query Parameters - **search** (string) - Optional - Search in test name - **status** (string) - Optional - Filter: pending, sent, completed, failed - **sortBy** (string) - Optional - Sort field: name, status, createdAt, score - **sortOrder** (string) - Optional - asc or desc - **limit** (number) - Optional - Results per page (default: 50) - **offset** (number) - Optional - Pagination offset ``` -------------------------------- ### GET /contacts Source: https://docs.supersend.io/openapi.yaml Lists contacts with support for filtering, search, and pagination. ```APIDOC ## GET /contacts ### Description Lists contacts with filtering, search, and pagination. Supports filtering by team, campaign, and status. ### Method GET ### Endpoint /contacts ### Parameters #### Query Parameters - **TeamId** (string) - Optional - Filter by team - **CampaignId** (string) - Optional - Filter by campaign - **Limit** (integer) - Optional - Pagination limit - **Offset** (integer) - Optional - Pagination offset - **search** (string) - Optional - Search by email, name, or company - **interest** (string) - Optional - Filter by contact status (e.g., interested, customer) ``` -------------------------------- ### GET /v1/campaign/{campaign-uuid} Source: https://docs.supersend.io/docs/campaign Retrieves basic campaign information using the V1 API. ```APIDOC ## GET /v1/campaign/{campaign-uuid} ### Description Retrieves a single campaign by its unique identifier using the legacy V1 API. ### Method GET ### Endpoint https://api.supersend.io/v1/campaign/{campaign-uuid} ### Parameters #### Path Parameters - **campaign-uuid** (string) - Required - The unique identifier of the campaign. ### Response #### Success Response (200) - **success** (boolean) - Indicates if the request was successful. - **campaign** (object) - The campaign data object. ``` -------------------------------- ### GET /v2/contacts/:id Source: https://docs.supersend.io/docs/v2-api Get a campaign enrollment by contact ID. ```APIDOC ## GET /v2/contacts/:id ### Description Get a campaign enrollment by Contact id. ### Method GET ### Endpoint /v2/contacts/:id ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the contact. ``` -------------------------------- ### Discover CLI commands Source: https://docs.supersend.io/docs/cli Use the --help flag to view available commands and options for specific subcommands. ```bash supersend --help supersend contacts --help supersend diagnose capacity --help ``` -------------------------------- ### Purchase Domain (V1) Source: https://docs.supersend.io/docs/managed-domain Initiates the purchase process for an available domain. ```bash curl -X POST 'https://api.supersend.io/v1/managed-domains/purchase' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "domain": "example.com" }' # Response { "success": true, "domain": { "id": "domain-uuid", "name": "example.com", "status": "processing" }, "message": "Domain purchase initiated" } ``` -------------------------------- ### Configure authentication Source: https://docs.supersend.io/docs/cli Set the API key and URL using environment variables, a configuration file, or a one-off flag. The CLI checks these in order: flag, environment variable, then config file. ```bash # env (current shell) export SUPERSEND_API_KEY='your-api-key' # optional — production is the default export SUPERSEND_API_URL='https://api.supersend.io/v2' # or save to ~/.config/supersend/config.json supersend config set-api-key 'your-api-key' # or one-off flag supersend --api-key 'your-api-key' health ``` -------------------------------- ### Get Conversation Labels Source: https://docs.supersend.io/docs/label Retrieves labels for a specific conversation using a GET request with the conversation_id query parameter. ```bash curl -X GET 'https://api.supersend.io/v1/labels/conversation?conversation_id=xxx' \ -H "Authorization: Bearer YOUR_API_KEY" ``` -------------------------------- ### V1 Pagination Fetching Source: https://docs.supersend.io/docs/migration-guide Demonstrates the manual pagination approach used in V1, requiring subsequent requests to determine if more results exist. ```javascript // V1 - must manually check if there are more results const response = await fetch('/v1/contacts?limit=50&offset=0'); const contacts = await response.json(); // You had to fetch again to see if there are more ``` -------------------------------- ### Create Contact via V1 API Source: https://docs.supersend.io/docs/contact Use the V1 API to create a contact. Includes an example request and the corresponding 201 Created response. ```bash curl -X POST 'https://api.supersend.io/v1/contact/create' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "first_name": "Joe", "last_name": "Paul", "email": "joe.paul@example.com", "company_name": "ABC Corp", "TeamId": "your-team-id", "CampaignId": "your-campaign-id" }' # Optional: "validate_emails": true or "validate_emails": "true" — same rules as V2 (unvalidated/pending only; skips already-validated profiles). # Response (201 Created) { "message": "Contact created successfully", "contact": { "id": "e8048d7f-3b04-4d6a-b73f-a400b514f626", "email": "joe.paul@example.com", "first_name": "Joe", "last_name": "Paul", "company_name": "ABC Corp", "CampaignId": "your-campaign-id", "OrgId": "org-uuid", "createdAt": "2025-08-12T15:25:50.939Z", "updatedAt": "2025-08-12T15:25:50.939Z" } } ``` -------------------------------- ### Create Campaign via V1 API Source: https://docs.supersend.io/docs/campaign Create a new campaign using the legacy V1 endpoint. ```bash curl -X POST 'https://api.supersend.io/v1/campaign' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Q4 Outreach Campaign", "TeamId": "team-uuid" }' # Response (201 Created) { "success": true, "data": { "campaign": { "id": "campaign-uuid", "name": "Q4 Outreach Campaign", ... } }, "request_id": "req_a1b2c3d4e5f6789012345678" } ``` -------------------------------- ### Create Campaign via V2 API Source: https://docs.supersend.io/docs/campaign Create a new campaign using the recommended V2 endpoint. Includes optional parameters for tracking, scheduling, and sequence configuration. ```bash curl -X POST 'https://api.supersend.io/v2/campaigns' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Q4 Outreach Campaign", "TeamId": "team-uuid" }' # Optional: include nodes, edges, category_id, track, bcc, schedule, opt-outs, failureConfiguration # -d 700 dark:text-green-400">'{"name": "Q4 Outreach", "TeamId": "team-uuid", "category_id": "category-uuid", "track": true, "nodes": [...], "edges": [...]}' # Response (201 Created) { "success": true, "data": { "id": "campaign-uuid", "name": "Q4 Outreach Campaign", "status": 2, "track_domain": null, "is_draft": true, "legacy_sequence": false, "nodes": [], "edges": [], "contact_count": 0, "createdAt": "2025-11-27T10:00:00Z", "updatedAt": "2025-11-27T10:00:00Z" }, "request_id": "req_a1b2c3d4e5f6789012345678" } ``` -------------------------------- ### Create Placement Test via V1 API Source: https://docs.supersend.io/docs/placement-test Use this endpoint for legacy placement test creation. It supports basic configuration fields for the test. ```bash curl -X POST 'https://api.supersend.io/v1/placement-tests' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Q4 Campaign Test", "test_email_subject": "Test Email Subject", "test_email_body": "This is a test email body", "seed_count": 10 }' ``` -------------------------------- ### POST /v2/playbooks Source: https://docs.supersend.io/docs/changelog Create a new playbook to capture campaign strategy and performance metrics. ```APIDOC ## POST /v2/playbooks ### Description Create a playbook to track strategy, offer, and performance metrics. ### Method POST ### Endpoint /v2/playbooks ### Parameters #### Request Body - **TeamId** (string) - Required - The ID of the team. - **name** (string) - Required - The name of the playbook. - **offer** (string) - Optional - The offer details. - **segment** (string) - Optional - The target segment. - **messaging** (string) - Optional - The messaging angle. - **hypothesis** (string) - Optional - The strategy hypothesis. ``` -------------------------------- ### Get Sequence via cURL Source: https://docs.supersend.io/docs/sequence Retrieves sequence details using a GET request. Requires a valid API key in the Authorization header and specific TeamId and CampaignId query parameters. ```bash curl -X GET 'https://api.supersend.io/v1/sequence/sequence-uuid?TeamId=xxx&CampaignId=xxx' \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" ``` -------------------------------- ### List Placement Tests V2 API Source: https://docs.supersend.io/docs/placement-test Retrieves all placement tests for an organization using the recommended V2 API. Includes query parameters for filtering, sorting, and pagination, along with a sample 200 OK response. ```bash curl -X GET 'https://api.supersend.io/v2/placement-tests?team_id=xxx&sender_id=yyy&status=completed&search=Q4&sort_by=created_at&sort_order=desc&include_summary=true&limit=20' \ -H "Authorization: Bearer YOUR_API_KEY" # Response (200 OK) { "success": true, "data": [ { "object": "placement_test", "id": "test-uuid", "name": "Q4 Campaign Test", "status": "completed", "tracking_code": "ss-abc123", "score": 85, "credit_cost": 10, "total_seeds": 10, "auto_send": false, "is_auto_test": false, "results_summary": { "inbox": 8, "spam": 1, "not_received": 1, "bounced": 0 }, "sender": { "id": "sender-uuid", "email": "sales@example.com", "provider": "smtp" }, "created_by": { "id": "user-uuid", "name": "John Doe", "email": "john@example.com" }, "sent_at": "2025-11-27T10:35:00Z", "completed_at": "2025-11-27T10:45:00Z", "created_at": "2025-11-27T10:30:00Z", "updated_at": "2025-11-27T10:45:00Z" } ], "pagination": { "total": 5, "limit": 20, "offset": 0, "has_more": false }, "summary": { "total_tests": 25, "completed_tests": 20, "average_score": 82.5, "tests_this_month": 5, "last_test": { "id": "test-uuid", "name": "Q4 Campaign Test", "score": 85, "status": "completed", "created_at": "2025-11-27T10:30:00Z" } }, "request_id": "req_a1b2c3d4e5f6789012345678" } ``` -------------------------------- ### Get parent campaign via GET /v2/campaigns/{campaignId}/parent Source: https://docs.supersend.io/docs/campaign Retrieves the parent campaign details for a given campaign ID. The response includes isSubsequence and parentCampaign fields when applicable. ```bash curl -X GET 'https://api.supersend.io/v2/campaigns/{campaignId}/parent' \ -H "Authorization: Bearer YOUR_API_KEY" ``` -------------------------------- ### Get Conversation via V2 API Source: https://docs.supersend.io/docs/conversation Retrieves a specific conversation using a GET request. The response includes conversation metadata, participants, and the 50 most recent messages, which are returned in chronological order. ```bash curl -X GET 'https://api.supersend.io/v2/conversations/conversation-uuid' \ -H "Authorization: Bearer YOUR_API_KEY" # Response (200 OK) { "success": true, "data": { "object": "conversation", "id": "conversation-uuid", "platform_type": "linkedin", "title": "John Smith", "last_activity_at": "2025-11-27T10:30:00Z", "is_unread": false, "is_archived": false, "identity": { "id": "identity-uuid", "handle": "my-linkedin-handle", "first_name": "My", "last_name": "Name", "photo": "https://...", "type": "linkedin" }, "participants": [ { "id": "profile-uuid", "display_name": "John Smith", "avatar_url": "https://...", "username": "johnsmith", "is_self": false } ], "messages": [ { "id": "message-uuid", "text": "Hi John, thanks for your interest...", "timestamp": "2025-11-27T10:00:00Z", "is_from_self": true, "is_read": true, "author": { "id": "profile-uuid", "display_name": "My Name", "avatar_url": "https://...", "username": "my-linkedin-handle" } }, { "id": "message-uuid-2", "text": "That sounds great! Let's schedule a call.", "timestamp": "2025-11-27T10:30:00Z", "is_from_self": false, "is_read": true, "author": { "id": "profile-uuid-2", "display_name": "John Smith", "avatar_url": "https://...", "username": "johnsmith" } } ], "team_id": "team-uuid", "created_at": "2025-11-01T00:00:00Z", "updated_at": "2025-11-27T10:30:00Z" }, "request_id": "req_a1b2c3d4e5f6789012345678" } ``` -------------------------------- ### List Placement Tests V1 API Source: https://docs.supersend.io/docs/placement-test Retrieves placement tests using the legacy V1 API. Includes query parameters for filtering and pagination, along with a sample response. ```bash curl -X GET 'https://api.supersend.io/v1/placement-tests?status=sent&limit=50&sortBy=createdAt&sortOrder=desc' \ -H "Authorization: Bearer YOUR_API_KEY" # Response { "tests": [...], "count": 1, "limit": 50, "offset": 0, "hasMore": false } ``` -------------------------------- ### Get Domain Details via V2 API Source: https://docs.supersend.io/docs/managed-domain Retrieve details for a specific domain using a GET request. Replace 'domain-uuid' with the actual domain identifier and include your API key in the Authorization header. ```bash curl -X GET 'https://api.supersend.io/v2/domains/domain-uuid' \ -H "Authorization: Bearer YOUR_API_KEY" # Response (200 OK) { "success": true, "data": { "object": "domain", "id": "domain-uuid", "name": "example.com", "status": "active", "managed": "internal", "provider": "namecheap", "registrar": "namecheap", "dns_provider": "cloudflare", "expires_at": "2026-11-27T10:30:00Z", "auto_renew": true, "cancel_at_period_end": false, "dmarc_email": "dmarc@example.com", "forwarding_address": "forward@example.com", "active_sender_count": 3, "health": { "is_active": true, "dns_valid": true, "spf_valid": true, "dkim_valid": true, "dmarc_valid": true, "mx_valid": true, "is_blacklisted": false, "blacklist_reason": null, "blacklist_providers": [], "errors": [], "warnings": [], "last_check": "2025-11-27T10:00:00Z", "records": { "spf": "v=spf1 include:_spf.example.com ~all", "dkim": "v=DKIM1; k=rsa; p=...", "dmarc": "v=DMARC1; p=quarantine; rua=mailto:dmarc@example.com", "mx": ["mail.example.com"], "nameservers": ["ns1.cloudflare.com", "ns2.cloudflare.com"] } }, "dns_records": { "spf": {...}, "dkim": {...}, "dmarc": {...}, "mx": [...] }, "team": { "id": "team-uuid", "name": "Sales Team" }, "senders": [ { "id": "sender-uuid", "email": "sales@example.com", "send_as": "Sales Team", "disabled": false, "warm": true, "warming_stage": 3, "health_score": 95, "status": "active" } ], "created_at": "2025-11-27T10:30:00Z", "updated_at": "2025-11-27T10:30:00Z" }, "request_id": "req_a1b2c3d4e5f6789012345678" } ``` -------------------------------- ### GET /v2/senders Source: https://docs.supersend.io/docs/v2-api List all senders. ```APIDOC ## GET /v2/senders ### Description List senders. ### Method GET ### Endpoint /v2/senders ``` -------------------------------- ### POST /v2/placement-tests Source: https://docs.supersend.io/docs/v2-api Create a new placement test. ```APIDOC ## POST /v2/placement-tests ### Description Create a placement test. ### Method POST ### Endpoint /v2/placement-tests ``` -------------------------------- ### V2 Success Response Example Source: https://docs.supersend.io/docs/v2-api Displays the consistent success response format used in the V2 API. ```javascript // Always consistent { "success": true, "data": {...}, "request_id": "req_..." } ``` -------------------------------- ### GET /v2/contacts Source: https://docs.supersend.io/docs/v2-api List all contacts. ```APIDOC ## GET /v2/contacts ### Description List contacts. ### Method GET ### Endpoint /v2/contacts ``` -------------------------------- ### GET /v2/teams Source: https://docs.supersend.io/docs/team Retrieves a list of all teams. ```APIDOC ## GET /v2/teams ### Description Retrieves a list of all teams. ### Method GET ### Endpoint /v2/teams ``` -------------------------------- ### POST /campaigns Source: https://docs.supersend.io/api-explorer Creates a new campaign. ```APIDOC ## POST /campaigns ### Description Creates a new campaign. ### Method POST ### Endpoint /campaigns ``` -------------------------------- ### GET /v2/events Source: https://docs.supersend.io/docs/event Retrieves a list of events. ```APIDOC ## GET /v2/events ### Description Retrieves a list of all events. ### Method GET ### Endpoint /v2/events ``` -------------------------------- ### GET /v2/campaigns Source: https://docs.supersend.io/docs/migration-guide Lists campaigns associated with a team. ```APIDOC ## GET /v2/campaigns ### Description Lists campaigns. ### Method GET ### Endpoint https://api.supersend.io/v2/campaigns ### Parameters #### Query Parameters - **TeamId** (string) - Required ``` -------------------------------- ### Get Placement Test via V1 API Source: https://docs.supersend.io/docs/placement-test Retrieves placement test information using the legacy V1 endpoint. ```bash curl -X GET 'https://api.supersend.io/v1/placement-tests/test-uuid' \ -H "Authorization: Bearer YOUR_API_KEY" ``` -------------------------------- ### GET /intelligence/capacity-summary Source: https://docs.supersend.io/api-explorer Retrieves a summary of current capacity. ```APIDOC ## GET /intelligence/capacity-summary ### Description Retrieves a summary of current capacity. ### Method GET ### Endpoint /intelligence/capacity-summary ``` -------------------------------- ### Check Domain Availability (V1) Source: https://docs.supersend.io/docs/managed-domain Checks if a specific domain is available for purchase and returns its price. ```bash curl -X POST 'https://api.supersend.io/v1/managed-domains/check-availability' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "domain": "example.com" }' # Response { "domain": "example.com", "available": true, "price": 13.0, "currency": "USD" } ``` -------------------------------- ### Get Webhook Source: https://docs.supersend.io/docs/webhooks Retrieves details for a specific webhook by its ID. ```bash curl -X GET 'https://api.supersend.io/v2/webhooks/webhook-uuid' \ -H "Authorization: Bearer YOUR_API_KEY" # Response (200 OK) { "success": true, "data": { "object": "webhook", "id": "webhook-uuid", "url": "https://your-server.com/webhooks", "name": "My Webhook", "enabled": true, "events": { "reply": true, "open": true, "click": true, "sent": false, "bounce": true, "unsubscribe": false }, "secret": " __*", "headers": {}, "team_id": "team-uuid", "campaign_id": null, "config": { "reply_event": true, "open_event": true, "click_event": true, "sent_event": false, "bounce_event": true, "unsubscribe_event": false, "webhook_enabled": true }, "created_at": "2025-01-19T10:00:00Z", "updated_at": "2025-01-19T10:00:00Z" }, "request_id": "req_..." } ``` -------------------------------- ### Success Response: List with Pagination Source: https://docs.supersend.io/docs/v2-api Standardized 200 OK response for list requests including pagination metadata. ```json { "success": true, "data": [ { "id": "1", "email": "a@example.com" }, { "id": "2", "email": "b@example.com" } ], "pagination": { "total": 150, "limit": 50, "offset": 0, "has_more": true }, "request_id": "req_a1b2c3d4e5f6789012345678" } ``` -------------------------------- ### GET /v2/playbooks Source: https://docs.supersend.io/docs/changelog List all playbooks for a team with performance rollups. ```APIDOC ## GET /v2/playbooks ### Description List playbooks for a team with aggregated performance summaries. ### Method GET ### Endpoint /v2/playbooks ### Parameters #### Query Parameters - **status** (string) - Optional - Filter by status (draft, active, archived). - **search** (string) - Optional - Partial match on name. - **sortBy** (string) - Optional - Sort by oldest, newest, last_modified, reply_rate_high, reply_rate_low, campaign_count_high, or campaign_count_low. ``` -------------------------------- ### POST /v2/campaigns Source: https://docs.supersend.io/docs/campaign Creates a new campaign using the recommended V2 API. ```APIDOC ## POST /v2/campaigns ### Description Create a new campaign with specified configuration. ### Method POST ### Endpoint https://api.supersend.io/v2/campaigns ### Parameters #### Request Body - **name** (string) - Required - Campaign name - **TeamId** (string) - Required - Team identifier - **track_domain** (string) - Optional - Tracking domain - **track** (boolean) - Optional - Enable open and click tracking - **category_id** (string) - Optional - Campaign category ID - **nodes** (array) - Optional - Initial sequence nodes - **edges** (array) - Optional - Initial sequence edges - **is_draft** (boolean) - Optional - Draft status - **custom_variables** (array) - Optional - Custom variable definitions - **templateId** (string) - Optional - Template ID - **send_to_risk_levels** (array) - Optional - List Health levels to send to - **bcc** (array) - Optional - BCC email addresses - **bcc_replies_only** (boolean) - Optional - BCC only applies to reply emails - **timezone** (string) - Optional - Campaign schedule timezone - **days** (object) - Optional - Days of week to send - **hours** (array) - Optional - Sending hours windows - **start** (string) - Optional - Campaign start date - **end** (string) - Optional - Campaign end date - **unsubscribe** (boolean) - Optional - Enable opt-out link - **unsubscribe_message** (string) - Optional - Keyword to detect opt-out - **blacklistIfUnsubscribe** (boolean) - Optional - Add contact to blacklist on opt-out - **blacklistIfBounced** (boolean) - Optional - Add contact to blacklist on bounce - **blacklistDomainOnReply** (boolean) - Optional - Blacklist contact domain on reply - **list_unsubscribe_header** (boolean) - Optional - Add List-Unsubscribe header - **failureConfiguration** (object) - Optional - Sequence step failure handling ### Response #### Success Response (201) - **success** (boolean) - Indicates success - **data** (object) - Campaign details - **request_id** (string) - Unique request identifier ``` -------------------------------- ### GET /v1/labels/conversation Source: https://docs.supersend.io/docs/label Retrieves all labels associated with a specific conversation. ```APIDOC ## GET /v1/labels/conversation ### Description Fetches a list of labels assigned to a specific conversation. ### Method GET ### Endpoint https://api.supersend.io/v1/labels/conversation ### Parameters #### Query Parameters - **conversation_id** (string) - Required - The UUID of the conversation to retrieve labels for. ``` -------------------------------- ### GET /health Source: https://docs.supersend.io/docs/mcp-server Performs a health check on the MCP server. ```APIDOC ## GET /health ### Description Health check endpoint to verify service status. ### Method GET ### Endpoint /health ### Response #### Success Response (200) - **status** (string) - Returns "ok" - **service** (string) - Returns "mcp-server" ``` -------------------------------- ### Create Label (V1 API) Source: https://docs.supersend.io/docs/label Creates a new label using the legacy V1 API endpoint. ```bash curl -X POST 'https://api.supersend.io/v1/labels' \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "name": "Interested", "color": "#4CAF50" }' ``` -------------------------------- ### GET /health Source: https://docs.supersend.io/api-explorer Performs a health check on the API service. ```APIDOC ## GET /health ### Description Performs a health check on the API service. ### Method GET ### Endpoint /health ``` -------------------------------- ### POST /v2/campaigns Source: https://docs.supersend.io/docs/v2-api Create a new campaign. ```APIDOC ## POST /v2/campaigns ### Description Create a campaign. ### Method POST ### Endpoint /v2/campaigns ``` -------------------------------- ### GET /v2/webhooks/:id Source: https://docs.supersend.io/docs/webhooks Retrieves the details of a specific webhook by its ID. ```APIDOC ## GET /v2/webhooks/:id ### Description Fetches the configuration and details of a specific webhook. ### Method GET ### Endpoint https://api.supersend.io/v2/webhooks/:id ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the webhook. ``` -------------------------------- ### POST /v1/campaign Source: https://docs.supersend.io/docs/campaign Creates a new campaign using the legacy V1 API. ```APIDOC ## POST /v1/campaign ### Description Create a new campaign using the legacy V1 endpoint. ### Method POST ### Endpoint https://api.supersend.io/v1/campaign ### Request Body - **name** (string) - Required - Campaign name - **TeamId** (string) - Required - Team identifier ### Response #### Success Response (201) - **success** (boolean) - Indicates success - **data** (object) - Contains campaign object - **request_id** (string) - Unique request identifier ``` -------------------------------- ### GET /v2/webhooks Source: https://docs.supersend.io/docs/webhooks Retrieves a list of all webhooks associated with a specific team. ```APIDOC ## GET /v2/webhooks ### Description Retrieves a list of webhooks for the authenticated team. ### Method GET ### Endpoint https://api.supersend.io/v2/webhooks ### Parameters #### Query Parameters - **team_id** (string) - Required - The ID of the team to fetch webhooks for. ### Response #### Success Response (200) - **success** (boolean) - Indicates if the request was successful. - **data** (array) - List of webhook objects. - **pagination** (object) - Pagination metadata. ``` -------------------------------- ### POST /v1/team Source: https://docs.supersend.io/docs/team Creates a new team using the legacy V1 API. ```APIDOC ## POST /v1/team ### Description Create a new team using the legacy V1 API. ### Method POST ### Endpoint https://api.supersend.io/v1/team ### Parameters #### Request Body - **name** (string) - Required - Team name - **domain** (string) - Optional - Team domain URL - **about** (string) - Optional - Team description ``` -------------------------------- ### GET /v2/teams/:id/usage Source: https://docs.supersend.io/docs/team Retrieves usage metrics for a specific team. ```APIDOC ## GET /v2/teams/:id/usage ### Description Retrieves usage metrics for a specific team. ### Method GET ### Endpoint /v2/teams/:id/usage ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the team. ``` -------------------------------- ### V2 Pagination with has_more Source: https://docs.supersend.io/docs/migration-guide Demonstrates the V2 pagination pattern which includes a has_more flag and metadata in the response, simplifying loop logic. ```javascript // V2 - includes has_more for easy pagination const response = await fetch('/v2/contacts?limit=50&offset=0'); const { data, pagination } = await response.json(); // pagination: { limit: 50, offset: 0, total: 150, has_more: true } // Easy pagination loop let offset = 0; let hasMore = true; while (hasMore) { const { data, pagination } = await fetchContacts(offset); processContacts(data); hasMore = pagination.has_more; offset += pagination.limit; } ``` -------------------------------- ### GET /v1/campaign-sender-profile Source: https://docs.supersend.io/docs/sender-profile Retrieves sender profiles associated with a specific campaign. ```APIDOC ## GET /v1/campaign-sender-profile ### Description Retrieves a list of sender profiles associated with a given campaign ID. ### Method GET ### Endpoint https://api.supersend.io/v1/campaign-sender-profile ### Parameters #### Query Parameters - **CampaignId** (string) - Required - The unique identifier of the campaign. ``` -------------------------------- ### GET /v2/domains Source: https://docs.supersend.io/docs/managed-domain Lists all managed domains using the V2 API. ```APIDOC ## GET /v2/domains ### Description Lists all managed domains. ### Method GET ### Endpoint /v2/domains ``` -------------------------------- ### V1 Success Response Example Source: https://docs.supersend.io/docs/v2-api Displays the varied success response formats used in the V1 API. ```javascript // Various formats { "message": "Success", "contact": {...} } { "success": true, "data": {...} } { "contacts": [...] } ``` -------------------------------- ### Create Team V1 Source: https://docs.supersend.io/docs/migration-guide Creating a team using the V1 singular endpoint. ```javascript // V1 uses singular noun const response = await fetch('https://api.supersend.io/v1/team', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_KEY', 'Content-Type': 'application/json' }, body: JSON.stringify({ name: 'My Team' }) }); ``` -------------------------------- ### GET /v1/managed-domains Source: https://docs.supersend.io/docs/managed-domain Lists all managed domains using the V1 API. ```APIDOC ## GET /v1/managed-domains ### Description Lists all managed domains. ### Method GET ### Endpoint /v1/managed-domains ``` -------------------------------- ### POST /register Source: https://docs.supersend.io/docs/mcp-server Registers the server for directory or OAuth compatibility. ```APIDOC ## POST /register ### Description Used for directory or OAuth compatibility flows. ### Method POST ### Endpoint /register ### Response #### Success Response (200) - **status** (string) - Returns "ok" - **registered** (boolean) - Returns true ``` -------------------------------- ### GET /.well-known/mcp/server-card.json Source: https://docs.supersend.io/docs/mcp-server Retrieves the static server card for the MCP server. ```APIDOC ## GET /.well-known/mcp/server-card.json ### Description Returns the static server card configuration. ### Method GET ### Endpoint /.well-known/mcp/server-card.json ``` -------------------------------- ### GET /v2/events/:id Source: https://docs.supersend.io/docs/event Retrieves details for a specific event by its ID. ```APIDOC ## GET /v2/events/:id ### Description Retrieves the details of a specific event using its unique identifier. ### Method GET ### Endpoint /v2/events/:id ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the event. ``` -------------------------------- ### V1 Error Handling Example Source: https://docs.supersend.io/docs/v2-api Demonstrates the inconsistent error response formats found in the V1 API. ```javascript // Sometimes 200 with error in body { "error": "Campaign not found" } // Sometimes proper status // Status 404 { "success": false, "error": "Not found" } ``` -------------------------------- ### GET /v2/campaign-categories Source: https://docs.supersend.io/docs/campaign-category List all campaign categories (folders) for a specific team. ```APIDOC ## GET /v2/campaign-categories ### Description List all campaign categories (folders) for a team. ### Method GET ### Endpoint https://api.supersend.io/v2/campaign-categories ### Parameters #### Query Parameters - **teamId** (string (UUID)) - Required - Team ID to list categories for ### Response #### Success Response (200) - **success** (boolean) - Indicates success - **data** (array) - List of category objects - **pagination** (object) - Pagination details ``` -------------------------------- ### Resource Error: resource_not_found Source: https://docs.supersend.io/docs/error-handling Response when the requested resource does not exist. ```json { "error": { "type": "not_found_error", "code": "resource_not_found", "message": "Resource not found" } } ```