OpenAPI Specification
openapi: 3.0.3
info:
title: Chatwoot Account AgentBots Integrations API
description: This is the API documentation for Chatwoot server.
version: 1.1.0
termsOfService: https://www.chatwoot.com/terms-of-service/
contact:
email: hello@chatwoot.com
license:
name: MIT License
url: https://opensource.org/licenses/MIT
servers:
- url: https://app.chatwoot.com/
tags:
- name: Integrations
description: Third-party integrations
paths:
/api/v1/accounts/{account_id}/integrations/apps:
parameters:
- $ref: '#/components/parameters/account_id'
get:
tags:
- Integrations
operationId: get-details-of-all-integrations
summary: List all the Integrations
security:
- userApiKey: []
description: Get the details of all Integrations available for the account
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
payload:
type: array
description: Array of Integration apps
items:
$ref: '#/components/schemas/integrations_app'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
'404':
description: Url not found
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
/api/v1/accounts/{account_id}/integrations/hooks:
post:
tags:
- Integrations
operationId: create-an-integration-hook
summary: Create an integration hook
description: Create an integration hook
security:
- userApiKey: []
parameters:
- $ref: '#/components/parameters/account_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/integrations_hook_create_payload'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/integrations_hook'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
/api/v1/accounts/{account_id}/integrations/hooks/{hook_id}:
patch:
tags:
- Integrations
operationId: update-an-integrations-hook
summary: Update an Integration Hook
description: Update an Integration Hook
security:
- userApiKey: []
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/hook_id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/integrations_hook_update_payload'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/integrations_hook'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
delete:
tags:
- Integrations
operationId: delete-an-integration-hook
summary: Delete an Integration Hook
description: Delete an Integration Hook
security:
- userApiKey: []
parameters:
- $ref: '#/components/parameters/account_id'
- $ref: '#/components/parameters/hook_id'
responses:
'200':
description: Success
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
'404':
description: The hook does not exist in the account
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
components:
schemas:
integrations_hook:
type: object
properties:
id:
type: string
description: The ID of the integration hook
app_id:
type: string
description: The ID of the integration app
inbox_id:
type: string
description: Inbox ID if its an Inbox integration
account_id:
type: string
description: Account ID of the integration
status:
type: boolean
description: Whether the integration hook is enabled for the account
hook_type:
type: boolean
description: Whether its an account or inbox integration hook
settings:
type: object
description: The associated settings for the integration
bad_request_error:
title: data
type: object
properties:
description:
type: string
errors:
type: array
items:
$ref: '#/components/schemas/request_error'
request_error:
type: object
properties:
field:
type: string
message:
type: string
code:
type: string
integrations_app:
type: object
properties:
id:
type: string
description: The ID of the integration
name:
type: string
description: The name of the integration
description:
type: string
description: The description about the team
hook_type:
type: string
description: Whether the integration is an account or inbox integration
enabled:
type: boolean
description: Whether the integration is enabled for the account
allow_multiple_hooks:
type: boolean
description: Whether multiple hooks can be created for the integration
hooks:
type: array
items:
type: object
description: If there are any hooks created for this integration
integrations_hook_create_payload:
type: object
properties:
app_id:
type: integer
description: The ID of app for which integration hook is being created
example: 1
inbox_id:
type: integer
description: The inbox ID, if the hook is an inbox hook
example: 1
status:
type: integer
description: The status of the integration (0 for inactive, 1 for active)
example: 1
settings:
type: object
description: The settings required by the integration
example: {}
integrations_hook_update_payload:
type: object
properties:
status:
type: integer
description: The status of the integration (0 for inactive, 1 for active)
example: 1
settings:
type: object
description: The settings required by the integration
example: {}
parameters:
account_id:
in: path
name: account_id
schema:
type: integer
required: true
description: The numeric ID of the account
hook_id:
in: path
name: hook_id
schema:
type: integer
required: true
description: The numeric ID of the integration hook
securitySchemes:
userApiKey:
type: apiKey
in: header
name: api_access_token
description: This token can be obtained by visiting the profile page or via rails console. Provides access to endpoints based on the user permissions levels. This token can be saved by an external system when user is created via API, to perform activities on behalf of the user.
agentBotApiKey:
type: apiKey
in: header
name: api_access_token
description: This token should be provided by system admin or obtained via rails console. This token can be used to build bot integrations and can only access limited apis.
platformAppApiKey:
type: apiKey
in: header
name: api_access_token
description: This token can be obtained by the system admin after creating a platformApp. This token should be used to provision agent bots, accounts, users and their roles.
x-tagGroups:
- name: Platform
tags:
- Accounts
- Account Users
- AgentBots
- Users
- name: Application
tags:
- Account AgentBots
- Account
- Agents
- Audit Logs
- Canned Responses
- Contacts
- Contact Labels
- Conversation Assignments
- Conversation Labels
- Conversations
- Custom Attributes
- Custom Filters
- Inboxes
- Integrations
- Labels
- Messages
- Profile
- Reports
- Teams
- Webhooks
- Automation Rule
- Help Center
- name: Client
tags:
- Contacts API
- Conversations API
- Messages API
- name: Others
tags:
- CSAT Survey Page