| openapi: 3.0.0 | |
| info: | |
| version: 1.0.0 | |
| title: User Management API | |
| paths: | |
| /admin/users: | |
| get: | |
| summary: List all users | |
| operationId: getUsers | |
| responses: | |
| "200": | |
| description: A list of users | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| users: | |
| type: array | |
| items: | |
| $ref: "#/components/schemas/User" | |
| count: | |
| type: integer | |
| format: int32 | |
| post: | |
| summary: Create a new user | |
| operationId: createUser | |
| requestBody: | |
| content: | |
| application/json: | |
| schema: | |
| oneOf: | |
| - type: object | |
| properties: | |
| type: | |
| type: string | |
| enum: ["normal", "special"] | |
| - type: object | |
| properties: | |
| type: | |
| type: string | |
| enum: ["temporary"] | |
| expiresAt: | |
| type: integer | |
| format: int64 | |
| tokenLimits: | |
| $ref: "#/components/schemas/TokenCount" | |
| responses: | |
| "200": | |
| description: The created user's token | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| token: | |
| type: string | |
| put: | |
| summary: Bulk upsert users | |
| operationId: bulkUpsertUsers | |
| requestBody: | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| users: | |
| type: array | |
| items: | |
| $ref: "#/components/schemas/User" | |
| responses: | |
| "200": | |
| description: The upserted users | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| upserted_users: | |
| type: array | |
| items: | |
| $ref: "#/components/schemas/User" | |
| count: | |
| type: integer | |
| format: int32 | |
| "400": | |
| description: Bad request | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| error: | |
| type: string | |
| /admin/users/{token}: | |
| get: | |
| summary: Get a user by token | |
| operationId: getUser | |
| parameters: | |
| - name: token | |
| in: path | |
| required: true | |
| schema: | |
| type: string | |
| responses: | |
| "200": | |
| description: A user | |
| content: | |
| application/json: | |
| schema: | |
| $ref: "#/components/schemas/User" | |
| "404": | |
| description: Not found | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| error: | |
| type: string | |
| put: | |
| summary: Update a user by token | |
| operationId: upsertUser | |
| parameters: | |
| - name: token | |
| in: path | |
| required: true | |
| schema: | |
| type: string | |
| requestBody: | |
| content: | |
| application/json: | |
| schema: | |
| $ref: "#/components/schemas/User" | |
| responses: | |
| "200": | |
| description: The updated user | |
| content: | |
| application/json: | |
| schema: | |
| $ref: "#/components/schemas/User" | |
| "400": | |
| description: Bad request | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| error: | |
| type: string | |
| delete: | |
| summary: Disables the user with the given token | |
| description: Optionally accepts a `disabledReason` query parameter. Returns the disabled user. | |
| parameters: | |
| - in: path | |
| name: token | |
| required: true | |
| schema: | |
| type: string | |
| description: The token of the user to disable | |
| - in: query | |
| name: disabledReason | |
| required: false | |
| schema: | |
| type: string | |
| description: The reason for disabling the user | |
| responses: | |
| '200': | |
| description: The disabled user | |
| content: | |
| application/json: | |
| schema: | |
| $ref: '#/components/schemas/User' | |
| '400': | |
| description: Bad request | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| error: | |
| type: string | |
| '404': | |
| description: Not found | |
| content: | |
| application/json: | |
| schema: | |
| type: object | |
| properties: | |
| error: | |
| type: string | |
| components: | |
| schemas: | |
| TokenCount: | |
| type: object | |
| properties: | |
| turbo: | |
| type: integer | |
| format: int32 | |
| gpt4: | |
| type: integer | |
| format: int32 | |
| "gpt4-32k": | |
| type: integer | |
| format: int32 | |
| claude: | |
| type: integer | |
| format: int32 | |
| User: | |
| type: object | |
| properties: | |
| token: | |
| type: string | |
| ip: | |
| type: array | |
| items: | |
| type: string | |
| nickname: | |
| type: string | |
| type: | |
| type: string | |
| enum: ["normal", "special"] | |
| promptCount: | |
| type: integer | |
| format: int32 | |
| tokenLimits: | |
| $ref: "#/components/schemas/TokenCount" | |
| tokenCounts: | |
| $ref: "#/components/schemas/TokenCount" | |
| createdAt: | |
| type: integer | |
| format: int64 | |
| lastUsedAt: | |
| type: integer | |
| format: int64 | |
| disabledAt: | |
| type: integer | |
| format: int64 | |
| disabledReason: | |
| type: string | |
| expiresAt: | |
| type: integer | |
| format: int64 | |