8x8

8x8 Batch API

The Batch API API from 8x8 — 7 operation(s) for batch api.

Operations 7

POST /api/v1/accounts/{accountId}/contacts/batches/createContacts Batch create contacts #
POST /api/v1/accounts/{accountId}/contacts/batches/deleteContacts Batch delete contacts #
POST /api/v1/accounts/{accountId}/groups/batches/copyContacts Copy contacts between groups #
POST /api/v1/accounts/{accountId}/groups/batches/moveContacts Move contacts between groups #
POST /api/v1/accounts/{accountId}/groups/batches/deleteGroups Batch delete groups #
GET /api/v1/accounts/{accountId}/batches/{batchId} Get batch information by id #
GET /api/v1/accounts/{accountId}/batches Get batch job list #

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/8x8-batch-api-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 email required.

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

OpenAPI Specification

8x8-batch-api-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Contacts Batch Batch API
  version: '1'
  description: Contacts API v1
  contact:
    name: 8x8 Inc
    url: https://cpaas.8x8.com
    email: cpaas-support@8x8.com
  termsOfService: https://cpaas.8x8.com/sg/terms-and-conditions/
servers:
- url: https://contacts.8x8.com
  description: Asia-Pacific region
- url: https://contacts.us.8x8.com
  description: North America region
- url: https://contacts.8x8.uk
  description: Europe region
- url: https://contacts.8x8.id
  description: Indonesia region
security:
- apiKey: []
tags:
- name: Batch API
paths:
  /api/v1/accounts/{accountId}/contacts/batches/createContacts:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    post:
      summary: Batch create contacts
      operationId: batch-upload-contacts
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-upload-job'
        '400':
          $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/get/responses/400'
      description: Batch create contacts using file. The file can be either CSV or Excel. The CSV file can contain a header row (the mapping of the columns will be automatic in this case), or not. For files without a header, the `fileColumns` property should be specified for a columns mapping.
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/batch-upload-contacts'
            examples:
              Upload a csv file with header and add contacts to groups:
                value:
                  file: {}
                  groups: 11566,88996
                  fileHasHeader: true
              Upload a file:
                value:
                  file: {}
              Upload a csv file without a header with specified columns:
                value:
                  file: {}
                  fileHasHeader: false
                  fileColumns: msisdn, firstName, lastName
      tags:
      - Batch API
  /api/v1/accounts/{accountId}/contacts/batches/deleteContacts:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    post:
      summary: Batch delete contacts
      operationId: batch-delete-contacts
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-job'
        '400':
          $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/get/responses/400'
      description: 'Use this endpoint to delete multiple/all contacts in batch. Provide `ids` or `msisdns` to remove specific contacts, or set `"all": true` to delete all contacts in your account.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/batch-delete-contacts'
            examples:
              Specify contacts to delete:
                value:
                  ids:
                  - 41764539
                  - 41764538
                  msisdns:
                  - '+6512345678'
                  - '6523456789'
              Specify only contacts ids to delete:
                value:
                  ids:
                  - 41764539
                  - 41764538
              Specify only msisdns to delete:
                value:
                  msisdns:
                  - '+6512345678'
                  - '6523456789'
              Delete all contacts:
                value:
                  all: true
      tags:
      - Batch API
  /api/v1/accounts/{accountId}/groups/batches/copyContacts:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    post:
      summary: Copy contacts between groups
      operationId: batch-copy-contacts
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-job'
        '400':
          $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/get/responses/400'
      parameters:
      - schema:
          type: integer
        in: query
        name: from
        description: Identifier of the source group
        required: true
      - schema:
          type: integer
        in: query
        name: to
        description: Identifier of the destination group
        required: true
      description: Copy contacts from ony group to another one.
      tags:
      - Batch API
  /api/v1/accounts/{accountId}/groups/batches/moveContacts:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    post:
      summary: Move contacts between groups
      operationId: batch-move-contacts
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-job'
        '400':
          $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/get/responses/400'
      description: Move contacts from one group to another one. This operation will delete contacts in the original group.
      parameters:
      - schema:
          type: integer
        in: query
        name: from
        description: Identifier of the source group
        required: true
      - schema:
          type: integer
        in: query
        name: to
        description: Identifier of the destination group
        required: true
      tags:
      - Batch API
  /api/v1/accounts/{accountId}/groups/batches/deleteGroups:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    post:
      summary: Batch delete groups
      operationId: batch-delete-groups
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-job'
        '400':
          $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/get/responses/400'
      description: Batch delete groups
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/batch-delete-groups'
      tags:
      - Batch API
  /api/v1/accounts/{accountId}/batches/{batchId}:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    - schema:
        type: string
        format: uuid
      name: batchId
      in: path
      required: true
      description: Batch Id
    get:
      summary: Get batch information by id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-job'
        '404':
          description: The entity doesn't exist
          content:
            application/json:
              schema:
                $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/post/responses/409/content/application~1json/schema'
              example:
                code: 4018
                message: Invalid jobId
                errorId: aa400d4b-fffe-ea11-8277-00155d4ff7ed
                timestamp: '2020-09-25T07:18:22.78Z'
      operationId: get-batch-by-id
      description: Get batch information by id
      tags:
      - Batch API
  /api/v1/accounts/{accountId}/batches:
    parameters:
    - $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/parameters/0'
    get:
      summary: Get batch job list
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batch-job-list'
        '400':
          $ref: '#/paths/~1api~1v1~1accounts~1%7BaccountId%7D~1groups/get/responses/400'
      operationId: get-batch-job-list
      description: Get batch job list
      parameters:
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - schema:
          type: string
          enum:
          - createContacts
          - deleteContacts
          - copyContacts
          - moveContacts
          - deleteGroups
        in: query
        name: type
        description: Use this parameter to filter by batch type
      tags:
      - Batch API
components:
  schemas:
    batch-status:
      type: string
      title: Batch Status
      enum:
      - queued
      - inProgress
      - failed
      - completed
      - stopped
      - timeout
      description: The status of the batch job
    batch-upload-job:
      description: Batch upload contacts job information
      type: object
      x-examples:
        example-1:
          fileName: 1_Contacts.csv
          fileType: csv
          fileLocation: https://8x8.com/contacts/1_Contacts.csv
          id: 1da76ae9-5f8d-40c1-ba71-ae7b00abb23e
          type: createContacts
          status: queued
          createdAt: '2022-04-18T10:25:07.95Z'
      properties:
        fileName:
          type: string
          description: Name of the uploaded file
        fileType:
          type: string
          description: Type of the uploaded file
          enum:
          - csv
          - xls
        fileLocation:
          type: string
          description: URL of the uploaded file
        id:
          type: string
          description: Batch id. Use this value to request batch status.
          format: uuid
        type:
          $ref: '#/components/schemas/batch-type'
        status:
          $ref: '#/components/schemas/batch-status'
        createdAt:
          type: string
          minLength: 1
          description: Created time
      title: Batch upload contacts job
    batch-delete-contacts:
      description: Batch delete contacts
      type: object
      x-examples:
        Specify contacts to delete:
          ids:
          - 41764539
          - 41764538
          msisdns:
          - '+6512345678'
          - '6523456789'
        Delete all contacts in your account:
          all: true
      properties:
        ids:
          type: array
          items:
            type: integer
        msisdns:
          type: array
          items:
            type: string
        all:
          type: boolean
          description: Set true to delete all contacts in your account
      title: Batch delete contacts
    batch-type:
      type: string
      title: Batch type
      description: The type of the batch job
      enum:
      - createContacts
      - deleteContacts
      - copyContacts
      - moveContacts
      - deleteGroups
    batch-upload-contacts:
      title: batch-upload-contacts
      type: object
      properties:
        file:
          type: object
          description: 'Binary content of the file.


            **The file size is limited to 30 Mb.**'
        groups:
          type: string
          description: "Comma-separated list of group id (integer) to add contacts to. \n\n**You can add contacts to 10 groups max.**"
          example: 11566,88996
        fileHasHeader:
          type: boolean
          default: true
          description: "Set this property to `true` if provided file has a header row. \n\nThe header row will be parsed automatically, you don't need to provide a list of columns in this case.\n\nDefault value is `true`"
        fileColumns:
          type: string
          description: "Comma-separated list of columns. \n\nThis field is **mandatory** is `fileHasHeader` is `false`"
          example: msisdn, firstName, lastName
      required:
      - file
    batch-delete-groups:
      description: ''
      type: object
      x-examples:
        example-1:
          ids:
          - 6806
          - 6780
          deleteContacts: true
      properties:
        ids:
          type: array
          description: Identifiers of groups to delete
          items:
            type: integer
        deleteContacts:
          type: boolean
          description: Set to `true` to delete contacts in these groups
      required:
      - ids
      - deleteContacts
    batch-job:
      description: Batch job information
      type: object
      x-examples:
        example-1:
          id: dc6b1743-391b-4a72-bcea-ae7c0062bbb7
          type: deleteContacts
          status: queued
          createdAt: '2022-04-19T05:59:28.61Z'
      title: Batch job info
      properties:
        id:
          type: string
          format: uuid
          description: 'Batch job id

            '
        type:
          $ref: '#/components/schemas/batch-type'
        status:
          $ref: '#/components/schemas/batch-status'
        createdAt:
          type: string
          description: Job created date and time
    batch-job-list:
      description: ''
      type: object
      x-examples:
        example-1:
          items:
          - id: 576171ed-ab50-427d-a1c8-ae7c0079fdc1
            type: deleteContacts
            status: completed
            createdAt: '2022-04-19T07:24:09.28Z'
          - fileName: 1_Contacts-without-Errors-with-header-with-duplicates.csv
            fileType: csv
            fileLocation: https://8x8.com/1_Contacts.csv
            invalidFileLocation: https://8x8.com/invalid_contacts.csv
            totalRows: 12
            errorRows: 6
            duplicatedRows: 5
            insertedRows: 2
            contactGroups: 0
            id: 1da76ae9-5f8d-40c1-ba71-ae7b00abb23e
            type: createContacts
            status: completed
            createdAt: '2022-04-18T10:25:07.78Z'
          - id: 576171ed-ab50-427d-a1c8-ae7c0079fdc3
            type: moveContacts
            status: completed
            createdAt: '2022-04-19T07:33:09.28Z'
          page: 1
          totalPages: 1
          totalCount: 3
          totalFiltered: 3
          hasPreviousPage: false
          hasNextPage: false
      properties:
        items:
          type: array
          uniqueItems: true
          minItems: 1
          items:
            anyOf:
            - $ref: '#/components/schemas/batch-job'
            - $ref: '#/components/schemas/batch-upload-job'
        page:
          type: number
        totalPages:
          type: number
        totalCount:
          type: number
        totalFiltered:
          type: number
        hasPreviousPage:
          type: boolean
        hasNextPage:
          type: boolean
      title: ''
  parameters:
    limit:
      name: limit
      in: query
      required: false
      schema:
        type: integer
        minimum: 1
        maximum: 500
        default: 20
        format: int32
      description: Number of items to include in the response
    offset:
      name: offset
      in: query
      required: false
      schema:
        type: integer
        minimum: 0
        format: int32
      description: Page offset. Setting limit to 10 and offset to 0 returns the first 10 items. Increment offset to retrieve more items.
  securitySchemes:
    apiKey:
      type: http
      scheme: bearer
      description: '* 8x8 SMS API accepts an **ApiKey Bearer Token** authentication method.


        * You can generate  tokens from your customer portal  [https://connect.8x8.com/](https://connect.8x8.com/)


        * You need to include the following header in your requests: `Authorization: Bearer {apiKey}`


        > **Note**: Replace the `{apiKey}` placeholder with the key generated from the customer portal.

        ---

        If you haven''t created your account yet, please go to 8x8 website [https://connect.8x8.com](https://connect.8x8.com) to sign up.

        '
x-readme:
  explorer-enabled: true
  proxy-enabled: true