Sonetel Ai Integration API

The Ai Integration API from Sonetel — 4 operation(s) for ai integration.

Operations 6

GET /ai-integration/customer_faq/faq_template Download Template #
GET /ai-integration/customer_faq/faq List all FAQs #
POST /ai-integration/customer_faq/faq Upload FAQs #
DELETE /ai-integration/customer_faq/faq Delete all FAQs #
GET /ai-integration/customer_faq/faq_csv Download as CSV #
GET /ai-integration/customer_faq/suggested-answers Get Suggested Answer from AI #

Documentation

Specifications

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-account-get-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-account-put-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-account-data-mgr-call-rec-settings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-user-get-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-user-call-settings-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-user-update-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-single-phone-number-subscription-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-list-phnum-subscriptions-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-call-recording-list-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-call-recording-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-voiceapp-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-create-prompt-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-requested-by-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-file-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-write-to-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-account-context-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-file-input-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/sonetel/refs/heads/main/json-schema/sonetel-file-with-id-schema.json

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/sonetel:sonetel-ai-integration-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

sonetel-ai-integration-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Sonetel Ai Integration API
  version: '2.0'
  description: 'Operations tagged Ai Integration across 2 of this provider''s published API definitions: 11_ai_functions.yaml, sonetel-ai-functions-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://public-api.sonetel.com
  description: Production
tags:
- name: Ai Integration
paths:
  /ai-integration/customer_faq/faq_template:
    get:
      summary: Download Template
      description: 'Download the template needed to upload the frequently asked questions and their answers to our system.


        ### Sample Code


        ```bash

        curl \

        --request GET ''https://public-api.sonetel.com/ai-integration/customer_faq/faq_template'' \

        --header ''Authorization: Bearer YOUR_ACCESS_TOKEN'' \

        -o ''Sonetel-FAQ-Template.xlsx''

        ```


        ```python

        import requests

        from sonetel import api

        import os


        """

        Install our Python module to use the sample code:

        https://pypi.org/project/sonetel/

        """


        user = os.environ.get(''sonetelUserName'')

        pswd = os.environ.get(''sonetelPassword'')


        s = api.Account(username=user,password=pswd)


        access_token = s.get_token()


        url = "https://public-api.sonetel.com/ai-integration/customer_faq/faq_template"


        headers = {

        ''Authorization'': f''Bearer {access_token}''

        }


        response = requests.request("GET", url, headers=headers)


        if response.ok:

        open(''Sonetel-FAQ-Template.xlsx'', ''wb'').write(response.content)

        else:

        response.raise_for_status()

        ```'
      operationId: get-ai-integration-customer_faq-faq_template
      parameters:
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: A successful request returns an Excel file as the response body. Save the response body as a `.xlsx` file.
          headers:
            Content-Type:
              schema:
                type: string
              description: application/force-download
        '401':
          $ref: '#/components/responses/unauthorized'
      servers:
      - url: https://public-api.sonetel.com
        description: Production
      x-internal: false
      tags:
      - Ai Integration
    servers:
    - url: https://public-api.sonetel.com
      description: Production
  /ai-integration/customer_faq/faq:
    get:
      summary: List all FAQs
      description: 'Get a list of all the FAQs you have uploaded to your Sonetel account.


        ### Sample Code


        ```bash

        curl \

        --request GET ''https://public-api.sonetel.com/ai-integration/customer_faq/faq'' \

        --header ''Accept: application/json'' \

        --header ''Authorization: Bearer YOUR_ACCESS_TOKEN''

        ```


        ```python

        import requests

        from sonetel import api

        import os


        """

        Install our Python module to use the sample code:

        https://pypi.org/project/sonetel/

        """


        user = os.environ.get(''sonetelUserName'')

        pswd = os.environ.get(''sonetelPassword'')


        s = api.Account(username=user,password=pswd)


        access_token = s.get_token()


        url = "https://public-api.sonetel.com/ai-integration/customer_faq/faq"


        headers = {

        ''Accept'': ''application/json'',

        ''Authorization'': f''Bearer {access_token}''

        }


        response = requests.request("GET", url, headers=headers)


        if response.ok:

        print(response.text)

        else:

        response.raise_for_status()

        ```'
      operationId: get-faq
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          $ref: '#/components/responses/get-faq-success'
        '401':
          $ref: '#/components/responses/unauthorized'
      servers:
      - url: https://public-api.sonetel.com
        description: Production
      x-internal: false
      tags:
      - Ai Integration
    post:
      summary: Upload FAQs
      description: 'To have our AI-assisted Business Messenger offer you suggestions that are better suited to your business, you can upload questions frequently asked by your customers.


        ### Sample Code


        ```bash

        curl \

        --request POST ''https://public-api.sonetel.com/ai-integration/customer_faq/faq'' \

        --header ''Authorization: Bearer ACCESS_TOKEN'' \

        --form ''file=@"/path/to/SonetelFAQTemplate.xlsx"''

        ```


        ```python

        import requests

        from sonetel import api

        import os


        """

        Install our Python module to use the sample code:

        https://pypi.org/project/sonetel/

        """


        user = os.environ.get(''sonetelUserName'')

        pswd = os.environ.get(''sonetelPassword'')


        s = api.Account(username=user,password=pswd)


        access_token = s.get_token()


        url = "https://public-api.sonetel.com/ai-integration/customer_faq/faq"


        headers = {

        ''Authorization'': f''Bearer {access_token}''

        }


        payload={''language'': ''en''}


        files=[

        (''file'',(''SonetelFAQTemplate.xlsx'',open(''SonetelFAQTemplate.xlsx'',''rb''),''application/vnd.openxmlformats-officedocument.spreadsheetml.sheet''))

        ]


        response = requests.request("POST", url, headers=headers, files=files, data=payload)


        if response.ok:

        print(response.text)

        else:

        response.raise_for_status()

        ```'
      operationId: post-faq
      parameters:
      - name: Content-Type
        in: header
        description: The data type must be `multipart/form-data`.
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept'
      requestBody:
        description: 'The Excel sheet containing the frequently asked questions should be sent in the body of the request as binary data.


          If the language of the FAQs is not English, the `language` parameter should be set to the two letter ISO-2 code (formally known as the [ISO 639-1 standard](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)) for the language such as `hi` for Hindi, `es` for Spanish and so on.'
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  description: The file object with the prepared questions and answers.
                language:
                  type: string
                  description: The ISO-2 language code of the language that the suggested answers are in.
              required:
              - file
              x-examples:
                example-1:
                  file: File_Object
      responses:
        '200':
          $ref: '#/components/responses/faqs-uploaded'
        '401':
          $ref: '#/components/responses/unauthorized'
      servers:
      - url: https://public-api.sonetel.com
        description: Production
      x-internal: false
      tags:
      - Ai Integration
    delete:
      summary: Delete all FAQs
      description: 'The DELETE method allows you to remove the FAQs already uploaded to your account. This is helpful when you''re updating the existing FAQs.


        > Remember to save a copy of the uploaded FAQs if you don''t have a backup. Use the `/faq_csv` endpoint to get a CSV.


        ### Sample Code


        ```bash

        curl \

        --request DELETE ''https://public-api.sonetel.com/ai-integration/customer_faq/faq'' \

        --header ''Authorization: Bearer ACCESS_TOKEN''

        ```


        ```python

        import requests

        from sonetel import api

        import os


        """

        Install our Python module to use the sample code:

        https://pypi.org/project/sonetel/

        """


        user = os.environ.get(''sonetelUserName'')

        pswd = os.environ.get(''sonetelPassword'')


        s = api.Account(username=user,password=pswd)


        access_token = s.get_token()


        url = "https://public-api.sonetel.com/ai-integration/customer_faq/faq"


        headers = {

        ''Authorization'': f''Bearer {access_token}'',

        ''Accept'': ''application/json''

        }


        response = requests.request("DELETE", url, headers=headers)


        if response.ok:

        print(response.text)

        else:

        response.raise_for_status()


        ```'
      operationId: delete-faq
      parameters:
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept'
      responses:
        '200':
          $ref: '#/components/responses/delete-success'
        '401':
          $ref: '#/components/responses/unauthorized'
      servers:
      - url: https://public-api.sonetel.com
        description: Production
      x-internal: false
      tags:
      - Ai Integration
    servers:
    - url: https://public-api.sonetel.com
      description: Production
  /ai-integration/customer_faq/faq_csv:
    get:
      summary: Download as CSV
      description: 'Download all the FAQs that are uploaded to your account as a CSV file.


        ### Sample Code


        ```bash

        curl \

        --request GET ''https://public-api.sonetel.com/ai-integration/customer_faq/faq_csv'' \

        --header ''Authorization: Bearer ACCESS_TOKEN''

        ```


        ```python

        import requests

        from sonetel import api

        import os


        """

        Install our Python module to use the sample code:

        https://pypi.org/project/sonetel/

        """


        user = os.environ.get(''sonetelUserName'')

        pswd = os.environ.get(''sonetelPassword'')


        s = api.Account(username=user,password=pswd)


        access_token = s.get_token()


        url = "https://public-api.sonetel.com/ai-integration/customer_faq/faq_csv"


        headers = {

        ''Authorization'': f''Bearer {access_token}'',

        ''Accept'': ''application/json''

        }


        response = requests.request("GET", url, headers=headers)


        if response.ok:

        print(response.text)

        else:

        response.raise_for_status()


        ```'
      operationId: get-customer_faq-csv
      parameters:
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: A success response contains the CSV file as the response body.
          headers:
            Content-Disposition:
              schema:
                type: string
                example: attachment;filename=Sonetel-FAQ-{ACCOUNTID}.csv
              description: Indicate how the response should be handled, also contains the file name of the CSV.
            Content-Type:
              schema:
                type: string
                example: application/force-download
              description: Indicates the response's media type.
        '401':
          $ref: '#/components/responses/unauthorized'
      servers:
      - url: https://public-api.sonetel.com
        description: Production
      x-internal: false
      tags:
      - Ai Integration
    servers:
    - url: https://public-api.sonetel.com
      description: Production
  /ai-integration/customer_faq/suggested-answers:
    get:
      summary: Get Suggested Answer from AI
      description: 'Get answers to frequently asked questions from our AI. Just send the question as a JSON body along with the language if the question is not in English. Our AI will look through the FAQs you uploaded as well as your older chat conversations and provide a suggested answer.


        ### Sample Code


        ```bash

        curl \

        --request GET \

        ''https://public-api.sonetel.com/ai-integration/customer_faq/suggested-answers'' \

        --header ''Authorization: Bearer ACCESS_TOKEN'' \

        --header ''Content-Type: application/json'' \

        --header ''Accept: application/json'' \

        --data-raw ''{

        "question":"hello",

        "language": "en",

        "account_id": "ACCOUNT_ID"

        }''

        ```


        ```python

        import requests

        from sonetel import api

        import os


        """

        Install our Python module to use the sample code:

        https://pypi.org/project/sonetel/

        """


        user = os.environ.get(''sonetelUserName'')

        pswd = os.environ.get(''sonetelPassword'')


        s = api.Account(username=user,password=pswd)


        access_token = s.get_token()


        url = "https://public-api.sonetel.com/ai-integration/customer_faq/suggested-answers"


        headers = {

        ''Authorization'': f''Bearer {access_token}'',

        ''Accept'': ''application/json'',

        ''Content-Type'': ''application/json''

        }


        payload = {

        ''question'':''hello'',

        ''language'': ''en'',

        ''account_id'': s.get_accountid()

        }


        response = requests.request("GET", url, headers=headers, data=payload)


        if response.ok:

        print(response.text)

        else:

        response.raise_for_status()


        ```'
      operationId: get-suggested-answers
      parameters:
      - name: Content-Type
        in: header
        description: The content type of the request.
        required: true
        schema:
          type: string
          default: application/json
      - $ref: '#/components/parameters/Authorization'
      - $ref: '#/components/parameters/Accept'
      requestBody:
        $ref: '#/components/requestBodies/get-suggested-answer'
      responses:
        '200':
          $ref: '#/components/responses/suggested-answer'
      servers:
      - url: https://public-api.sonetel.com
        description: Production
      x-internal: true
      tags:
      - Ai Integration
    servers:
    - url: https://public-api.sonetel.com
      description: Production
components:
  responses:
    unauthorized:
      description: Error response when the request is made without the `Authorization` header or with an expired token.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                description: The error code
              error_description:
                type: string
                description: A short message describing the details of the error.
            x-examples:
              example-1:
                error: unauthorized
                error_description: Full authentication is required to access this resource
    suggested-answer:
      description: The response containing the suggested answers.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                - SUCCESS
                - FAIL
                description: The status of the response.
              message:
                type: string
                description: A short text describing the status of the response.
              response:
                type: object
                properties:
                  question-id:
                    type: string
                    description: A unique ID assigned to the question.
                  answers:
                    type: array
                    description: Array containing the answers to the question. The array is empty if no relevant answer was found.
                    items:
                      type: object
                  account-id:
                    type: string
                    description: Your Sonetel account ID.
                  company-url:
                    type: 'null'
                    description: If the suggested answer was automatically fetched from your website's FAQs, this includes the URL.
                  language:
                    type: string
                    description: The 2 letter [ISO language code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes).
            x-examples:
              example-1:
                status: SUCCESS
                message: Got some suggestions.
                response:
                  question-id: ''
                  answers: []
                  account-id: '200000000'
                  company-url: null
                  language: en
    get-faq-success:
      description: The response returned when the FAQs are successfully fetched from the system.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                description: The status of the request
              message:
                type: string
                description: Message describing the status of the request.
              response:
                type: array
                description: The response object
                items:
                  type: object
                  properties:
                    accountId:
                      type: string
                      description: The Sonetel account ID
                    languages:
                      type: array
                      items:
                        type: object
                        properties:
                          lang:
                            type: string
                            description: The 2 letter ISO code of the question's language.
                          business:
                            type: object
                            properties:
                              qa:
                                type: array
                                description: An array containing the uploaded questions and answers as separate objects.
                                items:
                                  type: object
                                  properties:
                                    que:
                                      type: array
                                      description: The frequently asked question. If more than one question have the same answer, all the questions are listed here as elements of an array.
                                      items:
                                        type: string
                                    ans:
                                      type: string
                                      description: The answer the question(s).
            x-examples:
              example-1:
                status: SUCCESS
                message: Fetched Data successfully.
                response:
                - accountId: '200000000'
                  languages:
                  - lang: en
                    business:
                      source_url: null
                      qa:
                      - que:
                        - Hi
                        - Hello
                        ans: Hi, How can I help you?
                      - que:
                        - Thank you
                        ans: Thank you. Have a nice day!
                      - que:
                        - When are you open?
                        - What time do you open?
                        - Are you open today?
                        ans: We are open from Monday to Friday between 9 AM - 9 PM IST.
                      - que:
                        - What payments do you accept?
                        ans: We accept cash, MasterCard, Visa and UPI.
                      - que:
                        - Do you accept Gpay?
                        ans: Yes, we accept Gpay.
    delete-success:
      description: Delete the existing FAQs uploaded to your account.
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                description: The status of the request
              message:
                type: string
                description: The message with details of the operation
              response:
                type: 'null'
                description: The response value is `null` in case of a successful deletion.
            x-examples:
              example-1:
                status: SUCCESS
                message: 'Data deleted successfully. Account id : 200000000'
                response: null
    faqs-uploaded:
      description: The response sent when the FAQs are uploaded succesfully
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                description: The status of the request
              message:
                type: string
                description: Message describing the status of the request.
              response:
                type: object
                description: The response object
                properties:
                  accountId:
                    type: string
                    description: The account ID to which the FAQs were.
                  languages:
                    type: array
                    description: List of all the different FAQs uploaded.
                    items:
                      type: object
                      properties:
                        lang:
                          type: string
                          description: The ISO alpha-2 code for the language
                        business:
                          type: object
                          description: Questions and answers that relate to a particular area of your business.
                          properties:
                            source_url:
                              type: string
                              description: 'The URL of the webpage from where the FAQs were automatically uploaded.


                                This is only used if the FAQs were uploaded automatically by our system.'
                            qa:
                              type: array
                              description: Array listing the each question and answer as a separate object
                              items:
                                type: object
                                properties:
                                  que:
                                    type: array
                                    description: Question parsed from the Excel template.
                                    items:
                                      type: string
                                  ans:
                                    type: string
                                    description: Answer parsed from the Excel template.
            x-examples:
              example-1:
                status: SUCCESS
                message: Adding FAQ and Event done successfully!
                response:
                  accountId: '200000000'
                  languages:
                  - lang: en
                    business:
                      source_url: null
                      qa:
                      - que:
                        - Hi
                        - Hello
                        ans: Hi, How can I help you?
                      - que:
                        - Thank you
                        ans: Thank you. Have a nice day!
                      - que:
                        - When are you open?
                        - What time do you open?
                        - Are you open today?
                        ans: We are open from Monday to Friday between 9 AM - 9 PM IST.
                      - que:
                        - What payments do you accept?
                        ans: We accept cash, MasterCard, Visa and UPI.
                      - que:
                        - Do you accept Gpay?
                        ans: Yes, we accept Gpay.
          examples:
            FAQs upload success:
              value:
                status: SUCCESS
                message: Adding FAQ and Event done successfully!
                response:
                  accountId: '200000000'
                  languages:
                  - lang: hi
                    business:
                      source_url: null
                      qa:
                      - que:
                        - नमस्ते
                        - नमस्कार!
                        ans: नमस्ते क्या आपको कोई मदद चाहिए?
                      - que:
                        - धन्यवाद।
                        ans: शुक्रिया। आपका दिन शुभ हो!
                  - lang: en
                    business:
                      source_url: null
                      qa:
                      - que:
                        - Hi
                        - Hello
                        ans: Hello. How can I help you?
                      - que:
                        - Thank you
                        - thanks
                        ans: Thank you. Have a nice day.
  parameters:
    Authorization:
      name: Authorization
      in: header
      description: The authorization header contains your access token and is used to authenticate requests. Generate an `access_token` using the `/oauth/token` endpoint.
      required: true
      schema:
        type: string
        examples:
        - Bearer <ACCESS_TOKEN>
    Accept:
      name: Accept
      in: header
      description: The content type that should be returned in the response.
      required: true
      schema:
        type: string
        default: application/json
  requestBodies:
    get-suggested-answer:
      content:
        application/json:
          schema:
            type: object
            properties:
              question:
                type: string
                description: The question for which you want the answer from the AI.
              language:
                type: string
                description: The 2 letter ISO code of the question's language. Required if the question is in any language other than English.
                default: en
                examples:
                - en, sv, ar
              account_id:
                type: string
                description: Your Sonetel account ID
            required:
            - question
            - account_id
            x-examples:
              example-1:
                question: Do you accept credit cards?
                language: en
                account_id: '206000000'
  securitySchemes:
    Sonetel:
      type: oauth2
      description: Get an access token from the `/oauth/token` and pass it as a Bearer token in the `Authorization` header.
      flows:
        password:
          refreshUrl: https://api.sonetel.com/SonetelAuth/beta/oauth/token
          tokenUrl: https://api.sonetel.com/SonetelAuth/beta/oauth/token
          scopes: {}
x-refined-from:
- 11_ai_functions.yaml
- sonetel-ai-functions-openapi.yml