Chatwoot Custom Attributes API
Custom fields for contacts and conversations
Custom fields for contacts and conversations
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/chatwoot-custom-attributes-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Chatwoot Custom Attributes API
termsOfService: https://www.chatwoot.com/terms-of-service/
version: '1.0'
description: 'Operations tagged Custom Attributes across 2 of this provider''s published API definitions: chatwoot-application-api-openapi.yml, chatwoot-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://app.chatwoot.com/
- url: https://app.chatwoot.com
description: Chatwoot Cloud. For self-hosted installations, substitute your own host.
tags:
- name: Custom Attributes
description: Custom fields for contacts and conversations
paths:
/api/v1/accounts/{account_id}/custom_attribute_definitions:
parameters:
- $ref: '#/components/parameters/account_id'
get:
tags:
- Custom Attributes
operationId: get-account-custom-attribute
summary: List all custom attributes in an account
parameters:
- name: attribute_model
in: query
schema:
type: string
enum:
- '0'
- '1'
description: conversation_attribute(0)/contact_attribute(1)
required: true
description: Get details of custom attributes in an Account
security:
- userApiKey: []
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
description: Array of all custom attributes
items:
$ref: '#/components/schemas/custom_attribute'
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
post:
tags:
- Custom Attributes
operationId: add-new-custom-attribute-to-account
summary: Add a new custom attribute
description: Add a new custom attribute to account
security:
- userApiKey: []
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/custom_attribute_create_update_payload'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/custom_attribute'
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
servers:
- url: https://app.chatwoot.com/
/api/v1/accounts/{account_id}/custom_attribute_definitions/{id}:
parameters:
- $ref: '#/components/parameters/account_id'
- name: id
in: path
schema:
type: number
description: ID of the custom attribute
required: true
get:
tags:
- Custom Attributes
operationId: get-details-of-a-single-custom-attribute
summary: Get a custom attribute details
security:
- userApiKey: []
description: Get the details of a custom attribute in the account
parameters:
- $ref: '#/components/parameters/account_id'
- in: path
name: id
schema:
type: integer
required: true
description: The ID of the custom attribute to be updated.
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/custom_attribute'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
'404':
description: The given attribute ID does not exist in the account
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
patch:
tags:
- Custom Attributes
operationId: update-custom-attribute-in-account
summary: Update custom attribute in Account
description: Update a custom attribute in account
security:
- userApiKey: []
parameters:
- in: path
name: id
schema:
type: integer
required: true
description: The ID of the custom attribute to be updated.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/custom_attribute_create_update_payload'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/custom_attribute'
'404':
description: Agent not found
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
delete:
tags:
- Custom Attributes
operationId: delete-custom-attribute-from-account
summary: Remove a custom attribute from account
description: Remove a custom attribute from account
security:
- userApiKey: []
parameters:
- $ref: '#/components/parameters/account_id'
- in: path
name: id
schema:
type: integer
required: true
description: The ID of the custom attribute to be deleted
responses:
'200':
description: Success
'404':
description: Custom attribute not found
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
'403':
description: Access denied
content:
application/json:
schema:
$ref: '#/components/schemas/bad_request_error'
servers:
- url: https://app.chatwoot.com/
components:
schemas:
custom_attribute:
type: object
properties:
id:
type: integer
description: Identifier
attribute_display_name:
type: string
description: Attribute display name
attribute_display_type:
type: string
description: Attribute display type (text, number, currency, percent, link, date, list, checkbox)
attribute_description:
type: string
description: Attribute description
attribute_key:
type: string
description: Attribute unique key value
regex_pattern:
type: string
description: Regex pattern
regex_cue:
type: string
description: Regex cue
attribute_values:
type: string
description: Attribute values
attribute_model:
type: string
description: Attribute type(conversation_attribute/contact_attribute)
default_value:
type: string
description: Attribute default value
created_at:
type: string
description: The date and time when the custom attribute was created
updated_at:
type: string
description: The date and time when the custom attribute was updated
custom_attribute_create_update_payload:
type: object
properties:
attribute_display_name:
type: string
description: Attribute display name
example: Custom Attribute
attribute_display_type:
type: integer
description: Attribute display type (text- 0, number- 1, currency- 2, percent- 3, link- 4, date- 5, list- 6, checkbox- 7)
example: 0
attribute_description:
type: string
description: Attribute description
example: This is a custom attribute
attribute_key:
type: string
description: Attribute unique key value
example: custom_attribute
attribute_values:
type: array
description: Attribute values
items:
type: string
example:
- value1
- value2
attribute_model:
type: integer
description: Attribute type(conversation_attribute- 0, contact_attribute- 1)
example: 0
regex_pattern:
type: string
description: Regex pattern (Only applicable for type- text). The regex pattern is used to validate the attribute value(s).
example: ^[a-zA-Z0-9]+$
regex_cue:
type: string
description: Regex cue message (Only applicable for type- text). The cue message is shown when the regex pattern is not matched.
example: Please enter a valid value
request_error:
type: object
properties:
field:
type: string
message:
type: string
code:
type: string
bad_request_error:
title: data
type: object
properties:
description:
type: string
errors:
type: array
items:
$ref: '#/components/schemas/request_error'
CustomAttributeDefinition:
type: object
required:
- attribute_display_name
- attribute_key
- attribute_model
properties:
attribute_display_name:
type: string
attribute_key:
type: string
attribute_display_type:
type: string
enum:
- text
- number
- currency
- percent
- link
- date
- list
- checkbox
attribute_model:
type: string
enum:
- conversation_attribute
- contact_attribute
attribute_values:
type: array
items:
type: string
parameters:
account_id:
in: path
name: account_id
schema:
type: integer
required: true
description: The numeric ID of the account
AccountId:
name: account_id
in: path
required: true
description: The numeric id of the account.
schema:
type: integer
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-refined-from:
- chatwoot-application-api-openapi.yml
- chatwoot-openapi.yml
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