Pimloc Media API

Upload, redact, download and manage media

OpenAPI Specification

pimloc-media-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Secure Redact Account Media API
  version: v3
  x-generated: '2026-07-20'
  x-method: searched
  x-source: https://docs.secureredact.co.uk (public Postman collection "Secure Redact API - v3")
  description: 'Secure Redact is Pimloc''s AI-powered platform for automated redaction of personally identifiable information (PII) from video, audio, images and documents — blurring faces, license plates, screens, text and full bodies. The v3 REST API lets you upload media by URL or file, monitor processing via status callbacks (webhooks) or polling, trigger redaction, and download the redacted media and audio transcripts. Two flows are supported: a Standard Flow (fully automated, no UI) and an Enterprise Flow (review/edit in the Secure Redact UI, with projects and users). Authentication is a token exchange: HTTP Basic (client_id / client_secret) on the token endpoint returns a short-lived JWT bearer token used on all other endpoints.'
  contact:
    name: Secure Redact Support
    url: https://www.secureredact.ai/contact-us
  termsOfService: https://www.secureredact.ai/terms-of-service
servers:
- url: https://app.secureredact.co.uk
  description: Secure Redact v3 production API
tags:
- name: Media
  description: Upload, redact, download and manage media
paths:
  /api/v3/media:
    get:
      operationId: listMedia
      tags:
      - Media
      summary: Fetch medias
      description: Fetch a paginated list of media available to the user.
      security:
      - bearerAuth: []
      parameters:
      - name: page_num
        in: query
        schema:
          type: integer
        description: Page number
      - name: page_size
        in: query
        schema:
          type: integer
        description: Items per page
      responses:
        '200':
          description: Media list
    post:
      operationId: uploadMedia
      tags:
      - Media
      summary: Upload media
      description: Add a video/image to the account either by a URL that Secure Redact can download from (e.g. an AWS S3 presigned URL) via form field media_path, or by uploading raw file data (multipart). Detection flags control which object classes are detected/redacted; state_callback and export_callback are webhook URLs the platform POSTs progress and export events to.
      security:
      - bearerAuth: []
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - media_path
              properties:
                media_path:
                  type: string
                  description: URL Secure Redact can download the media from (e.g. S3 presigned URL).
                video_tag:
                  type: string
                  description: Name shown for the media in the UI.
                increased_detection_accuracy:
                  type: boolean
                  description: Slower but detects smaller objects. Defaults to false.
                state_callback:
                  type: string
                  description: Webhook URL the system POSTs progress updates to.
                export_callback:
                  type: string
                  description: Webhook URL the exported media info is POSTed to after redaction.
                export_token:
                  type: string
                  description: Token authenticating requests made to export_callback.
                detect_license_plates:
                  type: boolean
                detect_faces:
                  type: boolean
                transcribe_audio:
                  type: boolean
                project_id:
                  type: string
                  description: Project to upload the media to (Enterprise only).
                sha512:
                  type: string
                  description: Optional sha512 hash used to verify the received media matches.
                detect_screens:
                  type: boolean
                detect_text:
                  type: boolean
                detect_people:
                  type: boolean
                detect_search:
                  type: boolean
                  description: Index the media for free-form text search.
                transcribe_language:
                  type: string
                  description: ISO 639 language code to transcribe from into English.
                default_redact:
                  type: boolean
                  description: Default all detections to redacted.
                investigate:
                  type: boolean
                fast_investigate:
                  type: boolean
          multipart/form-data:
            schema:
              type: object
              required:
              - video
              properties:
                video:
                  type: string
                  format: binary
                  description: Raw file data uploaded directly.
      responses:
        '200':
          description: Media accepted for processing
  /api/v3/media/{media_id}:
    get:
      operationId: fetchMediaInfo
      tags:
      - Media
      summary: Fetch media info
      description: Get the status of a media item — which stage of the workflow it is in (e.g. uploaded, detected, completed).
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Media status
    delete:
      operationId: deleteMedia
      tags:
      - Media
      summary: Delete media
      description: Delete the media from the Secure Redact servers.
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Deletion accepted
  /api/v3/media/{media_id}/redact:
    post:
      operationId: redactMedia
      tags:
      - Media
      summary: Redact media
      description: Trigger redaction of a media item (Enterprise Flow). Only valid once the media status equals 'detected'.
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                enlarge_boxes:
                  type: number
                  description: Float 0-1; percentage to enlarge all redaction boxes.
                redact_audio:
                  type: boolean
                  description: Whether to remove audio from redacted media.
                blur:
                  type: string
                  enum:
                  - pixelated
                  - blackout
                  - smooth
                  description: Blur type to apply.
                blur_level:
                  type: integer
                  minimum: 0
                  maximum: 100
                  description: How much blur to apply (100 = most).
      responses:
        '200':
          description: Redaction started
  /api/v3/media/{media_id}/download:
    get:
      operationId: downloadMedia
      tags:
      - Media
      summary: Download media
      description: Download the media once its status is 'completed'.
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      - name: version_id
        in: query
        schema:
          type: string
        description: Specific version to download.
      responses:
        '200':
          description: Redacted media file
  /api/v3/media/{media_id}/audit:
    get:
      operationId: fetchMediaAudit
      tags:
      - Media
      summary: Fetch media audit
      description: Fetch the audit log of the media — all actions taken on it (chain of custody).
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Audit log
  /api/v3/media/{media_id}/transcript/download:
    get:
      operationId: downloadMediaTranscript
      tags:
      - Media
      summary: Download media transcript
      description: Download the media transcript. Available once media state is at least 'detected' and transcribe_audio was true on upload.
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      - name: redact_type
        in: query
        schema:
          type: string
        description: Which transcript redaction to return.
      - name: file_type
        in: query
        schema:
          type: string
        description: Transcript file format.
      responses:
        '200':
          description: Transcript file
  /api/v3/media/{media_id}/publish:
    post:
      operationId: publishMedia
      tags:
      - Media
      summary: Publish media
      description: Beta — set the published state of the media to true.
      security:
      - bearerAuth: []
      parameters:
      - name: media_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Published
components:
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic using client_id (username) and client_secret (password), only on /api/v3/token.
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Short-lived JWT access token returned by /api/v3/token.