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

# Create Api Key

> Generate a new API key. The key value is only returned once. Store it securely.



## OpenAPI

````yaml /openapi.documented.yml post /api-keys
openapi: 3.1.0
info:
  title: Nuntly REST API 1.x
  version: 1.0.1
  description: Nuntly REST API definition
  termsOfService: https://nuntly.com/legal/terms-of-service
  contact:
    name: Nuntly Support
    url: https://nuntly.com/docs
    email: support@nuntly.com
servers:
  - description: Nuntly API endpoint
    url: https://api.nuntly.com
security:
  - bearerAuth: []
tags:
  - name: API Keys
    description: >-
      Create and revoke API keys used to authenticate requests to the Nuntly
      API.
  - name: Agents
    description: >-
      Read and write persistent state for an AI agent, optionally scoped to a
      specific inbox or thread.
  - name: Domains
    description: >-
      Add and verify sending and receiving domains. Manage DKIM records, SPF
      configuration, and enable inbound email routing.
  - name: Emails
    description: >-
      Send transactional emails, retrieve sending history, and track delivery
      status per message.
  - name: Inboxes
    description: >-
      Create email inboxes at a specific address on a verified receiving domain.
      Assign inboxes to namespaces or AI agents.
  - name: Messages
    description: >-
      Access received messages, download attachments, and send replies or
      forwards from an inbox.
  - name: Namespaces
    description: >-
      Isolate inboxes by tenant, client, or agent using namespaces. Use an
      external ID to map namespaces to your own data model.
  - name: Organizations
    description: >-
      Manage your organization profile, team members, and account-level
      settings.
  - name: Threads
    description: >-
      Browse email conversations grouped by subject. Mark threads as read or
      spam, and assign them to an agent.
  - name: Webhooks
    description: >-
      Register HTTP endpoints to receive real-time delivery events such as
      bounces, opens, and clicks.
  - name: Webhooks Events
    description: >-
      Inspect webhook event history and replay failed deliveries for debugging
      or recovery.
  - name: Webhooks Hook
    description: >-
      Endpoint your server implements to receive webhook events. Not a Nuntly
      API endpoint - this documents the shape your handler must accept.
externalDocs:
  description: Nuntly API Documentation
  url: https://nuntly.com/docs
paths:
  /api-keys:
    post:
      tags:
        - API Keys
      summary: Create Api Key
      description: >-
        Generate a new API key. The key value is only returned once. Store it
        securely.
      operationId: create-api-key
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateApiKeyRequest'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/CreateApiKeyResponse'
                required:
                  - data
                additionalProperties: false
        '500':
          description: An error response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      x-codeSamples:
        - lang: cURL
          source: |-
            curl -X POST 'https://api.nuntly.com/api-keys' \
              -H 'Authorization: Bearer apk_xxx' \
              -H 'Content-Type: application/json' \
              -d '{"name":"Production","permission":"fullAccess"}'
        - lang: JavaScript
          source: |-
            import { Nuntly } from '@nuntly/sdk';

            const client = new Nuntly({
              apiKey: process.env['NUNTLY_API_KEY'],
            });

            const response = await client.apiKeys.create({
              name: 'Production',
              permission: 'fullAccess',
            });
        - lang: Java
          source: |-
            import com.nuntly.sdk.Nuntly;
            import com.nuntly.sdk.ClientOptions;
            import com.nuntly.sdk.models.*;

            var nuntly = Nuntly.create(ClientOptions.builder()
                .apiKey(System.getenv("NUNTLY_API_KEY"))
                .build());

            var response = nuntly.apiKeys().create(CreateApiKeyRequest.builder()
                .name("Production")
                .permission("fullAccess")
                .build());
components:
  schemas:
    CreateApiKeyRequest:
      type: object
      required:
        - permission
      properties:
        name:
          description: The name of the api key
          type: string
          examples:
            - Production
        status:
          description: The status for the api key
          type: string
          enum:
            - enabled
            - disabled
            - revoked
        permission:
          description: The permission type for the api key
          type: string
          enum:
            - fullAccess
            - sendingAccess
        domainIds:
          description: The domain ids to restrict the api key to (only for sendingAccess)
          type: array
          items:
            type: string
    CreateApiKeyResponse:
      type: object
      required:
        - id
        - apiKey
        - shortToken
        - status
      properties:
        id:
          description: The id of the api key
          type: string
          examples:
            - apk_01ka8k8s80gvx9604cn9am5st4
        name:
          description: The name of the api key
          type: string
          examples:
            - Production
        apiKey:
          description: The content of the api key
          type: string
        shortToken:
          description: The last 6 characters of the api key token
          type: string
        status:
          description: The status for the api key
          type: string
          enum:
            - enabled
            - disabled
            - revoked
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          $ref: '#/components/schemas/Error'
          description: >-
            This object provide you additional information about errors
            encountered while performing the operation
    Error:
      type: object
      required:
        - status
        - code
        - title
      properties:
        status:
          description: >-
            The HTTP status code generated by the origin server for this
            occurrence of the error.
          type: number
        code:
          description: An API specific code representing the type of error.
          type: string
        title:
          description: A short, human-readable summary of the error type.
          type: string
        details:
          description: >-
            A (best effort) human readable explanation specific to this
            occurrence of the error.
          type: object
          additionalProperties: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API Key (format apk_...)
      description: >-
        Use an API key from https://nuntly.com/api-keys. Required on every
        endpoint.

````