Gateway >=
2.9.0
Data Service >= 1.8.0How It Works
1
Upload a batch input file
Upload a JSONL file in OpenAI chat completions format to Portkey.Each line in the file should be a valid chat completions request. Download an example JSONL file.The response returns a Portkey file ID (
pk_file_*):2
Create a config with guardrails
Guardrails are the only supported way to pass guardrail checks to a provider batch request. Define them in a Portkey config here:Save this config in the Portkey dashboard and note the config ID (e.g.,
pc-sync-g-1009a3).3
Create a provider batch
Reference your uploaded file ID and config when creating the batch:The response contains a Portkey batch ID (
pk_batch_*) and the initial guardrail results in hook_results:4
Poll for batch status
Poll the batch to track progress. Once input guardrails are applied, the If your config includes
input_file_id is replaced with a new processed file. Use include_provider_details=true to see full upstream details:output_guardrails, the batch enters an intermediate processing_post_request_guardrails state after the upstream provider finishes. Once complete, output_file_id reflects the final guardrail-processed output file.5
Download the output file
Once the batch status is
completed, retrieve the output using the Portkey-exclusive file content endpoint:Batch Lifecycle with Guardrails
The
input_file_id in the batch response is updated after input guardrails
process the file — the new ID points to the transformed input sent to the
upstream provider.
