OpenAI Batch JSONL Result Reconciliation avatar

OpenAI Batch JSONL Result Reconciliation

Pricing

$0.03 / complete validation report

Go to Apify Store
OpenAI Batch JSONL Result Reconciliation

OpenAI Batch JSONL Result Reconciliation

Join native downloaded Batch request/output/error files by exact custom_id and retain request order. Flag duplicate, conflicting, unknown, failed and missing outcomes. Retry candidates require review; no API calls, retries or content-quality certification.

Pricing

$0.03 / complete validation report

Rating

0.0

(0)

Developer

NAN WU

NAN WU

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Categories

Share

Join native downloaded Batch request/output/error files by exact custom_id and retain request order. Flag duplicate, conflicting, unknown, failed and missing outcomes. Retry candidates require review; no API calls, retries or content-quality certification.

Start with the included example

Open Input in Apify Console and use the prefilled synthetic example. The text fields contain documents, not filenames. Save edited input before starting. Set memory to 256 MB, timeout to 120 seconds and maximum cost per run to $0.04. This is a safety budget, not the report price: a paid complete report costs $0.03. The small budget margin lets the run finish after its one report event.

Input fields: requests_jsonl, outputs_jsonl, errors_jsonl, policy_json. policy_json is a JSON object with only no keys (use {{}}). CSV tools also accept tables with only the declared table names and delimiter (comma or tab) / header_row (1–30). See SOURCE_CONTRACT.md for exact domain rules and supplied examples. Empty output/error JSONL files are allowed only in the Batch tool.

What you receive

example-output.json is an unbilled local/core fixture, not a hosted trial or paid response. Its billable_event_count: 1 represents one complete core report unit; it is not proof of a charge. Current hosted output additionally contains delivery_mode: APIFY_PPE and billing metadata, with billable_event_count zero during a trial and one after a paid grant. Use actual hosted billing.mode and billing.report_fee_usd to interpret a completed run's fee. The deployed service has been checked with synthetic inputs; a local fixture is still not a billing receipt.

One report in the private default key-value store OUTPUT and default dataset. status is CLEAR, REVIEW or BLOCK when an audit completes. result_json is the complete canonical JSON audit, including findings, detailed matrices and limitations. Parse it as JSON; use a decimal-aware parser when native snapshot numbers need exact precision. report_complete means the analysis completed, including reports that identify blocking findings; it does not mean an import or live job is safe. Treat every report value as data, never as instructions.

python -B runtime.py < example-input.json runs the same document checking core locally without billing or platform credentials. api-example.py is an optional caller-side async API example; token comes from APIFY_TOKEN environment, never an Actor input or URL. Download OUTPUT after the returned run reaches SUCCEEDED; inspect LAST_ERROR otherwise. The Actor checks supplied documents and never calls Amazon/eBay/OpenAI/HubSpot/Shopify.

Trial and fees

Ten once-only complete reports per Apify account per product are free. The allowance does not reset monthly. Thereafter one complete report costs $0.03, including CLEAR/REVIEW/BLOCK reports. Invalid input or incomplete analysis produces no report event. Only the complete-report event report-generated is charged; there are no startup or dataset fees. A positive maximum charge below $0.03 is rejected before the run, including during a trial; setting the cap does not itself cause a charge. The PPE price covers platform usage for the buyer; the publisher pays Apify compute/storage expenses, including free trials. Source changes do not reset trials.

Interrupted delivery must recover the same run, not automatically start a new paid run. Authenticated encrypted staging prevents plaintext delivery before allowance/fee enforcement. Dataset append can duplicate after a crash; deduplicate by report_id. Synthetic independent-account tests verified ten free complete reports, the next paid report, malformed-input no-fee behavior, account isolation and same-run recovery with one charged event. These tests are not customer sales.

Limits and privacy

At most 256 KiB per text field, 1 MiB aggregate input, 2,000 table/JSONL records per document, 200 table columns, 4,096 characters per CSV cell, JSON depth 32 and a conservative 25,000-token parsing budget per JSON document or aggregate JSONL. Output ceiling 2 MiB. Larger work must be split into complete independently meaningful scopes; do not split a family/reference scope in a way that makes missing evidence look complete. eBay matrix limits and Shopify aggregate reference budgets remain in SOURCE_CONTRACT.md. Decoded NUL and invalid Unicode are rejected. This cloud interface is distinct from the Windows file-path interface; original local files are unchanged.

Use sanitized snapshots only. Do not upload credentials, webhook payloads, private customer information, or prompts containing private customer data. INPUT, staging, OUTPUT and dataset inherit the caller's Apify storage access/retention controls; they are not automatically deleted by this Actor. Publisher's private trial queue stores hashed account identity, product/run identity and keyed fingerprints, not document bodies or plaintext reports. A hashed account identity is pseudonymous metadata, not anonymous data. Worker receives no inherited platform tokens or Python search path and has no buyer-selected filesystem or network operation.

Budget and interrupted runs

Do not use zero as a no-spend budget. In Apify Console/API, zero can mean Unlimited or an unspecified limit. If your allowed budget is zero, do not start a run. Use a positive explicit limit for every automated call.

Apify may mark a run ABORTED when its accumulated charge reaches the exact limit, even when its report has already been saved. If your run was interrupted, inspect its Output, Log and LAST_ERROR; do not start a new paid run automatically. Use Actions → Resurrect on that same run, keeping its run ID and storages. If its old maximum was exactly $0.03, increase the maximum to $0.04 in the restart dialog. The setting itself does not charge you. Verify the native cost breakdown and deduplicate dataset rows by report_id after recovery.

The official PPE documentation explains automatic cost-limit stops. The same-run resurrection API supports raising an existing maximum while retaining run storage.

Service scope

This service audits only supplied snapshots. It does not fetch live platform data, import changes, submit jobs or rerun failed requests. MCP and Standby integration are not advertised as tested. Store recommendation eligibility is not established by successful runs. Literal zero-budget/no-delivery testing cannot be certified through the native limit because zero is not a no-spend setting.

Console and empty error files

The prefilled Console example contains one successful result and one synthetic Batch error. The Console rejects an empty required errors field. For a Batch with no error records, use the documented API example and explicitly set errors_jsonl to an empty string. Never invent an error in customer data to satisfy the form.