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

# Generar API Key

> Crea una nueva API key para acceder a la API de LINA.

<Note>
  La API key completa solo se muestra una vez en la respuesta. Guárdala en un lugar seguro.
</Note>

## Body

<ParamField body="name" type="string" required>
  Nombre descriptivo para identificar la API key (ej. "Backend producción").
</ParamField>

<ParamField body="permissions" type="string[]">
  Lista de permisos asignados a la key. Si se omite, se asignan todos los permisos.

  Valores permitidos: `patients:read`, `patients:write`, `forms:read`, `forms:write`, `schedules:read`, `schedules:write`, `calls:read`, `calls:write`, `conversations:read`, `conversations:write`, `credits:read`, `webhooks:read`, `webhooks:write`.
</ParamField>

<ResponseExample>
  ```json 201 theme={null}
  {
    "id": "key_abc123",
    "name": "Backend producción",
    "key": "lina_sk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6",
    "permissions": ["patients:read", "patients:write", "forms:read"],
    "createdAt": "2026-05-14T10:00:00Z"
  }
  ```
</ResponseExample>

<ResponseField name="id" type="string">
  Identificador único de la API key.
</ResponseField>

<ResponseField name="name" type="string">
  Nombre descriptivo de la key.
</ResponseField>

<ResponseField name="key" type="string">
  La API key completa. **Solo se muestra en esta respuesta.** Úsala para obtener tokens de acceso.
</ResponseField>

<ResponseField name="permissions" type="string[]">
  Lista de permisos asignados.
</ResponseField>

<ResponseField name="createdAt" type="string">
  Fecha de creación en formato ISO 8601.
</ResponseField>


## OpenAPI

````yaml openapi.yml POST /api-keys
openapi: 3.1.0
info:
  title: LINA Healthcare Platform API
  version: 1.0.0
  description: |
    API de integración para la plataforma LINA Healthcare.
    Todas las rutas requieren un token JWT obtenido intercambiando una API Key.
servers:
  - url: https://api.linahealthcareplatform.com/api/v1
    description: Production
security:
  - bearerAuth: []
paths:
  /api-keys:
    post:
      tags:
        - API Keys
      summary: Crear API Key
      description: Crea una nueva API Key para el site (solo admin)
      operationId: createApiKey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - name
              properties:
                name:
                  type: string
                  description: Nombre identificativo
                permissions:
                  type: array
                  items:
                    type: string
                    enum:
                      - read
                      - write
                      - calls
                      - conversations
                      - webhooks
                      - admin
      responses:
        '201':
          description: Key creada (solo se muestra una vez)
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  name:
                    type: string
                  key:
                    type: string
                  maskedKey:
                    type: string
                  permissions:
                    type: array
                    items:
                      type: string
                  createdAt:
                    type: string
                    format: date-time
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Token JWT obtenido via POST /auth/token

````