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

# Unlock event access



## OpenAPI

````yaml /openapi.json post /external/events/{id}/unlock
openapi: 3.1.0
info:
  title: Lensmor API
  version: 0.22.0
  description: >-
    Lensmor Event Intelligence API for event discovery, exhibitor research,
    personnel lookup, credits, and profile matching.
servers:
  - url: https://platform.lensmor.com
security:
  - bearerAuth: []
tags:
  - name: Credits
  - name: Actions
  - name: Events
  - name: Exhibitors
  - name: Personnel
  - name: Contacts
  - name: Profile Matching
paths:
  /external/events/{id}/unlock:
    post:
      tags:
        - Events
      summary: Unlock event access
      operationId: unlockEvent
      parameters:
        - $ref: '#/components/parameters/EventIdPath'
        - $ref: '#/components/parameters/CallSource'
      responses:
        '201':
          description: Event unlock result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventUnlockResult'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '402':
          $ref: '#/components/responses/PaymentRequired'
        '404':
          $ref: '#/components/responses/NotFound'
        '429':
          $ref: '#/components/responses/RateLimited'
components:
  parameters:
    EventIdPath:
      name: id
      in: path
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 100
    CallSource:
      name: x-call-source
      in: header
      required: false
      schema:
        type: string
        enum:
          - api
          - agent
  schemas:
    EventUnlockResult:
      type: object
      required:
        - success
        - alreadyUnlocked
        - creditsUsed
        - balanceAfter
        - event
      properties:
        success:
          type: boolean
        alreadyUnlocked:
          type: boolean
        creditsUsed:
          type: number
        balanceAfter:
          oneOf:
            - type: object
              required:
                - subscriptionBalance
                - permanentBalance
                - totalBalance
                - unlimited
              properties:
                subscriptionBalance:
                  type: number
                permanentBalance:
                  type: number
                totalBalance:
                  type: number
                unlimited:
                  type: boolean
              additionalProperties: true
            - type: 'null'
        event:
          type: object
          required:
            - id
            - eventId
            - name
          properties:
            id:
              type: string
            eventId:
              type: string
            name:
              type:
                - string
                - 'null'
    ApiError:
      type: object
      required:
        - code
        - message
        - errorKey
        - traceId
      properties:
        code:
          type: integer
        message:
          type: string
        errorKey:
          type: string
        traceId:
          type: string
  responses:
    Unauthorized:
      description: Missing or invalid API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    PaymentRequired:
      description: Insufficient credits
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
    RateLimited:
      description: Rate limit exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApiError'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: User API key

````