mirror of
https://github.com/TypingMind/typingmind.git
synced 2025-04-25 14:39:08 +00:00
398 lines
9.6 KiB
YAML
398 lines
9.6 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: TypingMind API Documentation
|
|
version: 1.1.0
|
|
description: "
|
|
<h5 class='mt-8 mb-2'><b>API Hosts:</b></h5>
|
|
<ol class='list-decimal mt-2'>
|
|
<li>For US instances: <code>https://api.typingmind.com</code></li>
|
|
<li>For EU instances: <code>https://api.eu.typingmind.com</code></li>
|
|
</ol>
|
|
<h5 class='mt-8 mb-2'><b>How to use the API:</b></h5>
|
|
<ol class='list-decimal mt-2'>
|
|
<li>Generate an API key by accessing the custom instance admin page (go to Integrations > API Integration).</li>
|
|
<li>When making a request, include the API key in the request headers as <code>X-API-KEY</code>.</li>
|
|
</ol>
|
|
"
|
|
|
|
servers:
|
|
- url: https://api.typingmind.com/api/v1
|
|
|
|
tags:
|
|
- name: Users
|
|
- name: Characters
|
|
- name: Chat
|
|
- name: Chatlogs
|
|
|
|
paths:
|
|
/users:
|
|
post:
|
|
operationId: addUser
|
|
tags:
|
|
- Users
|
|
summary: Add a user to your chat instance
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
email:
|
|
type: string
|
|
example: email@example.com
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ['tag1', 'tag2']
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
get:
|
|
operationId: getUsers
|
|
tags:
|
|
- Users
|
|
summary: Get all users in your chat instance
|
|
parameters:
|
|
- in: query
|
|
name: email
|
|
schema:
|
|
type: string
|
|
description: Email of the user
|
|
example: email%40example.com
|
|
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/User'
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
/ai-characters:
|
|
get:
|
|
operationId: getCharacters
|
|
tags:
|
|
- Characters
|
|
summary: Get all AI characters in your chat instance
|
|
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/Character'
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
|
|
/users/{id}:
|
|
get:
|
|
operationId: getUser
|
|
tags:
|
|
- Users
|
|
summary: Get user information by ID
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: integer
|
|
required: true
|
|
description: ID of the user
|
|
example: 123456
|
|
responses:
|
|
'200':
|
|
description: Successful
|
|
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'404':
|
|
description: User Not Found
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
delete:
|
|
operationId: deleteUser
|
|
tags:
|
|
- Users
|
|
summary: Remove a user from your chat instance
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: integer
|
|
required: true
|
|
description: ID of the user
|
|
example: 123456
|
|
responses:
|
|
'200':
|
|
description: Successful
|
|
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'404':
|
|
description: User Not Found
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
patch:
|
|
operationId: updateUser
|
|
tags:
|
|
- Users
|
|
summary: Update a user
|
|
parameters:
|
|
- in: path
|
|
name: id
|
|
schema:
|
|
type: integer
|
|
required: true
|
|
description: ID of the user
|
|
example: 123456
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ['tag1', 'tag2']
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful
|
|
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'404':
|
|
description: User Not Found
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
/chat/completions:
|
|
post:
|
|
operationId: createChatCompletions
|
|
tags:
|
|
- Chat
|
|
summary: Create a model response for the given chat conversation
|
|
|
|
requestBody:
|
|
description: '<br>Find more information about the request body here:<br>
|
|
<a href="https://platform.openai.com/docs/api-reference/chat/create" target="_blank">OpenAI API Reference</a><br>
|
|
<a href="https://docs.anthropic.com/claude/reference/complete_post" target="_blank">Anthropic API Reference</a><br><br>'
|
|
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
model:
|
|
type: string
|
|
enum:
|
|
[
|
|
'gpt-3.5-turbo',
|
|
'gpt-3.5-turbo-16k',
|
|
'gpt-4',
|
|
'claude-1',
|
|
]
|
|
stream:
|
|
type: boolean
|
|
messages:
|
|
type: array
|
|
items:
|
|
type: object
|
|
description: Use for GPT models
|
|
prompt:
|
|
type: string
|
|
description: Use for Claude models
|
|
activatedCharacterID:
|
|
type: string
|
|
description: AI character for this completion
|
|
required:
|
|
- model
|
|
- messages
|
|
- prompt
|
|
example:
|
|
model: 'gpt-3.5-turbo'
|
|
stream: true
|
|
messages:
|
|
[
|
|
{
|
|
'role': 'system',
|
|
'content': 'You are a helpful AI assistant.',
|
|
},
|
|
{ 'role': 'user', 'content': 'hi' },
|
|
]
|
|
|
|
required: true
|
|
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
/chatlogs:
|
|
get:
|
|
operationId: getChatlogs
|
|
tags:
|
|
- Chatlogs
|
|
summary: Get chat logs in your chat instance
|
|
parameters:
|
|
- in: query
|
|
name: startUnixTime
|
|
schema:
|
|
type: number
|
|
description: Unix time of the start time
|
|
example: 1640995200
|
|
- in: query
|
|
name: endUnixTime
|
|
schema:
|
|
type: number
|
|
description: Unix time of the end time
|
|
example: 1640995200
|
|
|
|
responses:
|
|
'200':
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: object
|
|
properties:
|
|
data:
|
|
type: array
|
|
items:
|
|
oneOf:
|
|
- $ref: '#/components/schemas/Chatlog'
|
|
'401':
|
|
description: Unauthorized (API Key is missing or invalid)
|
|
|
|
'500':
|
|
description: Internal Server Error
|
|
|
|
security:
|
|
- ApiKeyAuth: []
|
|
|
|
|
|
components:
|
|
securitySchemes:
|
|
ApiKeyAuth:
|
|
type: apiKey
|
|
in: header
|
|
name: X-API-KEY
|
|
|
|
schemas:
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
example: 123456
|
|
email:
|
|
type: string
|
|
example: email@example.com
|
|
createdAt:
|
|
type: string
|
|
tags:
|
|
type: array
|
|
items:
|
|
type: string
|
|
example: ['tag1', 'tag2']
|
|
Character:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
title:
|
|
type: string
|
|
description:
|
|
type: string
|
|
instruction:
|
|
type: string
|
|
defaultModel:
|
|
type: string
|
|
createdAt:
|
|
type: string
|
|
Chatlog:
|
|
type: object
|
|
properties:
|
|
chatID:
|
|
type: string
|
|
example: 'U9H8EEJpLL'
|
|
chatTitle:
|
|
type: string
|
|
example: 'Chat with an AI assistant'
|
|
createdAt:
|
|
type: string
|
|
example: '2024-08-14T04:18:53.000Z'
|
|
recordedAt:
|
|
type: string
|
|
example: '2024-08-14T04:18:53.000Z'
|
|
conversationText:
|
|
type: string
|
|
example: 'User: Hello\n\nAssistant: Hi there!'
|