Eshway Chat API
The Chat API from Eshway — 3 operation(s) for chat.
The Chat API from Eshway — 3 operation(s) for chat.
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/eshway-com:eshway-com-chat-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: Fast Chat API
version: 0.1.0
tags:
- name: Chat
paths:
/v1/chat/{project_id}/message:
post:
tags:
- Chat
summary: Send Chat Message
operationId: send_chat_message_v1_chat__project_id__message_post
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChatMessageBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SendChatMessageResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/chat/{project_id}/conversations:
get:
tags:
- Chat
summary: List Conversations
operationId: list_conversations_v1_chat__project_id__conversations_get
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: limit
in: query
required: false
schema:
type: integer
maximum: 100
minimum: 1
default: 50
title: Limit
- name: skip
in: query
required: false
schema:
type: integer
minimum: 0
default: 0
title: Skip
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ConversationListItemResponse'
title: Response List Conversations V1 Chat Project Id Conversations Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/v1/chat/{project_id}/conversations/{conversation_id}:
get:
tags:
- Chat
summary: Get Conversation
operationId: get_conversation_v1_chat__project_id__conversations__conversation_id__get
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: conversation_id
in: path
required: true
schema:
type: string
title: Conversation Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationDetailResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Chat
summary: Delete Conversation
operationId: delete_conversation_v1_chat__project_id__conversations__conversation_id__delete
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: conversation_id
in: path
required: true
schema:
type: string
title: Conversation Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Chat
summary: Rename Conversation
operationId: rename_conversation_v1_chat__project_id__conversations__conversation_id__patch
security:
- OAuth2PasswordBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: integer
title: Project Id
- name: conversation_id
in: path
required: true
schema:
type: string
title: Conversation Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RenameConversationBody'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ConversationListItemResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
RenameConversationBody:
properties:
title:
type: string
title: Title
type: object
required:
- title
title: RenameConversationBody
ConversationDetailResponse:
properties:
_id:
type: string
title: ' Id'
project_id:
type: integer
title: Project Id
title:
anyOf:
- type: string
- type: 'null'
title: Title
messages:
items:
$ref: '#/components/schemas/ConversationMessageResponse'
type: array
title: Messages
created_at:
anyOf:
- type: string
- type: 'null'
title: Created At
updated_at:
anyOf:
- type: string
- type: 'null'
title: Updated At
additionalProperties: false
type: object
required:
- _id
- project_id
- messages
title: ConversationDetailResponse
ChatSourcesResponse:
properties:
logs_queried:
type: integer
title: Logs Queried
tasks_queried:
type: integer
title: Tasks Queried
time_range:
anyOf:
- type: string
- type: 'null'
title: Time Range
additionalProperties: false
type: object
required:
- logs_queried
- tasks_queried
title: ChatSourcesResponse
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ConversationMessageResponse:
properties:
id:
anyOf:
- type: string
- type: 'null'
title: Id
role:
type: string
title: Role
content:
anyOf:
- type: string
- type: 'null'
title: Content
timestamp:
anyOf:
- type: string
- type: 'null'
title: Timestamp
sources:
anyOf:
- $ref: '#/components/schemas/ChatSourcesResponse'
- type: 'null'
strategy_used:
anyOf:
- type: string
- type: 'null'
title: Strategy Used
replay_from_prior_turn:
anyOf:
- type: boolean
- type: 'null'
title: Replay From Prior Turn
replay_age_seconds:
anyOf:
- type: number
- type: 'null'
title: Replay Age Seconds
type: object
required:
- role
title: ConversationMessageResponse
ConversationListItemResponse:
properties:
_id:
type: string
title: ' Id'
title:
type: string
title: Title
updated_at:
anyOf:
- type: string
- type: 'null'
title: Updated At
created_at:
anyOf:
- type: string
- type: 'null'
title: Created At
message_count:
type: integer
title: Message Count
additionalProperties: false
type: object
required:
- _id
- title
- message_count
title: ConversationListItemResponse
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
ChatMessageBody:
properties:
message:
type: string
maxLength: 16000
minLength: 1
title: Message
conversation_id:
anyOf:
- type: string
- type: 'null'
title: Conversation Id
type: object
required:
- message
title: ChatMessageBody
SendChatMessageResponse:
properties:
conversation_id:
type: string
title: Conversation Id
message_id:
type: string
title: Message Id
user_message_id:
type: string
title: User Message Id
response:
type: string
title: Response
sources:
$ref: '#/components/schemas/ChatSourcesResponse'
created_at:
type: string
title: Created At
replay_from_prior_turn:
type: boolean
title: Replay From Prior Turn
default: false
replay_age_seconds:
anyOf:
- type: number
- type: 'null'
title: Replay Age Seconds
additionalProperties: false
type: object
required:
- conversation_id
- message_id
- user_message_id
- response
- sources
- created_at
title: SendChatMessageResponse
securitySchemes:
OAuth2PasswordBearer:
type: oauth2
flows:
password:
scopes: {}
tokenUrl: token