Chatwoot/swagger/swagger.json

386 lines
8.3 KiB
JSON
Raw Normal View History

2020-02-23 07:24:29 +00:00
{
"swagger": 2.0,
"info": {
"description": "This is the api documentation for Chatwoot server.",
"version": "1.0.0",
"title": "Chatwoot",
"termsOfService": "https://www.chatwoot.com/terms-of-service/",
"contact": {
"email": "support@chatwoot.com"
},
"license": {
"name": "MIT License",
"url": "https://opensource.org/licenses/MIT"
},
"host": "app.chatwoot.com",
"basePath": "/api/v1/"
},
"paths": {
"/contacts": {
"get": {
"tags": [
"Contact"
],
"description": "Listing all contacts with pagination",
"summary": "List contacts",
"parameters": [
{
"name": "query_hash",
"in": "query",
"type": "string"
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/contact_list"
}
},
"400": {
"description": "Bad Request Error",
"schema": {
"$ref": "#/definitions/bad_request_error"
}
}
}
},
"post": {
"tags": [
"Contact"
],
"description": "Create a contact",
"parameters": [
{
"name": "data",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/contact_create"
}
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/extended_contact"
}
},
"400": {
"description": "Bad Request Error",
"schema": {
"$ref": "#/definitions/bad_request_error"
}
}
}
}
},
"/contacts/{id}": {
"get": {
"tags": [
"Contact"
],
"summary": "Show Contact",
"parameters": [
{
"name": "id",
"in": "path",
"type": "number",
"description": "ID of contact",
"required": true
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/extended_contact"
}
},
"404": {
"description": "Contact not found"
},
"403": {
"description": "Access denied"
}
}
},
"put": {
"tags": [
"Contact"
],
"summary": "Update Contact",
"parameters": [
{
"name": "id",
"in": "path",
"type": "number",
"description": "ID of the contact",
"required": true
},
{
"name": "data",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/contact_update"
}
}
],
"responses": {
"204": {
"description": "Success",
"schema": {
"$ref": "#/definitions/contact_base"
}
},
"404": {
"description": "Contact not found"
},
"403": {
"description": "Access denied"
}
}
}
},
"/contacts/{id}/conversations": {
"get": {
"tags": [
"Contact"
],
"summary": "Conversations",
"parameters": [
{
"name": "id",
"in": "path",
"type": "number",
"description": "ID of contact",
"required": true
}
],
"responses": {
"200": {
"description": "Success",
"schema": {
"$ref": "#/definitions/contact_conversations"
}
},
"404": {
"description": "Contact not found"
},
"403": {
"description": "Access denied"
}
}
}
}
},
"definitions": {
"bad_request_error": {
"title": "data",
"type": "object",
"properties": {
"description": {
"type": "string"
},
"errors": {
"type": "array",
"items": {
"$ref": "#/definitions/request_error"
}
}
}
},
"request_error": {
"type": "object",
"properties": {
"field": {
"type": "string"
},
"message": {
"type": "string"
},
"code": {
"type": "string"
}
}
},
"contact": {
"type": "object",
"properties": {
"email": {
"type": "string"
},
"name": {
"type": "string"
},
"phone_number": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"additional_attributes": {
"type": "object"
}
}
},
"conversation": {
"type": "object",
"properties": {
"display_id": {
"type": "number"
},
"messages": {
"type": "array",
"items": {
"type": "object"
}
},
"inbox_id": {
"type": "number"
},
"status": {
"type": "string",
"enum": [
"open",
"resolved"
]
},
"timestamp": {
"type": "string"
},
"user_last_seen_at": {
"type": "string"
},
"agent_last_seen_at": {
"type": "agent_last_seen_at"
},
"unread_count": {
"type": "number"
}
}
},
"extended_contact": {
"allOf": [
{
"$ref": "#/definitions/contact"
},
{
"type": "object",
"properties": {
"id": {
"type": "number"
},
"availability_status": {
"type": "string",
"enum": [
"online",
"offline"
]
}
}
}
]
},
"contact_base": {
"allOf": [
{
"$ref": "#/definitions/contact"
},
{
"type": "object",
"properties": {
"id": {
"type": "number"
}
}
}
]
},
"contact_list": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "#/definitions/contact"
},
{
"type": "object",
"properties": {
"id": {
"type": "number"
}
}
}
]
}
},
"contact_conversations": {
"type": "array",
"items": {
"allOf": [
{
"$ref": "#/definitions/conversation"
},
{
"type": "object",
"properties": {
"meta": {
"type": "object",
"properties": {
"sender": {
"type": "object",
"properties": {
"id": {
"type": "number"
},
"name": {
"type": "string"
},
"thumbnail": {
"type": "string"
},
"channel": {
"type": "string"
}
}
},
"assignee": {
"type": "object"
}
}
}
}
}
]
}
},
"contact_create": {
"type": "object",
"properties": {
"account_id": {
"type": "number"
},
"inbox_id": {
"type": "number"
}
}
},
"contact_update": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"phone_number": {
"type": "string"
}
}
}
}
}