ManagePrompt Sessions API

Stateful cloud browser sessions.

Operations 3

POST /v1/sessions Create a browser session #
GET /v1/sessions/{sessionId} Get session metadata #
DELETE /v1/sessions/{sessionId} Close a browser session #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/manageprompt:manageprompt-sessions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

manageprompt-sessions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Capture Sessions API
  version: 6.34.0
  license:
    name: UNLICENSED
    url: https://capture.page
  description: 'OpenAPI contract for Capture browser sessions and Capture actions.


    Session endpoints use Bearer authentication with the same token format as

    Capture MCP:


    `Authorization: Bearer `


    `secret` may be the user''s primary secret or one of their API secrets.'
servers:
- url: https://{host}
  description: Replace `host` with your Capture API deployment hostname.
  variables:
    host:
      default: api.capture.page
security:
- bearerAuth: []
tags:
- name: Sessions
  description: Stateful cloud browser sessions.
paths:
  /v1/sessions:
    post:
      tags:
      - Sessions
      operationId: createSession
      summary: Create a browser session
      description: 'Creates a stateful browser session on the handling Capture API instance.

        The session is automatically closed when its TTL expires. Billable

        sessions charge 1 credit per elapsed minute, rounded up. Each user

        can have up to 5 active sessions at a time.'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSessionRequest'
            examples:
              defaultTtl:
                value: {}
              customTtl:
                value:
                  maxTtlSeconds: 300
              cdp:
                value:
                  maxTtlSeconds: 300
                  cdp: true
              proxyAndBypass:
                value:
                  maxTtlSeconds: 300
                  proxy: true
                  bypassBotDetection: true
              cdpWithProxy:
                summary: CDP session through the configured proxy
                value:
                  maxTtlSeconds: 300
                  cdp: true
                  proxy: true
      responses:
        '201':
          description: Session created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSessionResponse'
              examples:
                default:
                  value:
                    success: true
                    session:
                      id: sess_123e4567-e89b-12d3-a456-426614174000
                      status: active
                      expiresAt: '2026-06-17T11:20:00.000Z'
                      maxTtlSeconds: 300
                      proxy: false
                      bypassBotDetection: false
                      cdp: false
                cdp:
                  value:
                    success: true
                    session:
                      id: sess_123e4567-e89b-12d3-a456-426614174000
                      status: active
                      expiresAt: '2026-06-17T11:20:00.000Z'
                      maxTtlSeconds: 300
                      proxy: false
                      bypassBotDetection: false
                      cdp: true
                      connectUrl: wss://connect.capture.page/cdp?token=v1.example
                cdpWithProxy:
                  value:
                    success: true
                    session:
                      id: sess_123e4567-e89b-12d3-a456-426614174000
                      status: active
                      expiresAt: '2026-06-17T11:20:00.000Z'
                      maxTtlSeconds: 300
                      proxy: true
                      bypassBotDetection: false
                      cdp: true
                      connectUrl: wss://connect.capture.page/cdp?token=v1.example
        '400':
          description: Invalid session options
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                cdpWithBypass:
                  summary: CDP cannot be combined with bypassBotDetection
                  value:
                    success: false
                    error: cdp cannot be combined with bypassBotDetection
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          description: User has reached the active session limit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SessionLimitErrorResponse'
        '503':
          description: CDP session creation is temporarily unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                success: false
                error: CDP connections are not available
        '500':
          $ref: '#/components/responses/InternalError'
  /v1/sessions/{sessionId}:
    get:
      tags:
      - Sessions
      operationId: getSession
      summary: Get session metadata
      parameters:
      - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          description: Session metadata
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSessionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalError'
    delete:
      tags:
      - Sessions
      operationId: closeSession
      summary: Close a browser session
      description: 'Closes an active session and charges duration credits once. Repeated

        close requests for an already-finalized session are idempotent.'
      parameters:
      - $ref: '#/components/parameters/SessionId'
      responses:
        '200':
          description: Session closed or already finalized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetSessionResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          description: Session is unavailable or not active
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/components/schemas/ErrorResponse'
                - $ref: '#/components/schemas/InactiveSessionActionResponse'
        '500':
          $ref: '#/components/responses/InternalError'
        '503':
          $ref: '#/components/responses/ServiceUnavailable'
        '504':
          $ref: '#/components/responses/GatewayTimeout'
components:
  responses:
    GatewayTimeout:
      description: Action timed out
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Missing or invalid Bearer credentials
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Session not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: User is not allowed to create the session
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ServiceUnavailable:
      description: Required backing service is unavailable
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    CreateSessionRequest:
      type: object
      additionalProperties: false
      properties:
        maxTtlSeconds:
          type: integer
          minimum: 1
          maximum: 900
          description: Maximum session lifetime. Values above 900 are capped.
          example: 300
        proxy:
          type: boolean
          default: false
          description: Use the authenticated user's configured browser proxy.
        bypassBotDetection:
          type: boolean
          default: false
          description: Use Capture's configured captcha/bot-detection bypass browser when available.
        cdp:
          type: boolean
          default: false
          description: 'Expose a Chrome DevTools Protocol connection URL for direct browser

            automation clients. CDP sessions can be combined with `proxy` so CDP-created

            targets use the authenticated user''s configured proxy, but cannot be combined

            with `bypassBotDetection`. CDP connection support must be available.

            The create response includes `session.cdp`; session metadata includes

            `session.options.cdp`.

            '
    BrowserSession:
      type: object
      required:
      - id
      - status
      - startedAt
      - expiresAt
      - billedCredits
      - actionCount
      - actionSuccessCount
      - actionErrorCount
      - actionBreakdown
      - options
      properties:
        id:
          type: string
        status:
          $ref: '#/components/schemas/SessionStatus'
        closeReason:
          type:
          - string
          - 'null'
          example: closed
        createdAt:
          type: string
          format: date-time
        startedAt:
          type: string
          format: date-time
        expiresAt:
          type: string
          format: date-time
        closedAt:
          type:
          - string
          - 'null'
          format: date-time
        durationSeconds:
          type:
          - integer
          - 'null'
        billedCredits:
          type:
          - integer
          - 'null'
          description: Duration credits charged at 1 credit per elapsed minute, rounded up.
        actionCount:
          type: integer
          description: Number of actions attempted.
        actionSuccessCount:
          type: integer
          description: Number of actions completed successfully.
        actionErrorCount:
          type: integer
          description: Number of actions that failed.
        actionBreakdown:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/UsageBreakdownEntry'
        options:
          type: object
          additionalProperties: true
          properties:
            maxTtlSeconds:
              type: integer
            proxy:
              type: boolean
            bypassBotDetection:
              type: boolean
            cdp:
              type: boolean
              description: Whether this session exposes a CDP connection.
        connectUrl:
          type: string
          format: uri
          description: 'Fresh WebSocket URL returned only while a CDP-enabled session is

            active. Client disconnects do not close the Capture session; close

            it with `DELETE /v1/sessions/{sessionId}` when finished.

            '
    SessionStatus:
      type: string
      enum:
      - active
      - closed
      - expired
      - error
    UsageBreakdownEntry:
      type: object
      required:
      - total
      - success
      - error
      properties:
        total:
          type: integer
        success:
          type: integer
        error:
          type: integer
    InactiveSessionActionResponse:
      allOf:
      - $ref: '#/components/schemas/ErrorResponse'
      - type: object
        required:
        - session
        properties:
          expiresInSeconds:
            type: integer
            minimum: 0
            description: Remaining session lifetime when the action was rejected.
          session:
            $ref: '#/components/schemas/BrowserSession'
    CreateSessionResponse:
      allOf:
      - $ref: '#/components/schemas/Success'
      - type: object
        required:
        - session
        properties:
          session:
            type: object
            required:
            - id
            - status
            - expiresAt
            - maxTtlSeconds
            - proxy
            - bypassBotDetection
            - cdp
            properties:
              id:
                type: string
              status:
                $ref: '#/components/schemas/SessionStatus'
              expiresAt:
                type: string
                format: date-time
              maxTtlSeconds:
                type: integer
              proxy:
                type: boolean
              bypassBotDetection:
                type: boolean
              cdp:
                type: boolean
                description: Whether this session exposes a CDP connection.
              connectUrl:
                type: string
                format: uri
                description: 'Fresh WebSocket URL for active CDP-enabled sessions. Use

                  this with clients such as Puppeteer `connect` or Playwright

                  `connectOverCDP`.

                  '
    ErrorResponse:
      type: object
      required:
      - success
      - error
      properties:
        success:
          type: boolean
          enum:
          - false
        error:
          type: string
    SessionLimitErrorResponse:
      allOf:
      - $ref: '#/components/schemas/ErrorResponse'
      - type: object
        required:
        - activeSessionCount
        - maxConcurrentSessions
        properties:
          activeSessionCount:
            type: integer
            example: 5
          maxConcurrentSessions:
            type: integer
            example: 5
    Success:
      type: object
      required:
      - success
      properties:
        success:
          type: boolean
          enum:
          - true
    GetSessionResponse:
      allOf:
      - $ref: '#/components/schemas/Success'
      - type: object
        required:
        - session
        properties:
          session:
            $ref: '#/components/schemas/BrowserSession'
  parameters:
    SessionId:
      name: sessionId
      in: path
      required: true
      description: Session id returned by `POST /v1/sessions`.
      schema:
        type: string
        example: sess_123e4567-e89b-12d3-a456-426614174000
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: base64(userId:secret)