messagebird Contacts API

Operations for managing individual contacts.

OpenAPI Specification

messagebird-contacts-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: MessageBird Balance Available Numbers Contacts API
  description: The MessageBird Balance API provides developers with access to their account balance information. It returns the current payment type, available amount, and currency for the account associated with the API key. This API is useful for monitoring credit usage, building billing dashboards, and setting up automated alerts when account balances fall below a threshold.
  version: '1.0'
  contact:
    name: MessageBird Support
    url: https://support.messagebird.com
  termsOfService: https://www.messagebird.com/en/terms
servers:
- url: https://rest.messagebird.com
  description: Production Server
security:
- accessKey: []
tags:
- name: Contacts
  description: Operations for managing individual contacts.
paths:
  /contacts:
    get:
      operationId: listContacts
      summary: List contacts
      description: Retrieves a paginated list of all contacts in the address book.
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: A list of contacts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactList'
        '401':
          description: Unauthorized
    post:
      operationId: createContact
      summary: Create a contact
      description: Creates a new contact in the address book with the specified phone number and optional details.
      tags:
      - Contacts
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactCreate'
      responses:
        '201':
          description: Contact created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable entity
  /contacts/{contactId}:
    get:
      operationId: viewContact
      summary: View a contact
      description: Retrieves the details of a specific contact by its unique identifier.
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/contactIdParam'
      responses:
        '200':
          description: Contact details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '401':
          description: Unauthorized
        '404':
          description: Contact not found
    patch:
      operationId: updateContact
      summary: Update a contact
      description: Updates an existing contact with the provided fields.
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/contactIdParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactUpdate'
      responses:
        '200':
          description: Contact updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Contact'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Contact not found
    delete:
      operationId: deleteContact
      summary: Delete a contact
      description: Deletes a contact from the address book by its unique identifier.
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/contactIdParam'
      responses:
        '204':
          description: Contact deleted
        '401':
          description: Unauthorized
        '404':
          description: Contact not found
  /contacts/{contactId}/messages:
    get:
      operationId: listContactMessages
      summary: List messages for a contact
      description: Retrieves all messages associated with a specific contact.
      tags:
      - Contacts
      parameters:
      - $ref: '#/components/parameters/contactIdParam'
      - $ref: '#/components/parameters/offsetParam'
      - $ref: '#/components/parameters/limitParam'
      responses:
        '200':
          description: A list of messages
          content:
            application/json:
              schema:
                type: object
                properties:
                  offset:
                    type: integer
                  limit:
                    type: integer
                  count:
                    type: integer
                  totalCount:
                    type: integer
                  items:
                    type: array
                    items:
                      type: object
        '401':
          description: Unauthorized
        '404':
          description: Contact not found
components:
  parameters:
    limitParam:
      name: limit
      in: query
      required: false
      description: The maximum number of items to return.
      schema:
        type: integer
        default: 20
    contactIdParam:
      name: contactId
      in: path
      required: true
      description: The unique identifier of the contact.
      schema:
        type: string
    offsetParam:
      name: offset
      in: query
      required: false
      description: The number of items to skip.
      schema:
        type: integer
        default: 0
  schemas:
    ContactCreate:
      type: object
      required:
      - msisdn
      properties:
        msisdn:
          type: string
          description: The phone number of the contact in international format.
        firstName:
          type: string
          description: The first name of the contact.
        lastName:
          type: string
          description: The last name of the contact.
        custom1:
          type: string
          description: Custom field 1.
        custom2:
          type: string
          description: Custom field 2.
        custom3:
          type: string
          description: Custom field 3.
        custom4:
          type: string
          description: Custom field 4.
    ContactList:
      type: object
      properties:
        offset:
          type: integer
          description: The offset of the result set.
        limit:
          type: integer
          description: The limit applied to the result set.
        count:
          type: integer
          description: The number of items returned.
        totalCount:
          type: integer
          description: The total number of contacts.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Contact'
    Contact:
      type: object
      properties:
        id:
          type: string
          description: The unique identifier of the contact.
        href:
          type: string
          format: uri
          description: The URL of the contact resource.
        msisdn:
          type: string
          description: The phone number of the contact.
        firstName:
          type: string
          description: The first name of the contact.
        lastName:
          type: string
          description: The last name of the contact.
        custom1:
          type: string
          description: Custom field 1.
        custom2:
          type: string
          description: Custom field 2.
        custom3:
          type: string
          description: Custom field 3.
        custom4:
          type: string
          description: Custom field 4.
        groups:
          type: object
          description: Links to the groups the contact belongs to.
          properties:
            href:
              type: string
              format: uri
            totalCount:
              type: integer
        messages:
          type: object
          description: Links to messages associated with the contact.
          properties:
            href:
              type: string
              format: uri
            totalCount:
              type: integer
        createdDatetime:
          type: string
          format: date-time
          description: The date and time when the contact was created.
        updatedDatetime:
          type: string
          format: date-time
          description: The date and time when the contact was last updated.
    ContactUpdate:
      type: object
      properties:
        firstName:
          type: string
          description: The first name of the contact.
        lastName:
          type: string
          description: The last name of the contact.
        msisdn:
          type: string
          description: The phone number of the contact.
        custom1:
          type: string
          description: Custom field 1.
        custom2:
          type: string
          description: Custom field 2.
        custom3:
          type: string
          description: Custom field 3.
        custom4:
          type: string
          description: Custom field 4.
  securitySchemes:
    accessKey:
      type: apiKey
      in: header
      name: Authorization
      description: Access key authentication in the form of 'AccessKey {accessKey}'.
externalDocs:
  description: Balance API Documentation
  url: https://developers.messagebird.com/api/balance/