OpenAPI Specification
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.