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

# Create Browser Profile

> Create a subject-scoped browser profile: a durable browser identity that lets a user's merchant login be reused across checkout runs instead of signing in on every run.

A user has at most one browser profile, and it accumulates saved state across merchants.

**API scope required**: `agent-checkouts.browser-profiles.create`



## OpenAPI

````yaml api-reference/_open-api/Agents.json POST /unstable/agent-checkouts/browser-profiles
openapi: 3.1.0
info:
  contact:
    email: support@crossmint.com
    name: Crossmint Support
    url: https://www.crossmint.com
  description: Crossmint Agents API
  title: Crossmint Agents API
  version: 1.0.0
servers:
  - description: Staging environment (testnets)
    url: https://staging.crossmint.com/api
  - description: Production environment (mainnets)
    url: https://www.crossmint.com/api
security: []
tags: []
paths:
  /unstable/agent-checkouts/browser-profiles:
    post:
      tags:
        - Agent Checkout Browser Profiles
      summary: Create Browser Profile
      description: >-
        Create a subject-scoped browser profile: a durable browser identity that
        lets a user's merchant login be reused across checkout runs instead of
        signing in on every run.


        A user has at most one browser profile, and it accumulates saved state
        across merchants.


        **API scope required**: `agent-checkouts.browser-profiles.create`
      operationId: agentCheckouts.browserProfiles.create
      parameters:
        - description: >-
            Server-side auth only: the subject to act on behalf of, namespaced
            under the key's project. Defaults to a fixed service subject when
            omitted. Ignored for client-side (JWT) auth, where the subject comes
            from the token.
          in: header
          name: x-crossmint-user-id
          required: false
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAgentCheckoutBrowserProfileDTO'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentCheckoutBrowserProfileResponseDTO'
          description: The browser profile was created.
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: >-
            Invalid arguments. Make sure you are following the API
            specification.
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: Missing or invalid API key.
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: >-
            Forbidden. Ensure the credentials are correct and the authentication
            source is allowed.
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: The user already has a browser profile.
        '502':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: The upstream service returned an incompatible response.
        '503':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorDto'
          description: >-
            Service unavailable. Try again in a few minutes. If the issue
            persists, contact Crossmint support.
      security:
        - apiKey: []
          userJwt: []
        - apiKey: []
components:
  schemas:
    CreateAgentCheckoutBrowserProfileDTO:
      properties:
        label:
          maxLength: 120
          minLength: 1
          type: string
      type: object
    AgentCheckoutBrowserProfileResponseDTO:
      properties:
        createdAt:
          minLength: 1
          type: string
        id:
          allOf:
            - pattern: >-
                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
            - pattern: >-
                ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
        label:
          maxLength: 120
          minLength: 1
          type: string
        updatedAt:
          minLength: 1
          type: string
      required:
        - createdAt
        - id
        - updatedAt
      type: object
    ApiErrorDto:
      properties:
        code:
          description: Machine-readable error code for programmatic handling
          type: string
        error:
          example: true
          type: boolean
        message:
          description: Human-readable error message describing what went wrong
          type: string
        parameters:
          additionalProperties:
            oneOf:
              - items:
                  type: string
                type: array
              - type: string
          description: >-
            Values that explain a coded error, such as the limit that was
            exceeded, the amount that remains, or the list of supported
            currencies.
          type: object
      required:
        - error
        - message
      type: object
  securitySchemes:
    apiKey:
      description: API key required for authentication
      in: header
      name: X-API-KEY
      type: apiKey
    userJwt:
      bearerFormat: JWT
      description: >-
        The end user's JWT, sent as `Authorization: Bearer <JWT>` together with
        a client-side API key. Validated against the project's external JWT
        configuration.
      scheme: bearer
      type: http

````