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

# Criar chave de API

> Emite uma chave nova. O token completo aparece uma única vez.



## OpenAPI

````yaml POST /api-keys
openapi: 3.1.0
info:
  title: ID ZapSign
  version: 1.0.0
  description: >-
    API de validações de identidade da ID ZapSign. Crie validações, consulte o
    resultado e gerencie suas chaves de API.
  contact:
    name: Suporte ID ZapSign
    url: https://id.zapsign.com.br
    email: support@zapsign.com.br
servers:
  - url: https://api.id.zapsign.com.br/v1
    description: Produção
security:
  - bearerAuth: []
tags:
  - name: Validações
    description: Criação e consulta de validações.
  - name: Chaves de API
    description: Criação, listagem e revogação de chaves de API.
paths:
  /api-keys:
    post:
      tags:
        - Chaves de API
      summary: Cria uma chave de API.
      description: >-
        O token completo aparece uma única vez, nesta resposta. Guarde antes de
        fechar. Este endpoint não aceita `Idempotency-Key`: cada chamada cria
        uma chave nova.
      operationId: createApiKey
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiKeyInput'
            examples:
              padrao:
                summary: Escopo padrão (só validações)
                value:
                  name: Integração backend
              full_access:
                summary: Escopo total, inclui gerenciar chaves
                value:
                  name: Automação de infraestrutura
                  permission: full_access
      responses:
        '201':
          description: Chave criada; o token é retornado uma única vez.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyCreation'
              examples:
                criada:
                  summary: Chave criada
                  value:
                    object: api_key
                    id: key_0VH6KAMHAE8HTD08DB9XVZEN3P
                    token: sk_XhhtZoudJBibSS7-r2GwZicaCzhrbY9ZZxrIC4ESrjc
        '400':
          $ref: '#/components/responses/InvalidRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  schemas:
    ApiKeyInput:
      type: object
      description: Dados para criar uma chave de API.
      required:
        - name
      properties:
        name:
          type: string
          minLength: 1
          maxLength: 50
          description: Nome para identificar a chave depois.
          example: Integração backend
        permission:
          type: string
          enum:
            - validations_access
            - full_access
          description: |-
            Escopo da chave. Se você omitir, vale `validations_access`.

            | Valor | O que permite |
            | --- | --- |
            | `validations_access` | Criar e consultar validações |
            | `full_access` | O mesmo, mais gerenciar chaves de API |
    ApiKeyCreation:
      type: object
      description: >-
        Resposta da criação: o id da chave e o token completo, que aparece uma
        única vez.
      required:
        - object
        - id
        - token
      properties:
        object:
          type: string
          enum:
            - api_key
          description: Sempre `api_key`.
        id:
          type: string
          description: Identificador único da chave criada.
          example: key_0VH6KAMHAE8HTD08DB9XVZEN3P
        token:
          type: string
          description: 'O token secreto. Guarde agora: esta é a única resposta que o traz.'
          example: sk_XhhtZoudJBibSS7-r2GwZicaCzhrbY9ZZxrIC4ESrjc
    ErrorEnvelope:
      type: object
      description: >-
        Formato único de erro. Toda falha da API responde neste formato. A lista
        completa de `code` está em [Erros](/erros).
      required:
        - error
      properties:
        error:
          type: object
          required:
            - type
            - code
            - message
            - doc_url
            - request_id
          properties:
            type:
              type: string
              enum:
                - invalid_request
                - authentication_error
                - not_found
                - api_error
                - idempotency_error
                - payment_error
                - rate_limit_error
              description: >-
                Categoria do erro. Serve para tratar famílias inteiras sem
                enumerar cada `code`.
            code:
              type: string
              description: >-
                Código estável do erro. É o que você deve usar para ramificar no
                seu código.
              example: missing_required_param
            message:
              type: string
              description: >-
                Descrição legível, em inglês. É para diagnóstico, não para
                mostrar ao usuário final.
            param:
              type: string
              description: O campo que causou o erro, quando aplicável.
              example: cpf
            doc_url:
              type: string
              description: Link direto para este código nesta documentação.
              example: https://docs.id.zapsign.com.br/missing_required_param
            request_id:
              type: string
              description: Identificador da requisição. Inclua no contato com o suporte.
              example: req_3PK3TA2H0MEMTDSAPREHSY4QC4
  responses:
    InvalidRequest:
      description: Requisição inválida (corpo, parâmetro ou chave de idempotência).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              type: invalid_request
              code: missing_required_param
              message: A required parameter is missing.
              param: cpf
              doc_url: https://docs.id.zapsign.com.br/missing_required_param
              request_id: req_3PK3TA2H0MEMTDSAPREHSY4QC4
    Unauthorized:
      description: Chave de API ausente ou inválida.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              type: authentication_error
              code: invalid_api_key
              message: The API key provided is invalid.
              doc_url: https://docs.id.zapsign.com.br/invalid_api_key
              request_id: req_3PK3TA2H0MEMTDSAPREHSY4QC4
    Forbidden:
      description: A chave de API não tem permissão para esta operação.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              type: invalid_request
              code: insufficient_permission
              message: The API key does not have permission to perform this action.
              doc_url: https://docs.id.zapsign.com.br/insufficient_permission
              request_id: req_3PK3TA2H0MEMTDSAPREHSY4QC4
    TooManyRequests:
      description: Limite de requisições excedido. Veja [Limites de uso](/limites-de-uso).
      headers:
        Retry-After:
          description: Segundos a aguardar antes de tentar de novo. Presente em todo 429.
          schema:
            type: integer
            minimum: 1
        RateLimit-Limit:
          description: Teto de requisições da classe para a conta. Só no 429 de taxa.
          schema:
            type: integer
            minimum: 1
        RateLimit-Remaining:
          description: Requisições restantes na janela atual. Só no 429 de taxa.
          schema:
            type: integer
            minimum: 0
        RateLimit-Reset:
          description: >-
            Segundos até o limite se restabelecer por completo. Só no 429 de
            taxa.
          schema:
            type: integer
            minimum: 0
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              type: rate_limit_error
              code: rate_limit_exceeded
              message: Too many requests. Please retry after the indicated delay.
              doc_url: https://docs.id.zapsign.com.br/rate_limit_exceeded
              request_id: req_3PK3TA2H0MEMTDSAPREHSY4QC4
    InternalError:
      description: Erro interno inesperado.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorEnvelope'
          example:
            error:
              type: api_error
              code: api_error
              message: An internal error occurred.
              doc_url: https://docs.id.zapsign.com.br/api_error
              request_id: req_3PK3TA2H0MEMTDSAPREHSY4QC4
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Sua chave de API no cabeçalho `Authorization: Bearer sk_...`. Crie e
        revogue chaves no painel ou pelos endpoints de Chaves de API.

````