Download OpenAPI specification:Download
Syntonym Public API for anonymization of faces and license plates in images and videos.
There are two ways to upload files for processing: via direct upload /direct_upload or by creating an upload session /create_upload_session and uploading the file to the session_uri.
A job id will be associated with each file upload. Use the job_id to approve the job /approve_job for processing.
You can subscribe to a webhook to receive updates on the job status. Use /notify_on_job_status to register a callback url.
Once the job has been completed, credits will be deducted from api_key's balance.
Full report can be obtained from /get_job_result. Each video/image will have a download link for the processed file.
This endpoint redirects to a Azure blob with SAS token for direct upload.
Recommended for small files that can be uploaded in one request. Use /create_upload_session for larger files to upload in chunks.
Requires a valid api_key as parameter access_token in the header.
Model name as a query parameter 'model' is required to specify the model to use for processing. Supported models are: syn, blur
Model parameters can be passed as query parameters. For example: &enable_lp=True&blur_threshold=0.5&lp_track=True&slicing=True&mask_blur=True
Requires "x-ms-blob-type" header to be set to "BlockBlob".
Supported video formats are: .mp4, .mkv, .webm, .ts, .mov, .avi, .mts
Supported image formats are: .jpg, .png, .jpeg, .bmp
Supported archive formats are: .zip, .rar, .7z
Nesting of archives is not supported. Files inside archives must be on the root level. Max upload size is 4294967295 bytes.
Job_id will be returned in the header.
Refer to Azure Blob Storage documentation for more information on supported upload methods.
The session_uri will expire after 7 days.
| file_name required | string (The name of the file you want to upload) |
{- "url": "string",
- "status_code": 307,
- "headers": {
- "job_id": "UUID4"
}
}This endpoint returns a session_uri that can be used to upload files to Azure Blob storage. Requires a valid api_key as parameter access_token in the header.
On successful upload, the backend will fetch the file and process it.
Model parameters are sent via body in ProcessJobInputModel object.
Set ProcessJobInputModel.model to specify the model to use for processing. Supported models are: syn, blur
Model config dictionary can be used to set the following parameters:
blur_face: bool=True (Blur faces)
enable_lp: bool=True (Enable license plate blur)
blur_threshold: float=0.5, ge=0.0, le=1.0 (Blur threshold)
slicing: bool=False (Enable slicing for large images)
mask_blur: bool=False (Enable mask blur instead of circle blur)
lp_track: bool=False (Enable license plate tracking)
Supported video formats are: .mp4, .mkv, .webm, .ts, .mov, .avi, .mts
Supported image formats are: .jpg, .png, .jpeg, .bmp
Supported archive formats are: .zip, .rar, .7z
Nesting of archives is not supported. Files inside archive must be on the root level. Max upload size is 4294967295 bytes.
The session_uri will expire after 7 days.
Use BlockBlob upload method from Azure Blob Storage documentation to upload the file.
AppendBlob uploads are not supported.
| file_name | string (File Name) [ 5 .. 255 ] characters Default: "video_to_process.mp4" File name |
| file_size | integer (File Size) [ 1000 .. 4294967295 ] Default: 10000 file size in bytes |
| content_type | string (Content Type) Default: "multipart/form-data" Content type for upload |
| model required | string (Model) |
required | BlurConfig (object) or SynConfig (object) (Model Config) |
{- "file_name": "video_files.zip",
- "file_size": 48439402,
- "model": "blur",
- "content_type": "application/octet-stream",
- "model_config": {
- "blur_face": true,
- "enable_lp": false,
- "mask_blur": true,
- "blur_threshold": 0.5,
- "slicing": false,
- "lp_track": false
}
}{- "session_uri": "string",
- "job_id": "string",
- "upload_status": "waiting for upload",
- "job_status": 0,
- "job_status_description": "initialized",
- "file_name": "string",
- "total_credit_cost": 0,
- "file_size": 0,
- "model": "syn",
- "model_config": {
- "blur_face": true,
- "enable_lp": true,
- "blur_threshold": 0.5,
- "lp_threshold": 0.5,
- "slicing": false,
- "mask_blur": false,
- "lp_track": false
}
}Use this endpoint to register a callback url to be notified when a job has an update.
The callback will trigger in two cases:
When an upload operation is complete via the /create_upload_session endpoint and the job needs to approved to start processing.
When a job has completed processing and the results are ready to be downloaded.
The callback will be a POST request with body as a JobReport object.
Note: This endpoint is optional. You can use /job_result endpoint to receive the same information.
| job_id required | string (The job_id of the job you want to get the result for in uuid4 format) = 36 characters |
| callback_url required | string <uri> (The url to POST to with JobReport when the job has an update) [ 1 .. 65536 ] characters |
{- "detail": "string"
}{- "job_id": "string",
- "job_status": 0,
- "job_status_description": "string",
- "job_total_credit_cost": 0,
- "tasks": [ ]
}Use this endpoint to approve a job to start processing.
Requires api-key with enough credits to process the file. You can view the cost of the job in the total_credit_cost
The cost will be deducted from the api-key's balance.
Response codes: 200: Job approved, 201: Job does not need approval, 202: Job already approved, 302: Job not ready for approval, 4??: Error approving job
| job_id required | string (The job_id of the job you want to approve in uuid4 format) = 36 characters |
{- "detail": "string"
}Use this endpoint to get status of a job.
If the job is completed, the response will include a list of Tasks for each file in the job and a download_link field for each task.
Refer to Azure Storage Documentation for supported download methods.
| job_id required | string (Job Id) = 36 characters The job_id of the job you want to get the result for in uuid4 format |
{- "job_id": "string",
- "job_status": 0,
- "job_status_description": "string",
- "job_total_credit_cost": 0,
- "tasks": [ ]
}Use this endpoint to delete a job and its associated files from the server and cloud storage. Rate limited to 100 requests per minute
| job_id required | string (Job Id) = 36 characters The job_id of the job you want to get the result for in uuid4 format |
{- "detail": "string"
}