SendPulse Configuration API

The Configuration API from SendPulse — 9 operation(s) for configuration.

Operations 9

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /sms/senders List SMS sender IDs · Get list of sender IDs #
Ask an LLM
“Which SMS sender IDs are registered on my account?”
“What sender names can I use for text messages?”
Tell an agent
List my SMS sender IDs.
Show the sender names available for SMS.
GET /smtp/ips List the IP addresses used to send email · Get a list of sender’s IP addresses #
Ask an LLM
“Which IP addresses does my transactional email go out from?”
“Can I see the sending IPs assigned to my SMTP account?”
Tell an agent
List my SMTP sending IP addresses.
Show the IPs my email is sent from.
GET /smtp/senders List sender email addresses · Get a list of sender’s email addresses #
Ask an LLM
“Which sender email addresses are set up on my account?”
“What from-addresses can I use for SMTP email?”
Tell an agent
List my sender email addresses.
Show the from-addresses configured for SMTP.
GET /v2/email-service/smtp/sender_domains List allowed sender domains for SMTP · Get a list of allowed domains #
Ask an LLM
“Which domains am I allowed to send SMTP email from?”
“Has my sending domain been added to the allowed list?”
Tell an agent
List my allowed SMTP sender domains.
Show which domains are approved for sending email.
POST /senders Add a sender email address · Add a sender email #
Ask an LLM
“How do I add a new from-address for sending email?”
“Can I register a sender email with a display name?”
Tell an agent
Add sender {email} with the name {name}.
Register {email} as a new sending address labelled {name}.
POST /v2/email-service/smtp/sender_domains/{domain} Add an allowed sender domain for SMTP · Add a domain #
Ask an LLM
“Can I add my own domain so I can send SMTP email from it?”
“What's the way to allow a new sending domain?”
Tell an agent
Add {domain} as an allowed SMTP sender domain.
Allow email sending from domain {domain}.
GET /viber/senders List Viber sender names · Get a list of sender names #
Ask an LLM
“Which Viber sender names do I have?”
“What sender profiles are available for Viber campaigns?”
Tell an agent
List my Viber sender names.
Show the Viber senders on my account.
GET /viber/senders/{id} Get a Viber sender name's profile · Get a sender name profile #
Ask an LLM
“Can I see the details of one Viber sender name?”
“What status is my Viber sender profile in?”
Tell an agent
Show the profile of Viber sender {id}.
Get details for Viber sender name {id}.
GET /push/websites/{id}/code Get the web push JS code for a website · Get JS code for a website #
Ask an LLM
“Where do I get the JavaScript snippet to enable push notifications on my site?”
“Can I retrieve the push integration code for one website?”
Tell an agent
Get the web push JS code for website {id}.
Give me the push subscription snippet to install on site {id}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/sendpulse:sendpulse-configuration-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

sendpulse-configuration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sendpulse Configuration API
  version: 1.0.0
  license:
    name: Apache 2.0
    identifier: Apache-2.0
  x-refined-note:
  - x-ai-description differs across the merged source definitions and was not carried
  description: 'Operations tagged Configuration across 4 of this provider''s published API definitions: sendpulse-sms-openapi.yml, sendpulse-smtp-openapi.yml, sendpulse-viber-openapi.yml, sendpulse-web-push-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.sendpulse.com
security:
- apiKey: []
- oauth2: []
tags:
- name: Configuration
paths:
  /sms/senders:
    get:
      summary: Get list of sender IDs
      operationId: getSmsSenders
      tags:
      - Configuration
      x-ai-role: sms_marketing_specialist
      x-ai-description: 'Retrieves all approved Alphanumeric Sender IDs.  Only IDs with status ''Active'' (1) can be used for campaigns.

        '
      x-ai-reasoning-instructions:
      - 'Check `status` (0: Moderation, 1: Active, 2: Rejected).'
      x-ai-responding-instructions:
      - Present the list of available sender identities.
      x-ai-suggestions:
      - If a sender is 'On moderation', wait before scheduling campaigns.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: Sender ID list
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    sender:
                      type: string
                    country:
                      type: string
                    status:
                      type: integer
                    status_explain:
                      type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /smtp/ips:
    get:
      summary: Get a list of sender’s IP addresses
      operationId: getSmtpIps
      tags:
      - Configuration
      x-ai-role: email_deliverability_expert
      x-ai-description: 'Lists the outbound IP addresses used by the SendPulse SMTP relay.  Essential for customers who need to whitelist specific IPs in their firewalls.

        '
      x-ai-reasoning-instructions:
      - Compare these IPs against any known blacklists if delivery drops.
      x-ai-responding-instructions:
      - Provide the list of active IP addresses.
      x-ai-suggestions:
      - Advise the user to add these to their allowed network configurations.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: List of IP addresses
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /smtp/senders:
    get:
      summary: Get a list of sender’s email addresses
      operationId: getSmtpSenders
      tags:
      - Configuration
      x-ai-role: email_deliverability_expert
      x-ai-description: 'Retrieves all verified email addresses authorized for sending.  Only these addresses can be used in the `from` field of the send request.

        '
      x-ai-reasoning-instructions:
      - Ensure the user is selecting a valid, already verified sender.
      x-ai-responding-instructions:
      - List all available sender identities.
      x-ai-suggestions:
      - If the desired email is missing, use `addSmtpSender` to add it.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: List of sender emails
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /v2/email-service/smtp/sender_domains:
    get:
      summary: Get a list of allowed domains
      operationId: getSmtpAllowedDomains
      tags:
      - Configuration
      x-ai-role: email_deliverability_expert
      x-ai-description: 'Lists domains configured for authenticated sending.  Includes SPF/DKIM validation status which is critical for inbox placement.

        '
      x-ai-reasoning-instructions:
      - Check `checks.all_checks` to see if the domain is fully authenticated.
      - Identify missing DNS records like SPF or DKIM.
      x-ai-responding-instructions:
      - Summarize the authentication health of the sending domains.
      - Highlight any domains requiring DNS configuration.
      x-ai-suggestions:
      - If `check_dkim` is false, provide the required records to the user.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: Domain list with authentication status
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      result:
                        type: boolean
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/DomainRecord'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /senders:
    post:
      summary: Add a sender email
      operationId: addSmtpSender
      tags:
      - Configuration
      x-ai-role: email_deliverability_expert
      x-ai-description: 'Registers a new email address as an authorized sender.  Triggers a verification process to ensure ownership and authorization.

        '
      x-ai-reasoning-instructions:
      - Verify that the domain of the email address is also authorized.
      x-ai-responding-instructions:
      - Confirm the sender has been added and advise the user to check their inbox for verification.
      x-ai-suggestions:
      - Use business domains rather than free providers (gmail.com) for better deliverability.
      x-ai-capabilities:
        confirmation:
          type: Required
        security_info:
          data_handling:
          - ResourceStateUpdate
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              - name
              properties:
                email:
                  type: string
                name:
                  type: string
      responses:
        '200':
          description: Sender added successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  result:
                    type: boolean
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              examples:
                email.required:
                  summary: email.required
                  value:
                    message: Argument email missing
                    error_code: 422
                email.invalid:
                  summary: email.invalid
                  value:
                    message: Argument email is invalid
                    error_code: 422
                email.dmarc_error:
                  summary: email.dmarc_error
                  value:
                    message: DMARC policy error. Please, use another sender domain.
                    error_code: 422
                name.required:
                  summary: name.required
                  value:
                    message: Argument name missing
                    error_code: 422
                name.invalid:
                  summary: name.invalid
                  value:
                    message: Argument name is invalid
                    error_code: 422
                email.exists:
                  summary: email.exists
                  value:
                    message: Email already in use
                    error_code: 902
                email.blacklisted:
                  summary: email.blacklisted
                  value:
                    message: This email in blacklist
                    error_code: 904
    servers:
    - url: https://api.sendpulse.com
  /v2/email-service/smtp/sender_domains/{domain}:
    parameters:
    - name: domain
      in: path
      required: true
      schema:
        type: string
    post:
      summary: Add a domain
      operationId: addSmtpDomain
      tags:
      - Configuration
      parameters: []
      x-ai-role: email_deliverability_expert
      x-ai-description: 'Adds a root domain for white-labeling and professional sender authentication.  Crucial for achieving 100% DKIM alignment.

        '
      x-ai-reasoning-instructions:
      - Check if the domain is already present to avoid duplication.
      x-ai-responding-instructions:
      - Confirm the domain has been added and list the required DNS records for authentication.
      x-ai-suggestions:
      - Suggest adding SPF, DKIM, and DMARC records immediately.
      x-ai-capabilities:
        confirmation:
          type: Required
        security_info:
          data_handling:
          - ResourceStateUpdate
      responses:
        '200':
          description: Domain added
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      result:
                        type: boolean
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /viber/senders:
    get:
      summary: Get a list of sender names
      operationId: getViberSenders
      tags:
      - Configuration
      x-ai-role: customer_engagement_specialist
      x-ai-description: 'Retrieves all registered and approved Viber sender names (Sender IDs).  Only names with ''verified'' status can be used.

        '
      x-ai-reasoning-instructions:
      - Check `status` to ensure the name is ready for use.
      x-ai-responding-instructions:
      - List available verified sender identities.
      x-ai-suggestions:
      - If status is 'pending', check the `admin_comment` for feedback.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: Sender list
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ViberSender'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /viber/senders/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: integer
    get:
      summary: Get a sender name profile
      operationId: getViberSenderProfile
      tags:
      - Configuration
      parameters: []
      x-ai-role: customer_engagement_specialist
      x-ai-description: 'Retrieves the detailed configuration and status for a specific Viber sender ID.

        '
      x-ai-responding-instructions:
      - State the current verification status and administrative feedback.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: Sender profile
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ViberSender'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
  /push/websites/{id}/code:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: integer
    get:
      summary: Get JS code for a website
      operationId: getWebPushCode
      tags:
      - Configuration
      parameters: []
      x-ai-role: web_engagement_specialist
      x-ai-description: 'Retrieves the specific JavaScript snippet required to enable web push  functionality on the target website. This script handles the permission  prompt and subscriber token generation.

        '
      x-ai-responding-instructions:
      - Provide the `script_code` and instruct the user to place it before the `</head>` tag.
      x-ai-capabilities:
        confirmation:
          type: None
      responses:
        '200':
          description: Integration code
          content:
            application/json:
              schema:
                type: object
                properties:
                  script_url:
                    type: string
                  script_code:
                    type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
    servers:
    - url: https://api.sendpulse.com
components:
  schemas:
    Error:
      type: object
      properties:
        message:
          type: string
        error_code:
          type: integer
    DomainRecord:
      type: object
      properties:
        id:
          type: integer
        user_id:
          type: integer
        service_type:
          type: integer
        service_value:
          type: string
        status:
          type: integer
          description: 0 - inactive, 1 - active
        is_default:
          type: boolean
        ssl_type:
          type: integer
        checks:
          type: object
          properties:
            check_dkim:
              type: boolean
            check_spf:
              type: boolean
            check_dmarc:
              type: boolean
            all_checks:
              type: boolean
            spf_txt_needed:
              type: string
    ViberSender:
      type: object
      properties:
        id:
          type: integer
        status:
          type: string
        name:
          type: string
        service_type:
          type: string
        web_site:
          type: string
        description:
          type: string
        country:
          type: string
        traffic_type:
          type: string
        admin_comment:
          type:
          - string
          - 'null'
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      bearerFormat: API Key
      description: 'Static API Key authentication.  A long-lived token generated manually in the SendPulse account settings.

        '
      x-ai-description: 'Permanent authentication token. Ideal for simple integrations without token refresh logic.

        '
    oauth2:
      type: oauth2
      description: OAuth 2.0 Client Credentials flow for temporary access tokens.
      flows:
        clientCredentials:
          tokenUrl: https://api.sendpulse.com/oauth/access_token
          scopes: {}
      x-ai-description: 'Standard OAuth 2.0 flow using Client ID and Client Secret.  Provides temporary tokens (valid for 1 hour) for enhanced security.

        '
x-refined-from:
- sendpulse-sms-openapi.yml
- sendpulse-smtp-openapi.yml
- sendpulse-viber-openapi.yml
- sendpulse-web-push-openapi.yml