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

# Sign up as an agent

> Create a Mixpeek organization and API key without a browser. Send the email of the person you work for and accept_terms=true. The response carries a working API key (shown once), a namespace with a bucket, a collection and a retriever, and the calls that take a file to a search result. The email owner gets one email: confirming keeps the key, otherwise it expires 72 hours after signup, and blocking revokes it and refuses later agent signups for that email. One pending signup per email; limited per IP address per hour.



## OpenAPI

````yaml post /v1/signup/agent
openapi: 3.1.0
info:
  title: Mixpeek API
  description: >-
    This is the Mixpeek API, providing access to various endpoints for data
    processing and retrieval.
  termsOfService: https://mixpeek.com/terms
  contact:
    name: Mixpeek Support
    url: https://mixpeek.com/contact
    email: info@mixpeek.com
  version: '0.82'
servers:
  - url: https://api.mixpeek.com
    description: Production
security:
  - BearerAuth: []
paths:
  /v1/signup/agent:
    post:
      tags:
        - Signup
      summary: Sign up as an agent
      description: >-
        Create a Mixpeek organization and API key without a browser. Send the
        email of the person you work for and accept_terms=true. The response
        carries a working API key (shown once), a namespace with a bucket, a
        collection and a retriever, and the calls that take a file to a search
        result. The email owner gets one email: confirming keeps the key,
        otherwise it expires 72 hours after signup, and blocking revokes it and
        refuses later agent signups for that email. One pending signup per
        email; limited per IP address per hour.
      operationId: agent_signup_v1_signup_agent_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentSignupRequest'
        required: true
        description: >-
          Keys this body does not declare are refused with 422 extra_forbidden
          naming the accepted keys (since 2026-11-02).
        x-unknown-keys:
          until: '2026-11-02'
          then: 422 extra_forbidden
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentSignupResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: The email owner blocked agent signups.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: This email already has a signup waiting for confirmation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: accept_terms is not true, or the email is disposable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: Too many signups from this IP address this hour.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      security: []
components:
  schemas:
    AgentSignupRequest:
      properties:
        email:
          type: string
          format: email
          title: Email
          description: >-
            Email of the person the agent works for. They get one email with a
            link to keep the key and a link to block it. Until they confirm, the
            key expires 72 hours after signup.
          examples:
            - dev@example.com
        agent_name:
          anyOf:
            - type: string
              maxLength: 80
            - type: 'null'
          title: Agent Name
          description: Name of the agent or tool signing up, shown in that email.
          examples:
            - Claude Code
        accept_terms:
          type: boolean
          title: Accept Terms
          description: >-
            Must be true: the email owner's use is governed by the terms at
            https://mixpeek.com/terms
      type: object
      required:
        - email
        - accept_terms
      title: AgentSignupRequest
      description: What an agent sends to get its own API key.
    AgentSignupResponse:
      properties:
        api_key:
          type: string
          title: Api Key
          description: >-
            Send as 'Authorization: Bearer <api_key>'. Returned once; Mixpeek
            stores only its hash.
        key_expires_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Key Expires At
          description: When the key stops working unless the email owner confirms.
        status:
          type: string
          title: Status
          description: pending_confirmation until the email owner confirms.
        confirmation_sent_to:
          type: string
          title: Confirmation Sent To
          description: The email that was sent.
        organization_id:
          type: string
          title: Organization Id
          description: The new organization.
        namespace:
          type: string
          title: Namespace
          description: >-
            Send as the 'X-Namespace' header. It holds a bucket, a collection
            and a retriever, ready to index and search.
        namespace_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Namespace Id
          description: Namespace id, or null if it is still being created.
        bucket:
          type: string
          title: Bucket
          description: Bucket to upload files into.
        retriever:
          type: string
          title: Retriever
          description: Retriever to search with.
        credits:
          type: integer
          title: Credits
          description: Credits the organization starts with.
        next_steps:
          items:
            type: string
          type: array
          title: Next Steps
          description: The calls that take a file to a search result.
        docs_url:
          type: string
          title: Docs Url
          description: Full API reference.
      type: object
      required:
        - api_key
        - key_expires_at
        - status
        - confirmation_sent_to
        - organization_id
        - namespace
        - bucket
        - retriever
        - credits
        - next_steps
        - docs_url
      title: AgentSignupResponse
      description: The key and workspace an agent gets back. The key is shown only here.
    ErrorResponse:
      properties:
        success:
          type: boolean
          title: Success
          description: Always false for error responses
          default: false
        status:
          type: integer
          title: Status
          description: HTTP status code for this error
        error:
          $ref: '#/components/schemas/ErrorDetail'
          description: Error details payload
      type: object
      required:
        - status
        - error
      title: ErrorResponse
      description: Error response model.
      examples:
        - error:
            details:
              id: ns_123
              resource: namespace
            message: Namespace not found
            type: NotFoundError
          status: 404
          success: false
    ErrorDetail:
      properties:
        message:
          type: string
          title: Message
          description: Human-readable error message
        type:
          type: string
          title: Type
          description: Stable error type identifier (machine-readable)
        code:
          anyOf:
            - type: string
            - type: 'null'
          title: Code
          description: >-
            Fine-grained error code for programmatic handling (e.g.,
            namespace_name_taken, feature_extractor_not_found). Present only
            when consumers may need to branch on a specific error condition.
        details:
          anyOf:
            - additionalProperties: true
              type: object
            - type: 'null'
          title: Details
          description: >-
            Optional structured details to help debugging (validation errors,
            IDs, etc.)
      type: object
      required:
        - message
        - type
      title: ErrorDetail
      description: Error detail model.
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Mixpeek API key, sent as `Authorization: Bearer mxp_sk_...`. Create one
        in Studio under Settings → API Keys, or with an admin key via `POST
        /v1/organizations/users/{user_email}/api-keys`. A missing, malformed,
        unknown, revoked, inactive or expired key returns 401; a key without the
        permission, scope or plan an operation needs returns 403.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.