openapi: 3.0.0 info: description: 'An API for manipulating Grist sites, workspaces, and documents. # Authentication ' version: 1.0.1 title: Grist attachments profile API servers: - url: https://{gristhost}/api variables: subdomain: description: The team name, or `docs` for personal areas default: docs security: - ApiKey: [] tags: - name: profile paths: /profile/user: get: operationId: getProfile tags: - profile summary: Get current user's profile description: Returns the profile information of the currently authenticated user. responses: 200: description: User profile content: application/json: schema: $ref: '#/components/schemas/User' /profile/user/name: post: operationId: updateUserName tags: - profile summary: Update user's name description: Update the display name for the current user. requestBody: content: application/json: schema: type: object required: - name properties: name: type: string description: New display name example: John Doe responses: 200: description: Name updated successfully /profile/user/locale: post: operationId: updateUserLocale tags: - profile summary: Update user's locale description: Update the locale preference for the current user. requestBody: content: application/json: schema: type: object properties: locale: type: string description: Locale code (e.g. 'en-US', 'fr'). Set to null to clear. example: en-US responses: 200: description: Locale updated successfully /profile/apikey: get: operationId: getApiKey tags: - profile summary: Get user's API key description: Returns the current user's API key if one exists. responses: 200: description: API key content: text/plain: schema: type: string post: operationId: createApiKey tags: - profile summary: Create or regenerate API key description: Create a new API key or regenerate an existing one. requestBody: content: application/json: schema: type: object properties: force: type: boolean description: If true, regenerate even if a key already exists responses: 200: description: New API key content: text/plain: schema: type: string delete: operationId: deleteApiKey tags: - profile summary: Delete user's API key description: Delete the current user's API key. responses: 200: description: API key deleted successfully components: schemas: User: type: object required: - id - name - picture properties: id: type: integer format: int64 example: 101 name: type: string example: Helga Hufflepuff picture: type: string nullable: true example: null securitySchemes: ApiKey: type: http scheme: bearer bearerFormat: 'Authorization: Bearer XXXXXXXXXXX' description: Access to the Grist API is controlled by an Authorization header, which should contain the word 'Bearer', followed by a space, followed by your API key.