# generated: '2026-08-13' # method: searched # source: https://github.com/TriggerMail/bluecore-openapi-docs/blob/master/apis/transactional-api/transactional_api.yaml # ownership: TriggerMail is Bluecore's own GitHub org (org name "Bluecore", blog https://www.bluecore.com/); # info.title "Bluecore Transactional API"; servers https://api.bluecore.com/email/; rendered by Bluecore at # https://www.bluecore.com/transactional-api-docs/ (HTTP 200 2026-08-13). # note: LEGACY surface. Bluecore's own repo README states "we're going to be migrating away from this API (Q1 2025)". # Superseded by the developers.bluecore.com OAuth surface on https://a.bluecore.com/api. Saved verbatim; no operationIds # are declared in the published document and none were invented. openapi: 3.0.0 info: title: Bluecore Transactional API servers: - url: https://api.bluecore.com/email/ components: schemas: ConversationResponse: type: "object" properties: status: type: "string" description: "This is the status of the email message. Possible values: Being Processed, Sent for Delivery, Delivered, or Failed." enum: - "Being Processed" - "Sent for Delivery" - "Delivered, Failed" example: "Being Processed" message: type: "string" description: "The details of the failure. Possible values: Bounce, Block, Previously Bounced/Blocked, Email Content Conversation Failed." enum: - "Bounce" - "Block" - "Previously Bounced/Blocked" - "Email Content Generation Failed" example: "string" body: type: "object" properties: campaign_id: type: "string" description: "The Bluecore campaign identifier. This identifier can be obtained from the Bluecore UI campaigns page." example: "34545238545" email: type: "string" description: "The recipient's email address." example: "test@bluecore.com" template_attributes: type: "object" description: "A JSON formatted object containing data to be used in the Email template. " properties: template_variable_1: type: "string" description: "Example string value" example: "Some text here" template_variable_2: type: number description: "Example number value" example: 1234 html_variable: type: string description: "Example HTML content" example: "
html here
" customer_attributes: type: "object" description: "A JSON formatted object containing data to add to or update for the customer record." properties: customer_attribute_1: type: "string" description: "Example string value" example: "Some text here" customer_attribute_2: type: number description: "Example number value" example: 1234 use_draft: type: boolean description: "A flag indicating if the draft version of a campaign should be used.\nDefault: False." example: false product_ids: type: array items: type: "string" example: "3bs7705f6n3d2" description: | This parameter is currently in development and is not available for general use at this time. This will be available in a future release. List of product ids to be used as input products only if the campaign uses the co-recommendations product block. required: - campaign_id - email - template_attributes paths: /send/v1/{namespace}: post: summary: Send a Transactional or Real-Time Welcome Email description: " This section details how to send a transactional or real-time welcome email through Bluecore. \n\n**Returns**: Object containing the conversation ID used to track the message. (See **Responses > 202** below). " parameters: - in: path name: namespace description: The partner namespace in Bluecore. required: true schema: type: string - in: header name: Authorization Bearer description: The authorization token in the header. required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/body" responses: '200': content: application/json: schema: properties: conversation_id: type: string example: "3123245238545" description: "The Bluecore assigned conversation ID. This value can be used to track the status of the email message." description: Successful receipt of the request. tags: - SEND EMAIL /status/v1/{namespace}/{conversation_id}: get: summary: Get the Status of an Email Delivery Attempt description: " This section details how to get the status of an email delivery attempt. \n\n**Returns**: Object containing the status and details of the message. (See **Responses > 202** below). " parameters: - in: path name: namespace description: The partner namespace in Bluecore. required: true schema: type: string - in: path name: conversation_id description: The conversation ID. required: true schema: type: string - in: header name: Authorization Bearer description: The authorization token in the header. required: true schema: type: string responses: '202': description: Successful receipt of the request. content: application/json: schema: $ref: "#/components/schemas/ConversationResponse" tags: - GET STATUS tags: - description: "### Welcome to the Bluecore Transactional API \nUse this resource to integrate with Bluecore’s Transactional API to begin sending transactional and real-time welcome emails with Bluecore. \n\nBluecore recommends that a member of your IT team complete this setup, as it requires a highly technical skillset. This document covers the following areas: - **Authorization**: This section describes how to authenticate with the Transactional API. - **Send Email**: This section describes how to trigger transactional or real-time welcome emails for both tests and live sends. - **Get Status**: This section describes how to view the status of a previously-triggered transactional or real-time welcome email campaign. If a transactional or real-time welcome email is not received when testing, this API call can be used to troubleshoot. \n\n**NOTE**: You will need the previously provided API key to complete this setup. If you do not have an API key, please reach out to our Product Support team at| Email Type | Customer | Notes |
|---|---|---|
| Welcome | New | Customer attributes are acceptable in the payload and can be updated. Additionally, the new customer will end up in the customer entity in Bluecore. |
| Welcome | Existing | If Should Suppress Duplicate Welcome Emails (Bluecore Adaptor Integration Settings) is enabled, additional customer_attributes updates will be rejected by the API. If Should Suppress Duplicate Welcome Emails is disabled, customer attributes are acceptable in the payload and will be updated. |
| Transactional | New | Customer attributes will be rejected by the API. |
| Transactional | Existing | Customer attributes will be rejected by the API. |
| Code | Message | Description |
|---|---|---|
| 401 | Not authenticated or authorized. | API token is invalid. |
| 404 | Could not find campaign with id: provided-campaign-id for provided-namespace. | Returned if campaign_id is not an existing campaign. |
| 406 | Requested media type is not supported. | Only application/json requests are supported. |
| 422 | The request is missing the attribute email in the body. |
If any required field is missing in the request. Required fields are: campaign_id, email, and template_attributes. |
| 422 | The request is missing the attribute '____' in the body. | If template_attributes does not contain a key name that matches a variable that is expected in the email template. |
| 422 | Template attribute size exceeds the maximum allowed (819,200 bytes). | Payload was too large. |
| 500 | Unhandled exception. | Generic something went wrong error. |
| 500 | Function execution timed out. | Bluecore recommends retrying the request. See retry logic recommendations in API Limits. If the error persists, send a message to support@bluecore.com to create a support ticket and include the request_id located in the error response. |
| 502 | Internal error. | |
| 503 | Service unavailable. | |
| 504 | Gateway timeout. |