### Install the Go SDK Source: https://sendmux.ai/docs/sdks/go Use the go get command to add the Sendmux module to your project. ```bash go get sendmux.ai/go@v1.0.0 ``` -------------------------------- ### Verify CLI Installation Source: https://sendmux.ai/docs/cli Check the installed version and view available commands. ```bash sendmux --version sendmux --help ``` -------------------------------- ### Install Sendmux CLI Source: https://sendmux.ai/docs/cli Installation commands for Linux and macOS environments. ```bash sudo snap install sendmux ``` ```bash brew install sendmux/tap/sendmux ``` ```bash npm install -g @sendmux/cli ``` -------------------------------- ### Install Sendmux MCP package Source: https://sendmux.ai/docs/guides/mcp Install the required Python package from PyPI. ```bash pip install sendmux-mcp ``` -------------------------------- ### Install Sendmux SDK packages Source: https://sendmux.ai/docs/sdks/python Install the umbrella package for multiple surfaces or specific packages for individual API surfaces. ```bash pip install sendmux-sdk ``` ```bash pip install sendmux-sending ``` ```bash pip install sendmux-mailbox ``` ```bash pip install sendmux-management ``` -------------------------------- ### Install Sendmux Ruby SDK gems Source: https://sendmux.ai/docs/sdks/ruby Install the umbrella gem for multiple surfaces or individual gems for specific API access. ```bash gem install sendmux-sdk ``` ```bash gem install sendmux-sending ``` ```bash gem install sendmux-mailbox ``` ```bash gem install sendmux-management ``` -------------------------------- ### Batch get response structure Source: https://sendmux.ai/docs/mailbox-api/introduction Example JSON response returned by the batch-get endpoint. ```json { "ok": true, "data": { "messages": [ { "message": { "id": "msg_123", "thread_id": "thr_123", "subject": "Invoice question", "preview": "Can you resend the invoice?", "has_attachments": true }, "raw_body": null, "content": { "id": "msg_123", "thread_id": "thr_123", "subject": "Invoice question", "body": { "format": "text", "text": "Can you resend the invoice?", "html": null, "is_truncated": false, "truncated_at_chars": null, "signature_stripped": false, "quotes_stripped": false, "extracted_links": [] }, "attachments": [ { "id": "att_123", "filename": "invoice.pdf", "content_type": "application/pdf", "size_bytes": 12345, "disposition": "attachment", "content_id": null, "download_url": "/api/v1/mailbox/messages/msg_123/attachment-downloads/attref_abc123?download_token=..." } ] } } ], "not_found": [], "states": { "email_state": "state_token" } }, "meta": { "request_id": "req_clxxxxxxxxxxxxxxxxxxxxxxxxx" } } ``` -------------------------------- ### Initialize API Clients Source: https://sendmux.ai/docs/sdks/go Create clients for Sending, Mailbox, or Management surfaces using their respective factory functions and appropriate API keys. ```go package main import ( "log" "os" "sendmux.ai/go/sending" ) func main() { client, err := sending.New(os.Getenv("SENDMUX_MAILBOX_API_KEY")) if err != nil { log.Fatal(err) } _ = client } ``` ```go package main import ( "log" "os" "sendmux.ai/go/mailbox" ) func main() { client, err := mailbox.New(os.Getenv("SENDMUX_MAILBOX_API_KEY")) if err != nil { log.Fatal(err) } _ = client } ``` ```go package main import ( "log" "os" "sendmux.ai/go/management" ) func main() { client, err := management.New(os.Getenv("SENDMUX_ROOT_API_KEY")) if err != nil { log.Fatal(err) } _ = client } ``` -------------------------------- ### Create API Clients Source: https://sendmux.ai/docs/sdks/php Initialize API clients using the factory methods provided by each package, passing the appropriate API key. ```php - Returns custom-account capacity and shared Amazon SES daily sending limit state. operationId: managementGetProviderLimits responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProviderLimitsResponse' description: Limit state security: - bearerAuth: [] components: schemas: ProviderLimitsResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/ProviderLimits' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false SuccessEnvelope: properties: meta: additionalProperties: {} properties: {} type: object ok: enum: - true type: boolean required: - ok - meta type: object ProviderLimits: additionalProperties: false properties: sending_accounts: $ref: '#/components/schemas/ResourceLimitSnapshot' shared_amazon_ses: $ref: '#/components/schemas/SharedAmazonSesLimit' required: - sending_accounts - shared_amazon_ses type: object ResponseMeta: additionalProperties: false properties: request_id: example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string required: - request_id type: object ResourceLimitSnapshot: additionalProperties: false properties: can_request_increase: type: boolean is_at_limit: type: boolean is_near_limit: type: boolean max_allowed: exclusiveMinimum: 0 type: integer pending_request_id: type: - string - 'null' reserved: minimum: 0 type: integer resource_type: example: sending_accounts type: string threshold_usage: minimum: 0 type: integer usage: minimum: 0 type: integer usage_ratio: type: number required: - resource_type - usage - max_allowed - reserved - threshold_usage - usage_ratio - is_at_limit - is_near_limit - can_request_increase - pending_request_id type: object SharedAmazonSesLimit: additionalProperties: false properties: can_request_increase: type: boolean daily_limit: minimum: 0 type: - integer - 'null' is_near_limit: type: boolean pending_request_id: type: - string - 'null' provider_id: type: - string - 'null' sent_today: minimum: 0 type: integer threshold_usage: minimum: 0 type: - integer - 'null' usage_ratio: type: - number - 'null' required: - provider_id - daily_limit - sent_today - threshold_usage - usage_ratio - is_near_limit - can_request_increase - pending_request_id type: object securitySchemes: bearerAuth: bearerFormat: API Key description: >- Sendmux API key. Use a root API key for Management API routes, or a mailbox credential for Mailbox API routes. Obtain keys from the dashboard under API Keys. scheme: bearer type: http ``` -------------------------------- ### OpenAPI definition for Get a sending account Source: https://sendmux.ai/docs/api/sending-accounts/get-a-sending-account The OpenAPI specification for the GET /providers/{public_id} endpoint, including parameter definitions and response schemas. ```yaml openapi: 3.1.0 info: description: Programmatic access to your Sendmux email infrastructure. title: Sendmux API version: 1.0.0 servers: - description: API v1 url: https://app.sendmux.ai/api/v1 security: - bearerAuth: [] paths: /providers/{public_id}: get: tags: - Sending accounts summary: Get a sending account description: >- Returns one sending account. Responses include an ETag for conditional GET and optimistic PATCH. operationId: managementGetProvider parameters: - in: path name: public_id required: true schema: description: Sending account public ID example: dprov_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string - in: header name: If-None-Match required: false schema: description: Weak ETag from a previous response. Returns 304 when unchanged. type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProviderItemResponse' description: Sending account headers: ETag: description: Weak ETag. schema: example: W/"a1b2c3d4e5f60718" type: string '304': description: Not Modified '404': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Sending account not found security: - bearerAuth: [] components: schemas: ProviderItemResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/ProviderItem' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false ApiError: additionalProperties: false properties: error: additionalProperties: false properties: code: description: Machine-readable error code enum: - invalid_parameter - missing_parameter - authentication_required - insufficient_permissions - not_found - conflict - limit_exceeded - idempotency_conflict - payload_too_large - validation_error - rate_limit_exceeded - service_unavailable - internal_error example: invalid_parameter type: string doc_url: description: Link to relevant documentation type: string errors: description: >- Accumulated per-field issues for validation errors. Only present on 400/422 responses. items: $ref: '#/components/schemas/ApiErrorDetail' type: array message: description: Human-readable error description type: string param: description: The parameter that caused the error type: string retryable: description: >- Whether the caller may safely retry this request. 4xx are typically false (except 429); 5xx are typically true. example: false type: boolean required: - code - message - retryable type: object meta: additionalProperties: false properties: request_id: example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string required: - request_id type: object ok: enum: - false type: boolean required: - ok - error - meta type: object SuccessEnvelope: properties: meta: additionalProperties: {} properties: {} type: object ok: enum: - true type: boolean required: - ok - meta type: object ProviderItem: additionalProperties: false properties: allowed_actions: $ref: '#/components/schemas/ProviderAllowedActions' created_at: ``` -------------------------------- ### Execute CLI Commands Source: https://sendmux.ai/docs/cli Examples of sending, mailbox, and management commands using the Sendmux CLI. ```bash sendmux sending:send \ --profile mailbox \ --body '{"from":{"email":"sender@example.com"},"to":{"email":"recipient@example.com"},"subject":"Hello","text_body":"Sent with the Sendmux CLI"}' \ --idempotency-key send-cli-001 ``` ```bash sendmux mailbox:messages:list \ --profile mailbox \ --query limit=25 ``` ```bash sendmux management:mailboxes:list \ --profile management \ --query limit=25 ``` -------------------------------- ### OpenAPI definition for Get quota changes Source: https://sendmux.ai/docs/api/mailbox-api/get-quota-changes Defines the GET /mailbox/quotas/changes endpoint, including parameters for sync state, pagination, and mailbox targeting. ```yaml openapi: 3.1.0 info: description: Programmatic access to your Sendmux email infrastructure. title: Sendmux API version: 1.0.0 servers: - description: API v1 url: https://app.sendmux.ai/api/v1 security: - bearerAuth: [] paths: /mailbox/quotas/changes: get: tags: - Mailbox API summary: Get quota changes description: >- Returns quota changes since a prior quota state, or the current quota state when omitted. operationId: mailboxGetQuotaChanges parameters: - in: query name: since_state required: false schema: type: string - in: query name: limit required: false schema: maximum: 500 minimum: 1 type: integer - description: >- Mailbox public ID to target when the credential grants access to more than one mailbox. Omit when the credential is scoped to exactly one mailbox. in: query name: mailbox_id required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailboxChangesResponse' description: Quota changes '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid sync state security: - bearerAuth: [] components: schemas: MailboxChangesResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/MailboxChanges' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false ApiError: additionalProperties: false properties: error: additionalProperties: false properties: code: description: Machine-readable error code enum: - invalid_parameter - missing_parameter - authentication_required - insufficient_permissions - not_found - conflict - limit_exceeded - idempotency_conflict - payload_too_large - validation_error - rate_limit_exceeded - service_unavailable - internal_error example: invalid_parameter type: string doc_url: description: Link to relevant documentation type: string errors: description: >- Accumulated per-field issues for validation errors. Only present on 400/422 responses. items: $ref: '#/components/schemas/ApiErrorDetail' type: array message: description: Human-readable error description type: string param: description: The parameter that caused the error type: string retryable: description: >- Whether the caller may safely retry this request. 4xx are typically false (except 429); 5xx are typically true. example: false type: boolean required: - code - message - retryable type: object meta: additionalProperties: false properties: request_id: example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string required: - request_id type: object ok: enum: - false type: boolean required: - ok - error - meta type: object SuccessEnvelope: properties: meta: additionalProperties: {} properties: {} type: object ok: enum: - true type: boolean required: - ok - meta type: object MailboxChanges: additionalProperties: false properties: created: items: type: string type: array destroyed: items: type: string type: array has_more: type: boolean ``` -------------------------------- ### create_management_client Source: https://sendmux.ai/docs/sdks/python Initializes a client for the Management API surface. ```APIDOC ## management.create_management_client ### Description Creates a client to interact with the Management API surface. Requires a team-scoped `smx_root_` key. ### Parameters - **api_key** (string) - Required - The API key used for authentication. ### Example ```python from sendmux_sdk import management client = management.create_management_client(api_key="smx_root_...") ``` ``` -------------------------------- ### OpenAPI specification for Get mailbox sender identity Source: https://sendmux.ai/docs/api/mailbox-api/get-mailbox-sender-identity Defines the GET /mailbox/identity endpoint, including parameters, security requirements, and response schemas. ```yaml openapi: 3.1.0 info: description: Programmatic access to your Sendmux email infrastructure. title: Sendmux API version: 1.0.0 servers: - description: API v1 url: https://app.sendmux.ai/api/v1 security: - bearerAuth: [] paths: /mailbox/identity: get: tags: - Mailbox API summary: Get mailbox sender identity description: >- Returns the default sender identity and signatures for the authenticated mailbox. operationId: mailboxGetIdentity parameters: - description: >- Mailbox public ID to target when the credential grants access to more than one mailbox. Omit when the credential is scoped to exactly one mailbox. in: query name: mailbox_id required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailboxIdentityResponse' description: Mailbox sender identity '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Authentication required '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Mailbox API key required '503': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Mailbox service unavailable security: - bearerAuth: [] components: schemas: MailboxIdentityResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/MailboxIdentity' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false ApiError: additionalProperties: false properties: error: additionalProperties: false properties: code: description: Machine-readable error code enum: - invalid_parameter - missing_parameter - authentication_required - insufficient_permissions - not_found - conflict - limit_exceeded - idempotency_conflict - payload_too_large - validation_error - rate_limit_exceeded - service_unavailable - internal_error example: invalid_parameter type: string doc_url: description: Link to relevant documentation type: string errors: description: >- Accumulated per-field issues for validation errors. Only present on 400/422 responses. items: $ref: '#/components/schemas/ApiErrorDetail' type: array message: description: Human-readable error description type: string param: description: The parameter that caused the error type: string retryable: description: >- Whether the caller may safely retry this request. 4xx are typically false (except 429); 5xx are typically true. example: false type: boolean required: - code - message - retryable type: object meta: additionalProperties: false properties: request_id: example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string required: - request_id type: object ok: enum: - false type: boolean required: - ok - error - meta type: object SuccessEnvelope: properties: meta: additionalProperties: {} properties: {} type: object ok: enum: - true type: boolean required: - ok - meta type: object MailboxIdentity: additionalProperties: false properties: bcc: items: $ref: '#/components/schemas/MailboxAddress' type: array ``` -------------------------------- ### Configure Request Headers Source: https://sendmux.ai/docs/sdks/go Use surface-specific helpers to generate Idempotency-Key, If-Match, and If-None-Match headers for API operations. ```go idempotencyKey := sending.IdempotencyKey("order-123") ifMatch := sending.IfMatch(etag) ifNoneMatch := sending.IfNoneMatch(etag) _, _, _ = idempotencyKey, ifMatch, ifNoneMatch ``` -------------------------------- ### Get a mailbox message OpenAPI definition Source: https://sendmux.ai/docs/api/mailbox-api/get-a-mailbox-message The OpenAPI specification for the GET /mailbox/messages/{message_id} endpoint, including parameter definitions and response schemas. ```yaml openapi: 3.1.0 info: description: Programmatic access to your Sendmux email infrastructure. title: Sendmux API version: 1.0.0 servers: - description: API v1 url: https://app.sendmux.ai/api/v1 security: - bearerAuth: [] paths: /mailbox/messages/{message_id}: get: tags: - Mailbox API summary: Get a mailbox message description: >- Returns one message from the authenticated mailbox. Responses include a weak `ETag` header. When attachment metadata includes short-lived download URLs, a conditional request may return `200` even when the stable message ETag matches so the response can renew expired URLs. operationId: mailboxGetMessage parameters: - in: path name: message_id required: true schema: description: Message ID. type: string - in: header name: If-None-Match required: false schema: description: Weak ETag from a previous response. Returns 304 when unchanged. type: string - description: >- Mailbox public ID to target when the credential grants access to more than one mailbox. Omit when the credential is scoped to exactly one mailbox. in: query name: mailbox_id required: false schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailboxMessageDetailResponse' description: Message '304': description: Not modified '404': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Message not found security: - bearerAuth: [] components: schemas: MailboxMessageDetailResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/MailboxMessage' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false ApiError: additionalProperties: false properties: error: additionalProperties: false properties: code: description: Machine-readable error code enum: - invalid_parameter - missing_parameter - authentication_required - insufficient_permissions - not_found - conflict - limit_exceeded - idempotency_conflict - payload_too_large - validation_error - rate_limit_exceeded - service_unavailable - internal_error example: invalid_parameter type: string doc_url: description: Link to relevant documentation type: string errors: description: >- Accumulated per-field issues for validation errors. Only present on 400/422 responses. items: $ref: '#/components/schemas/ApiErrorDetail' type: array message: description: Human-readable error description type: string param: description: The parameter that caused the error type: string retryable: description: >- Whether the caller may safely retry this request. 4xx are typically false (except 429); 5xx are typically true. example: false type: boolean required: - code - message - retryable type: object meta: additionalProperties: false properties: request_id: example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string required: - request_id type: object ok: enum: - false type: boolean required: - ok - error - meta type: object SuccessEnvelope: ``` -------------------------------- ### Create Mailbox with File Input Source: https://sendmux.ai/docs/cli Use the --body-file flag to provide a JSON request body from a local file. ```bash sendmux management:create-mailbox \ --profile management \ --body-file ./mailbox.json \ --idempotency-key create-mailbox-001 ``` -------------------------------- ### OpenAPI definition for Get spend summary Source: https://sendmux.ai/docs/api/billing/get-spend-summary Defines the GET /billing/summary endpoint, including the optional days query parameter and the structure of the SpendSummaryResponse. ```yaml openapi: 3.1.0 info: description: Programmatic access to your Sendmux email infrastructure. title: Sendmux API version: 1.0.0 servers: - description: API v1 url: https://app.sendmux.ai/api/v1 security: - bearerAuth: [] paths: /billing/summary: get: tags: - Billing summary: Get spend summary description: Returns a spend summary over a configurable lookback period. operationId: managementGetSpendSummary parameters: - in: query name: days required: false schema: description: 'Lookback period in days (default: 30)' enum: - '7' - '30' - '90' type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SpendSummaryResponse' description: Spend summary '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Authentication required '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Insufficient permissions security: - bearerAuth: [] components: schemas: SpendSummaryResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/SpendSummary' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false ApiError: additionalProperties: false properties: error: additionalProperties: false properties: code: description: Machine-readable error code enum: - invalid_parameter - missing_parameter - authentication_required - insufficient_permissions - not_found - conflict - limit_exceeded - idempotency_conflict - payload_too_large - validation_error - rate_limit_exceeded - service_unavailable - internal_error example: invalid_parameter type: string doc_url: description: Link to relevant documentation type: string errors: description: >- Accumulated per-field issues for validation errors. Only present on 400/422 responses. items: $ref: '#/components/schemas/ApiErrorDetail' type: array message: description: Human-readable error description type: string param: description: The parameter that caused the error type: string retryable: description: >- Whether the caller may safely retry this request. 4xx are typically false (except 429); 5xx are typically true. example: false type: boolean required: - code - message - retryable type: object meta: additionalProperties: false properties: request_id: example: req_clxxxxxxxxxxxxxxxxxxxxxxxxx type: string required: - request_id type: object ok: enum: - false type: boolean required: - ok - error - meta type: object SuccessEnvelope: properties: meta: additionalProperties: {} properties: {} type: object ok: enum: - true type: boolean required: - ok - meta type: object SpendSummary: additionalProperties: false properties: currency: enum: - USD type: string period_days: example: 30 type: number total_consumed: example: '54.770000' type: string total_purchased: example: '150.000000' type: string transaction_count: example: 23 type: number required: - period_days - total_purchased - total_consumed ``` -------------------------------- ### Initialize Sendmux API clients Source: https://sendmux.ai/docs/sdks/ruby Create clients for different API surfaces using the umbrella gem helpers. ```ruby require 'sendmux/sdk' client = Sendmux::SDK.sending( api_key: ENV.fetch('SENDMUX_MAILBOX_API_KEY') ) ``` ```ruby require 'sendmux/sdk' client = Sendmux::SDK.mailbox( api_key: ENV.fetch('SENDMUX_MAILBOX_API_KEY') ) ``` ```ruby require 'sendmux/sdk' client = Sendmux::SDK.management( api_key: ENV.fetch('SENDMUX_ROOT_API_KEY') ) ``` -------------------------------- ### OpenAPI Specification for Get Mailbox Source: https://sendmux.ai/docs/api/mailboxes/get-a-mailbox Defines the GET /mailboxes/{public_id} endpoint, including path parameters, security requirements, and ETag header handling. ```yaml openapi: 3.1.0 info: description: Programmatic access to your Sendmux email infrastructure. title: Sendmux API version: 1.0.0 servers: - description: API v1 url: https://app.sendmux.ai/api/v1 security: - bearerAuth: [] paths: /mailboxes/{public_id}: get: tags: - Mailboxes summary: Get a mailbox description: >- Returns a single mailbox, tenant-scoped to the caller's team. Responses carry a weak `ETag` header — send it back as `If-None-Match` on the next request and the server will return `304 Not Modified` (no body) when the resource has not changed. The same ETag is the value to use in `If-Match` on PATCH for optimistic concurrency. operationId: managementGetMailbox parameters: - in: path name: public_id required: true schema: description: Mailbox public ID type: string - in: header name: If-None-Match required: false schema: description: Weak ETag from a previous response. Returns 304 when unchanged. type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/MailboxItemResponse' description: Mailbox headers: ETag: description: >- Weak ETag for conditional GETs and optimistic-concurrency PATCHes. schema: example: W/"a1b2c3d4e5f60718" type: string '304': description: >- Not Modified — the client's cached copy (matching `If-None-Match`) is still current. headers: ETag: description: Current weak ETag (same as request's `If-None-Match`). schema: type: string '404': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Mailbox not found security: - bearerAuth: [] components: schemas: MailboxItemResponse: allOf: - $ref: '#/components/schemas/SuccessEnvelope' - properties: data: $ref: '#/components/schemas/Mailbox' meta: $ref: '#/components/schemas/ResponseMeta' required: - data type: object unevaluatedProperties: false ApiError: additionalProperties: false properties: error: additionalProperties: false properties: code: description: Machine-readable error code enum: - invalid_parameter - missing_parameter - authentication_required - insufficient_permissions - not_found - conflict - limit_exceeded - idempotency_conflict - payload_too_large - validation_error - rate_limit_exceeded - service_unavailable - internal_error example: invalid_parameter type: string doc_url: description: Link to relevant documentation type: string errors: description: >- Accumulated per-field issues for validation errors. Only present on 400/422 responses. items: $ref: '#/components/schemas/ApiErrorDetail' type: array message: description: Human-readable error description type: string param: description: The parameter that caused the error type: string retryable: description: >- Whether the caller may safely retry this request. 4xx are typically false (except 429); 5xx are typically true. example: false type: boolean required: - code - message - retryable type: object meta: additionalProperties: false properties: request_id: ``` -------------------------------- ### Install Sendmux skills Source: https://sendmux.ai/docs/guides/agent-access Use this command to add the Sendmux skill pack to your agent if it supports skills. ```bash npx skills add Sendmux/skills ```