Silverpop Contacts API

Contact (recipient) list management

OpenAPI Specification

silverpop-contacts-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Silverpop Engage API (Acoustic Campaign) Authentication Contacts API
  description: The Silverpop Engage API, now provided as Acoustic Campaign (formerly IBM Watson Campaign Automation), enables digital marketers to manage contact lists, execute email campaigns, send transactional messages, and track engagement through a REST and XML-based interface.
  version: '1.0'
  contact:
    name: Acoustic Developer Support
    url: https://developer.goacoustic.com
  termsOfService: https://www.goacoustic.com/terms-of-use
servers:
- url: https://api-campaign-us-1.goacoustic.com
  description: US Production
- url: https://api-campaign-eu-1.goacoustic.com
  description: EU Production
security:
- BearerAuth: []
tags:
- name: Contacts
  description: Contact (recipient) list management
paths:
  /rest/databases:
    get:
      operationId: listDatabases
      summary: List Databases
      description: Retrieve all contact databases (lists) in the account.
      tags:
      - Contacts
      responses:
        '200':
          description: List of databases
          content:
            application/json:
              schema:
                type: object
                properties:
                  databases:
                    type: array
                    items:
                      $ref: '#/components/schemas/Database'
        '401':
          description: Unauthorized
  /rest/databases/{database_id}/contacts:
    get:
      operationId: listContacts
      summary: List Contacts
      description: Retrieve contacts from a specific database with optional filtering.
      tags:
      - Contacts
      parameters:
      - name: database_id
        in: path
        required: true
        schema:
          type: string
        description: Contact database identifier
      - name: count
        in: query
        schema:
          type: integer
          default: 100
          maximum: 1000
        description: Number of contacts to return
      - name: offset
        in: query
        schema:
          type: integer
          default: 0
        description: Pagination offset
      responses:
        '200':
          description: List of contacts
          content:
            application/json:
              schema:
                type: object
                properties:
                  contacts:
                    type: array
                    items:
                      $ref: '#/components/schemas/Contact'
                  total_count:
                    type: integer
    post:
      operationId: addContact
      summary: Add Contact
      description: Add a new contact to a specific database.
      tags:
      - Contacts
      parameters:
      - name: database_id
        in: path
        required: true
        schema:
          type: string
        description: Contact database identifier
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactInput'
      responses:
        '200':
          description: Contact added
          content:
            application/json:
              schema:
                type: object
                properties:
                  contact_id:
                    type: string
        '400':
          description: Invalid contact data
  /rest/databases/{database_id}/contacts/{contact_id}:
    get:
      operationId: getContact
      summary: Get Contact
      description: Retrieve a specific contact's details from a database.
      tags:
      - Contacts
      parameters:
      - name: database_id
        in: path
        required: true
        schema:
          type: string
      - name: contact_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '404':
          description: Contact not found
    put:
      operationId: updateContact
      summary: Update Contact
      description: Update an existing contact's attributes in a database.
      tags:
      - Contacts
      parameters:
      - name: database_id
        in: path
        required: true
        schema:
          type: string
      - name: contact_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactInput'
      responses:
        '200':
          description: Contact updated
    delete:
      operationId: removeContact
      summary: Remove Contact
      description: Remove (opt-out) a contact from a database.
      tags:
      - Contacts
      parameters:
      - name: database_id
        in: path
        required: true
        schema:
          type: string
      - name: contact_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Contact removed
components:
  schemas:
    Database:
      type: object
      properties:
        id:
          type: string
          description: Database identifier
        name:
          type: string
          description: Database name
        type:
          type: string
          enum:
          - database
          - query
          - relational_table
        contact_count:
          type: integer
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
    ContactInput:
      type: object
      required:
      - email
      properties:
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        custom_fields:
          type: object
          additionalProperties: true
    Contact:
      type: object
      properties:
        id:
          type: string
          description: Contact identifier
        email:
          type: string
          format: email
        first_name:
          type: string
        last_name:
          type: string
        opt_in_status:
          type: string
          enum:
          - opted_in
          - opted_out
          - pending
        custom_fields:
          type: object
          additionalProperties: true
          description: Custom field key-value pairs
        created:
          type: string
          format: date-time
        modified:
          type: string
          format: date-time
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth 2.0 access token. Obtain via POST /oauth/token.
externalDocs:
  description: Acoustic Campaign API Documentation
  url: https://developer.goacoustic.com/acoustic-campaign/reference/overview