Khoros Registrations API

The Registrations API from Khoros — 4 operation(s) for registrations.

Operations 7

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 /registrations List all bot registrations · Get registrations using valid JWT token #
Ask an LLM
“Which bots are registered with the Automation Framework?”
“How do I see every bot registration my token can access?”
Tell an agent
List all bot registrations.
Show every registered bot.
POST /registrations Register a bot with Khoros Care · Register bot with Khoros Care and the Automation Framework #
Ask an LLM
“How do I register a new bot with Khoros Care and the Automation Framework?”
“What does a new bot registration payload need?”
Tell an agent
Register a new bot using payload {payload}.
Sign up my bot with the Automation Framework with {payload}.
PUT /registrations Edit a bot registration · Edit bot registration #
Ask an LLM
“Can I change the settings of a bot that is already registered?”
“How do I update a bot's registration payload?”
Tell an agent
Update the bot registration with payload {payload}.
Edit my existing bot registration to use these settings: {payload}.
GET /registrations/network/{networkKey}/externalId/{externalId} List bot registrations for a source channel · Get bot registrations by source channel #
Ask an LLM
“Which bots are registered on one network channel?”
“Can I find bot registrations by network and external ID?”
Tell an agent
List bot registrations on network {network} for external ID {external}.
Show all bots registered to channel {external} on {network}.
GET /registrations/network/{networkKey}/externalId/{externalId}/appId/{appId} Get one bot registration's details · Get bot registration details #
Ask an LLM
“How do I see the details of a single bot registration by its app ID?”
“What mode and settings does a specific registered bot have?”
Tell an agent
Get the registration for bot app {app} on network {network} with external ID {external}.
Show details of bot {app} registered to {external} on {network}.
DELETE /registrations/network/{networkKey}/externalId/{externalId}/appId/{appId} Delete a bot registration · Delete bot registration #
Ask an LLM
“How do I unregister a bot from the Automation Framework?”
“Can I delete a bot registration for one channel?”
Tell an agent destructive · confirm first
Delete the registration for bot app {app} on network {network} with external ID {external}.
Unregister bot {app} from channel {external} on {network}.
PUT /registrations/network/{networkKey}/externalId/{externalId}/appId/{appId}/mode/{mode} Switch a bot between live and maintenance mode · Change bot operating mode #
Ask an LLM
“Can I put a bot into maintenance mode while I update it?”
“How do I switch a bot back to LIVE mode?”
Tell an agent
Set bot {app} on network {network} with external ID {external} to {mode} mode.
Put bot {app} for channel {external} on {network} into {mode}.

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/khoros-ai:khoros-ai-registrations-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

khoros-ai-registrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: bot-api-v3 Registrations API
  version: '1.1'
servers:
- url: https://api.app.lithium.com/bots/v3
security:
- {}
tags:
- name: Registrations
paths:
  /registrations:
    get:
      summary: Get registrations using valid JWT token
      description: Get all registrations using any valid JWT token
      operationId: botsv3registrations
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "{\n    \"data\": [\n        {\n            \"platform\": \"LITHIUM\",\n            \"companyKey\": \"<company key>\",\n            \"networkKey\": \"apple\",\n            \"networkInstance\": \"www.apple.com\",\n            \"externalId\": \"appleExternalId\",\n            \"appId\": \"my-apple-bot\",\n            \"name\": \"My Apple bot\",\n            \"callbackUrl\": \"<callback URL>\",\n            \"mode\": \"LIVE\",\n            \"credentials\": {\n                \"type\": \"BASIC_AUTH\",\n                \"identity\": \"username\",\n                \"secret\": \"password\"\n            }, ...\n    ],\n    \"requestId\": \"8d6b6437-2632-4e89-b24c-53e4e0887b7f\"\n}"
        '401':
          description: '401'
          content:
            application/json:
              examples:
                Result:
                  value: "{ \n  \"error\": { \n    \"message\": \"Unauthorized\", \n    \"requestId\": \"e9ea518b-c84e-4c22-8f64-a01e04bd28cb\" \n  }\n}"
              schema:
                type: object
                properties:
                  error:
                    type: object
                    properties:
                      message:
                        type: string
                        example: Unauthorized
                      requestId:
                        type: string
                        example: e9ea518b-c84e-4c22-8f64-a01e04bd28cb
      deprecated: false
      security: []
      x-readme:
        code-samples:
        - language: curl
          code: "curl -X GET \\\n  https://api.app.lithium.com/bots/v3/registrations \\\n  -H 'Authorization: Bearer <JWT TOKEN>' \\"
        samples-languages:
        - curl
      tags:
      - Registrations
    post:
      summary: Register bot with Khoros Care and the Automation Framework
      description: Register a bot with Khoros Care and the Automation Framework
      operationId: registrations-post
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                RAW_BODY:
                  type: string
                  description: Path to a Registration payload. See [Registration payload](ref:registration-payload) for details.
                  format: json
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: HTTP/1.1 202 Accepted
        '422':
          description: '422'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 422 Unprocessable Entity\n{\n  \"errors\": [\n    \"callbackUrl may not be empty\",\n    \"credentials.secret may not be empty\"\n  ]\n}\n"
      deprecated: false
      security: []
      x-readme:
        code-samples:
        - language: curl
          code: "curl POST \\\n  https://api.app.lithium.com/bots/v3/registrations \\\n  --data @/path/to/payload.json \\\n  -H \"Content-type: application/json; charset=utf-8\" \\\n  -H \"Authorization: Bearer [TOKEN]\"\n"
        samples-languages:
        - curl
      tags:
      - Registrations
    put:
      summary: Edit bot registration
      description: Edit a bot registration for a bot registered with the Automation Framework
      operationId: registrations-put
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                RAW_BODY:
                  type: string
                  description: Path to a Registration payload. See [Registration payload](ref:registration-payload) for details.
                  format: json
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: HTTP/1.1 202 Accepted
        4XX:
          description: 4XX
          content:
            application/json:
              examples:
                Result:
                  value: "{\n  \"errors\": [\n    \"callbackUrl may not be empty\",\n    \"credentials.secret may not be empty\"\n  ]\n}\n\n"
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: string
                      example: callbackUrl may not be empty
      deprecated: false
      security: []
      x-readme:
        code-samples:
        - language: curl
          code: "curl PUT \\\n  https://api.app.lithium.com/bots/v3/registrations \\\n  --data @/path/to/payload.json \\\n  -H \"Content-type: application/json; charset=utf-8\" \\\n  -H \"Authorization: Bearer [TOKEN]\"\n\n"
        samples-languages:
        - curl
      tags:
      - Registrations
  /registrations/network/{networkKey}/externalId/{externalId}:
    get:
      summary: Get bot registrations by source channel
      description: Retrieve all bot registrations registered with the Automation Framework for the specified source channel
      operationId: registrationsnetworknetworkkeyexternalidexternalid-get
      parameters:
      - name: networkKey
        in: path
        description: The source network for the registration. Must match the `network` field of the bot registration.
        schema:
          type: string
        required: true
      - name: externalId
        in: path
        description: The external identifier of the bot on the network. Must match the `externalId` field of the bot registration.
        schema:
          type: string
        required: true
      responses:
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 404 Not Found\n{\n\t\"error\": {\n\t\t\"message\": \"No bot registration found\"\n\t}\n}\n"
        2XX:
          description: 2XX
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 200 OK\n{  \n  \"data\":[  \n    {  \n      \"platform\":\"LITHIUM\",\n      \"companyKey\":\"...\",\n      \"networkKey\":\"facebook\",\n      \"networkInstance\":\"www.facebook.com\",\n      \"externalId\":\"...\",\n      \"appId\":\"my-bot\",\n      \"name\":\"simple bot\",\n      \"callbackUrl\":\"https://www.example.com/bot\",\n      \"mode\":\"LIVE\",\n      \"publicFilter\":{  \n        \"includeTargeted\":true,\n        \"includeSourceTagIds\":[  \n          999,\n          1002\n        ]\n      },\n      \"credentials\":{  \n        \"type\":\"...\",\n        \"identity\":\"...\",\n        \"secret\":\"...\"\n      },\n      \"contact\":{  \n        \"email\":\"...\"\n      },\n      \"createdEpochMillis\":1538146602440,\n      \"lastUpdatedEpochMillis\":1538146602440\n    }\n  ]\n}\n\n"
      deprecated: false
      security: []
      x-readme:
        code-samples:
        - language: curl
          code: "curl GET \\\n  https://api.app.lithium.com/bots/v3/registrations/network/apple/externalId/117101b2-e66a-11e7-86ec-b1a405106b73 \\\n  -H \"Authorization: Bearer [TOKEN]\"\n"
        samples-languages:
        - curl
      tags:
      - Registrations
  /registrations/network/{networkKey}/externalId/{externalId}/appId/{appId}:
    get:
      summary: Get bot registration details
      description: Retrieve registration details about an existing bot registered with the Automation Framework
      operationId: networknetworkkeyexternalidexternalidappidappid-get
      parameters:
      - name: networkKey
        in: path
        description: The source network for the registration. Must match the `networkKey` field of the bot registration.
        schema:
          type: string
        required: true
      - name: externalId
        in: path
        description: The external identifier of the bot on the source network. Must match the `externalId` field of the bot registration.
        schema:
          type: string
        required: true
      - name: appId
        in: path
        description: The internal identifier for the bot used by Khoros. Must match the `appId` field of the bot registration.
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 200 OK\n{  \n  \"data\":{  \n    \"platform\":\"LITHIUM\",\n    \"companyKey\":\"...\",\n    \"networkKey\":\"facebook\",\n    \"networkInstance\":\"www.facebook.com\",\n    \"externalId\":\"...\",\n    \"appId\":\"some-bot-that-doesn’t-exist\",\n    \"name\":\"simple bot\",\n    \"callbackUrl\":\"https://www.example.com/bot\",\n    \"mode\":\"LIVE\",\n    \"publicFilter\":{  \n      \"includeTargeted\":true,\n      \"includeSourceTagIds\":[  \n        999,\n        1002\n      ]\n    },\n    \"credentials\":{  \n      \"type\":\"...\",\n      \"identity\":\"...\",\n      \"secret\":\"...\"\n    },\n    \"contact\":{  \n      \"email\":\"...\"\n    },\n    \"createdEpochMillis\":1538146602440,\n    \"lastUpdatedEpochMillis\":1538146602440\n  }\n}\n"
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 404 Not Found\n{\n\t\"error\": {\n\t\t\"message\": \"No bot registration found\"\n\t}\n}\n"
      deprecated: false
      x-readme:
        code-samples:
        - language: curl
          code: "curl GET \\\n  https://api.app.lithium.com/bots/v3/registations/network/apple/externalId/117101b2-e66a-11e7-86ec-b1a405106b73/appId/abc-bot \\\n  -H \"Authorization: Bearer [TOKEN]\"\n"
        samples-languages:
        - curl
      tags:
      - Registrations
    delete:
      summary: Delete bot registration
      description: Delete a bot registration from the Automation Framework
      operationId: registrations-delete
      parameters:
      - name: networkKey
        in: path
        description: The social network for the registration. Must match the `networkKey` field of the bot registration.
        schema:
          type: string
        required: true
      - name: externalId
        in: path
        description: The external identifier of the bot on the social network. Must match the `externalId` field of the bot registration.
        schema:
          type: string
        required: true
      - name: appId
        in: path
        description: The internal identifier for the bot used by Khoros. Must match the `appId` field of the bot registration.
        schema:
          type: string
        required: true
      responses:
        '200':
          description: '200'
          content:
            application/json:
              examples:
                Result:
                  value: HTTP/1.1 204 No Content
        '500':
          description: '500'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 500 Internal Server Error\n{\n    \"errors\": [\n        \"Unable to delete registration\"\n    ]\n}\n"
      deprecated: false
      security: []
      x-readme:
        code-samples:
        - language: curl
          code: "curl DELETE \\\n  https://api.app.lithium.com/bots/v3/registrations/network/apple/externalId/117101b2-e66a-11e7-86ec-b1a405106b73/appId/abc-bot \\\n  -H \"Authorization: Bearer [TOKEN]\"\n"
        samples-languages:
        - curl
      tags:
      - Registrations
  /registrations/network/{networkKey}/externalId/{externalId}/appId/{appId}/mode/{mode}:
    put:
      summary: Change bot operating mode
      description: Change a bot's operating mode
      operationId: registrationsnetworknetworkkeyexternalidexternalidappidappidmodemode-put
      parameters:
      - name: networkKey
        in: path
        description: The social network for the registration. Must match the `networkKey` field of the bot registration.
        schema:
          type: string
        required: true
      - name: externalId
        in: path
        description: The external identifier of the bot on the social network. Must match the `externalId` field of the bot registration.
        schema:
          type: string
        required: true
      - name: appId
        in: path
        description: The internal identifier for the bot used by Khoros. Must match the `appId` field of the bot registration.
        schema:
          type: string
        required: true
      - name: mode
        in: path
        description: 'The operating mode of the bot: LIVE or MAINTENANCE.<br><br>LIVE: The normal operating mode. All events are forwarded to the Bot Server via webhooks, and the bot can take any supported action. Only one LIVE bot can be supported on a specific network/externalId at one time.<br><br>MAINTENANCE:  No events are sent via webhooks. Any customer messages that arrive while in this mode are explicitly handed off to an AGENT, so that when the bot returns from MAINTENANCE mode, the bot will not start answering conversations already in progress. (MAINTENANCE is equivalent to deprecated "maintenanceMode”: true state.'
        schema:
          type: string
        required: true
      responses:
        '202':
          description: '202'
          content:
            application/json:
              examples:
                Result:
                  value: HTTP/1.1 202 Accepted
        '400':
          description: '400'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 400 Bad Request\n{  \n  \"error\":{  \n    \"messages\":[  \n      \"Invalid mode: liev\"\n    ]\n  }\n}"
        '404':
          description: '404'
          content:
            application/json:
              examples:
                Result:
                  value: "HTTP/1.1 404 Not Found\n{  \n  \"error\":{  \n    \"messages\":[  \n      \"No such bot myfirstbot for company doghotel network facebook external id 12345678901234\"\n    ]\n  }\n}"
      deprecated: false
      security: []
      x-readme:
        code-samples:
        - language: curl
          code: "curl PUT \\\n  https://api.app.lithium.com/bots/v3/registrations/network/apple/externalId/117101b2-e66a-11e7-86ec-b1a405106b73/appId/abc-bot/mode/maintenance \\\n  -H \"Authorization: Bearer [TOKEN]\"\n"
        samples-languages:
        - curl
      tags:
      - Registrations
x-readme:
  headers:
  - key: Authorization
    value: Bearer [TOKEN]
  - key: Content-type
    value: application/json; charset=utf-8
  explorer-enabled: false
  proxy-enabled: true
x-readme-fauxas: true