Proctorio Launch API

Generate signed launch URLs for proctored exam sessions.

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/proctorio-launch-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 email required.

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

OpenAPI Specification

proctorio-launch-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Proctorio API (v2) Launch API
  description: The Proctorio v2 integration API generates signed exam launch URLs for third-party assessment platforms that embed Proctorio outside of a native LMS/LTI flow. Given the exam's launch, start, take, and end URLs plus an exam-settings object describing which recording, verification, and lockdown behaviors to enforce, each endpoint returns a single signed URL that opens the proctored session for a candidate (test taker), a reviewer (Review Center), or a live proctor. Requests are authenticated with a Proctorio-provisioned consumer key and secret using OAuth-style HMAC signing; the region-specific base host is also provisioned per partner or institution. Access is gated - credentials and the endpoint host are issued by a Proctorio representative - but the endpoint paths, request bodies, and webhook payloads are documented publicly in Proctorio's official Apache-2.0 .NET client (github.com/proctorio/API). Endpoints and fields in this document are transcribed from that client and reference documentation; they are not fabricated, but the base host is a placeholder and response schemas are modeled from the documented behavior (each endpoint returns a signed launch URL string).
  version: '2.0'
  contact:
    name: Proctorio
    url: https://proctorio.com/about/integration
  license:
    name: Apache-2.0 (official .NET client)
    url: https://github.com/proctorio/API/blob/master/LICENSE
servers:
- url: https://{region}{endpoint}.com
  description: Region-specific Proctorio API host. Both the region and endpoint segments are provisioned per partner/institution by Proctorio and are not public.
  variables:
    region:
      default: ondemand
      description: Region segment provisioned by Proctorio.
    endpoint:
      default: .proctorio
      description: Endpoint segment provisioned by Proctorio.
security:
- proctorioHmac: []
tags:
- name: Launch
  description: Generate signed launch URLs for proctored exam sessions.
paths:
  /v2/candidate/launch:
    post:
      operationId: generateCandidateLaunchUrl
      tags:
      - Launch
      summary: Generate a candidate (test taker) launch URL
      description: Returns a signed URL that opens the proctored exam session for the test taker, applying the supplied exam settings (recording, verification, and lockdown behaviors).
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CandidateLaunchRequest'
      responses:
        '200':
          description: A signed candidate launch URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchUrlResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/reviewer/launch:
    post:
      operationId: generateReviewerLaunchUrl
      tags:
      - Launch
      summary: Generate a reviewer (Review Center) launch URL
      description: Returns a signed URL that opens the Review Center for a reviewer to inspect recordings, suspicion scores, and behavioral flags for an exam or attempt.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReviewerLaunchRequest'
      responses:
        '200':
          description: A signed reviewer launch URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchUrlResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/live/launch:
    post:
      operationId: generateLiveLaunchUrl
      tags:
      - Launch
      summary: Generate a live-proctoring launch URL
      description: Returns a signed URL that opens a live/remote-proctor session, letting a human proctor monitor the candidate in real time.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LiveLaunchRequest'
      responses:
        '200':
          description: A signed live-proctoring launch URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LaunchUrlResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    LaunchUrlResponse:
      type: object
      description: Modeled response. The official .NET client returns the signed launch URL as a string; this wraps it for a JSON contract.
      properties:
        launch_url:
          type: string
          description: The signed URL that opens the proctored session.
    ReviewerLaunchRequest:
      allOf:
      - $ref: '#/components/schemas/LaunchRequest'
      description: Launch request for a Review Center reviewer.
    LaunchRequest:
      type: object
      description: Common fields shared by all launch requests.
      required:
      - user_id
      - launch_url
      - exam_start
      - exam_take
      - exam_end
      properties:
        user_id:
          type: string
          description: Identifier of the user (test taker, reviewer, or proctor).
        launch_url:
          type: string
          maxLength: 600
          description: URL Proctorio uses to launch into the session.
        exam_start:
          type: string
          maxLength: 600
          description: URL (or regex) marking the start of the exam flow.
        exam_take:
          type: string
          maxLength: 1000
          description: URL (or regex) for the exam-taking page.
        exam_end:
          type: string
          maxLength: 600
          description: URL (or regex) marking exam completion.
        exam_settings:
          $ref: '#/components/schemas/ExamSettings'
        expire:
          type: integer
          default: 18000
          description: Seconds until the signed launch URL expires.
        redirect_url:
          type: string
          maxLength: 600
          nullable: true
          description: Optional URL to redirect to after the session.
    ExamSettings:
      type: object
      description: The Proctorio behaviors to enforce during the session. Boolean toggles and enumerated modes control recording, verification, and lockdown.
      properties:
        record_video:
          type: boolean
        record_audio:
          type: boolean
        record_screen:
          type: boolean
        record_web_traffic:
          type: boolean
        record_desk:
          type: string
          enum:
          - false
          - true
          default: false
        verify_video:
          type: boolean
        verify_audio:
          type: boolean
        verify_desktop:
          type: boolean
        verify_id:
          type: string
          enum:
          - not_required
          - required
          default: not_required
        verify_signature:
          type: boolean
        full_screen:
          type: string
          enum:
          - false
          - true
          default: false
        disable_clipboard:
          type: boolean
        tabs:
          type: string
          enum:
          - allowed
          - restricted
          default: allowed
        close_tabs:
          type: boolean
        one_screen:
          type: boolean
        disable_printing:
          type: boolean
        block_downloads:
          type: boolean
        clear_cache:
          type: boolean
        disable_right_click:
          type: boolean
        calculator:
          type: string
          enum:
          - false
          - basic
          - scientific
          default: false
        whiteboard:
          type: boolean
    LiveLaunchRequest:
      allOf:
      - $ref: '#/components/schemas/LaunchRequest'
      description: Launch request for a live/remote proctor.
    CandidateLaunchRequest:
      allOf:
      - $ref: '#/components/schemas/LaunchRequest'
      description: Launch request for a test taker (candidate).
  responses:
    Unauthorized:
      description: Missing or invalid HMAC signature / credentials.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  securitySchemes:
    proctorioHmac:
      type: apiKey
      in: header
      name: Authorization
      description: OAuth-style HMAC signature computed from the Proctorio-provisioned consumer key and secret. In the official .NET client this is produced by Helpers.GetApiKey(consumerKey, consumerSecret) and attached to the request; the GetCertified/TAO integrations describe HMAC-SHA1 signing.