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

# Create new API key

> Create a new API key with specified permissions and rate limits



## OpenAPI

````yaml /api-reference/openapi.json post /api/v1/api-keys
openapi: 3.0.0
info:
  contact:
    email: support@linguolink.dev
    name: LinguLink Support
  description: Translation management API for LinguLink platform
  license:
    name: MIT
    url: https://opensource.org/licenses/MIT
  title: LinguLink API v1
  version: 1.0.0
servers:
  - description: Development server
    url: http://localhost:3000
  - description: Production server
    url: https://linguolink.dev
security: []
tags:
  - description: API key authentication and validation
    name: Authentication
  - description: API key management operations
    name: API Keys
  - description: Translation management operations
    name: Translations
  - description: Endpoints the `lingulink` CLI's pull/push commands call
    name: CLI
  - description: Project metadata and translation coverage
    name: Projects
paths:
  /api/v1/api-keys:
    post:
      tags:
        - API Keys
      summary: Create new API key
      description: Create a new API key with specified permissions and rate limits
      operationId: createApiKey
      parameters:
        - description: 'Maximum number of items to return (default: 10, max: 100)'
          in: query
          name: limit
          required: false
          schema:
            type: string
          example: 10
        - description: 'Number of items to skip for pagination (default: 0)'
          in: query
          name: offset
          required: false
          schema:
            type: string
          example: 0
      requestBody:
        content:
          application/json:
            schema:
              properties:
                name:
                  description: Name for the API key
                  example: My API Key
                  type: string
                rateLimit:
                  default: 1000
                  description: Rate limit in requests per hour
                  example: 1000
                  maximum: 10000
                  minimum: 1
                  type: integer
                scopes:
                  default:
                    - export:read
                  description: Permissions for the API key
                  example:
                    - export:read
                    - translations:read
                  items:
                    enum:
                      - export:read
                      - translations:read
                      - translations:write
                      - admin
                    type: string
                  type: array
              required:
                - name
              type: object
        description: API key creation data
        required: true
      responses:
        '200':
          content:
            application/json:
              example: {}
              schema:
                type: object
          description: Successful response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/InternalServerError'
      security:
        - BearerAuth: []
        - OAuth2: []
components:
  responses:
    BadRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Bad request
    Unauthorized:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Authentication required
    InternalServerError:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal server error
  schemas:
    Error:
      properties:
        details:
          description: Additional error details (development only)
          type: string
        error:
          description: Error message
          type: string
        timestamp:
          description: Error timestamp
          format: date-time
          type: string
      required:
        - error
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: API Key
      description: 'Enter your API key in the format: Bearer <api_key>'
      scheme: bearer
      type: http
    OAuth2:
      description: >-
        Exchange your API key (as client_secret) for a short-lived access token.
        The playground fetches and applies the token automatically.
      flows:
        clientCredentials:
          scopes:
            admin: Administrate translations and API keys
            export:read: Export translations
            translations:read: Read translations
            translations:write: Create or update translations
          tokenUrl: https://linguolink.dev/api/v1/auth/token
      type: oauth2

````