> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anlytic.com/llms.txt
> Use this file to discover all available pages before exploring further.

# OTP inwisselen voor werkruimtetoken

> Wisselt een eenmalige toegangscode in voor een ondertekende JWT. Vervang `{kid}` door de sleutel-ID van de werkruimte. Gebruik het e-mailadres als gebruikersnaam en de OTP-code als wachtwoord.



## OpenAPI

````yaml nl/api-reference/openapi.yaml get /api/v1/users/token/{kid}
openapi: 3.1.0
info:
  title: Anlytic API
  version: '1.0'
  description: >-
    De Anlytic REST API. Alle endpoints zijn beschikbaar onder `/api/v1/`.


    ## Authenticatie


    Voor de meeste endpoints is een **Bearer JWT** nodig die je via de
    authenticatiestroom verkrijgt:

    1. `GET /api/v1/users/otp` — vraag een eenmalige toegangscode aan met HTTP
    Basic Auth.

    2. `GET /api/v1/users/token/{kid}` — wissel de code in voor een
    werkruimte-JWT.


    Stuur de JWT bij elke volgende aanvraag mee als `Authorization: Bearer
    <token>`.


    Je kunt ook een **API-sleutel** via dezelfde header gebruiken:
    `Authorization: API-Key <key>`.
  contact:
    name: Anlytic Support
    url: https://anlytic.com
servers:
  - url: https://app.anlytic.com
    description: Productie
security:
  - bearerAuth: []
  - apiKeyAuth: []
tags:
  - name: Configuratie
    description: API-configuratie en beleid
  - name: Triggers
    description: Geplande grafiektriggers en triggeracties
paths:
  /api/v1/users/token/{kid}:
    get:
      tags:
        - Authenticatie
      summary: OTP inwisselen voor werkruimtetoken
      description: >-
        Wisselt een eenmalige toegangscode in voor een ondertekende JWT. Vervang
        `{kid}` door de sleutel-ID van de werkruimte. Gebruik het e-mailadres
        als gebruikersnaam en de OTP-code als wachtwoord.
      operationId: exchangeOtpForWorkspaceToken
      parameters:
        - name: kid
          in: path
          required: true
          schema:
            type: string
            example: workspace-key-id
          description: Waarde voor `kid`.
          example: workspace-key-id
      responses:
        '200':
          description: Aanvraag geslaagd
          content:
            application/json:
              schema:
                type: object
                required:
                  - access_token
                  - refresh_token
                properties:
                  access_token:
                    type: string
                  refresh_token:
                    type: string
                  last_login_at:
                    oneOf:
                      - $ref: '#/components/schemas/Timestamp'
                      - type: 'null'
                  mfa_setup_required:
                    type: boolean
        '401':
          $ref: '#/components/responses/Unauthorized'
      security:
        - basicAuth: []
components:
  schemas:
    Timestamp:
      type: string
      format: date-time
      example: '2024-01-15T10:30:00Z'
    Error:
      type: object
      properties:
        error:
          type: string
          description: Voor mensen leesbare foutmelding
        code:
          type: string
          description: Machineleesbare foutcode
  responses:
    Unauthorized:
      description: Authenticatietoken ontbreekt of is ongeldig
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Stuur een geldig token mee via de header `Authorization: Bearer
        <token>`.
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: Voer `API-Key <key>` in.
    basicAuth:
      type: http
      scheme: basic
      description: >-
        HTTP Basic Auth. Gebruik voor een OTP-aanvraag het e-mailadres als
        gebruikersnaam. Gebruik voor het inwisselen van een token het
        e-mailadres als gebruikersnaam en de OTP-code als wachtwoord.

````