Skip to content
v0.8.4stable

Experimental endpoints

Endpoint · Semantic operation · Current build
EndpointSemantic operationCurrent buildRequest fieldsResponse fieldsState semantics
POST /halro/v1/runsgovernanceconfigurable; still experimental35ledger-authoritative idempotent Run creation
GET /halro/v1/runs/{id}governanceconfigurable; still experimental17project-owned ledger-derived Run read
POST /halro/v1/runs/{id}/closegovernanceconfigurable; still experimental24ledger-authoritative idempotent Run close
POST /halro/v1/work-unitsgovernanceconfigurable; still experimental14ledger-authoritative idempotent Work Unit creation
GET /halro/v1/work-units/{id}governanceconfigurable; still experimental13project-owned dual-source read: Work Unit and Runs from Accounting Ledger, Outcomes from Governance Journal
POST /halro/v1/work-units/{id}/closegovernanceconfigurable; still experimental14ledger-authoritative idempotent Work Unit close
POST /halro/v1/work-units/{id}/outcomesgovernanceconfigurable; still experimental711governance-journal-authoritative idempotent Outcome report
POST /v1/async/invocationsasync_generatenot served (no creatable Profile)76project-owned resource with 7 day TTL
GET /v1/async/invocations/{id}async_generatenot served (no creatable Profile)16project-owned resource
POST /v1/async/invocations/{id}/cancelasync_generatenot served (no creatable Profile)11always fails closed because Bedrock has no cancellation operation
POST /v1/audio/speechsynthesizeconfigurable; still experimental51stateless
POST /v1/audio/transcriptionstranscribeconfigurable; still experimental61stateless
POST /v1/batchesbatchconfigurable; still experimental416project-owned resource with 7 day TTL
GET /v1/batches/{id}batchconfigurable; still experimental116project-owned resource
POST /v1/batches/{id}/cancelbatchconfigurable; still experimental116project-owned cancellable resource
POST /v1/filesfileconfigurable; still experimental38project-owned resource with 30 day TTL
GET /v1/files/{id}fileconfigurable; still experimental18project-owned resource
DELETE /v1/files/{id}fileconfigurable; still experimental13deletes upstream, metadata, and local content
GET /v1/files/{id}/contentfileconfigurable; still experimental11content served from the private local object directory
POST /v1/images/generationsimageconfigurable; still experimental75stateless
POST /v1/moderationsmoderateconfigurable; still experimental23stateless
POST /v1/rerankreranknot served (no creatable Profile)41stateless Halro extension
GET /v1/responses/{id}generateconfigurable; still experimental110project-owned deferred record; polling is authoritative and writes no accounting events
DELETE /v1/responses/{id}generateconfigurable; still experimental13project-owned deferred record
POST /v1/responses/{id}/cancelgenerateconfigurable; still experimental110project-owned deferred record
  • unknown fields and unsupported profile fields are rejected before provider I/O
  • resource identifiers are opaque Halro identifiers scoped to one project
  • a batch served by the Anthropic profile has its requests carried inline: the input file is stored by Halro and never uploaded, so its identifier names a Halro object rather than one the upstream also holds
  • results collected from a provider that does not return them as a file are bounded by the gateway’s response ceiling; a batch whose results exceed it is reported as undeliverable rather than truncated
  • completion_window is honoured only where the provider has one; the Anthropic profile expires a batch 24 hours after creation and accepts no other value
  • this is a Halro extension and has no OpenAI official SDK surface
  • Run Governance remains experimental until a real business pilot validates the Work Unit and Outcome Definition boundary

Expand an endpoint to inspect accepted headers, path fields, body/form fields, response fields, and unique deviations.

POST /halro/v1/runs
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: none
  • Body or form fields: work_unit_id, budget_micros_usd, ttl_seconds
  • Response fields: id, work_unit_id, budget_micros_usd, status, expires_at
GET /halro/v1/runs/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, work_unit_id, budget_micros_usd, committed_micros_usd, reserved_micros_usd, unknown_attempts, status
POST /halro/v1/runs/{id}/close
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: id
  • Body or form fields: reason
  • Response fields: id, status, closed_at, close_reason
POST /halro/v1/work-units
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: none
  • Body or form fields: outcome_definition_ids
  • Response fields: id, project_id, status, created_at
GET /halro/v1/work-units/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: work_unit, runs, outcomes
POST /halro/v1/work-units/{id}/close
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: id
  • Body or form fields: required empty JSON object {}
  • Response fields: id, project_id, status, closed_at
POST /halro/v1/work-units/{id}/outcomes
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: id
  • Body or form fields: definition_id, value, observed_at, evidence_ref, evidence_sha256, supersedes_outcome_id
  • Response fields: id, work_unit_id, definition_id, definition_version, value, reporter_key_id, observed_at, ingested_at, revision, governance_sequence, provisional
POST /v1/async/invocations
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: none
  • Body or form fields: model, prompt, s3_output_uri, duration_seconds, dimension, fps, seed
  • Response fields: invocation_arn, status, s3_output_uri, failure_message, submitted_at, last_modified_at
  • Not served by this build: its only Provider Profile is withheld.
GET /v1/async/invocations/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: invocation_arn, status, s3_output_uri, failure_message, submitted_at, last_modified_at
  • Not served by this build: its only Provider Profile is withheld.
POST /v1/async/invocations/{id}/cancel
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: error
  • Not served by this build: its only Provider Profile is withheld.
POST /v1/audio/speech
  • Request headers: Authorization, Content-Type
  • Path fields: none
  • Body or form fields: model, input, voice, response_format, speed
  • Response fields: binary audio
POST /v1/audio/transcriptions
  • Request headers: Authorization, Content-Type
  • Path fields: none
  • Body or form fields: file, model, language, prompt, response_format, temperature
  • Response fields: text
POST /v1/batches
  • Request headers: Authorization, Content-Type, Idempotency-Key
  • Path fields: none
  • Body or form fields: input_file_id, endpoint, completion_window, metadata
  • Response fields: id, object, endpoint, input_file_id, completion_window, status, output_file_id, error_file_id, created_at, expires_at, completed_at, failed_at, cancelling_at, cancelled_at, metadata, errors
  • Endpoint deviation: every line of the input is checked against the selected profile before the batch is created, because a batch is routed once for many requests; a line the profile cannot carry fails the batch and names itself
GET /v1/batches/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, endpoint, input_file_id, completion_window, status, output_file_id, error_file_id, created_at, expires_at, completed_at, failed_at, cancelling_at, cancelled_at, metadata, errors
POST /v1/batches/{id}/cancel
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, endpoint, input_file_id, completion_window, status, output_file_id, error_file_id, created_at, expires_at, completed_at, failed_at, cancelling_at, cancelled_at, metadata, errors
POST /v1/files
  • Request headers: Authorization, Content-Type, Idempotency-Key, Halro-Route
  • Path fields: none
  • Body or form fields: file, purpose
  • Response fields: id, object, bytes, created_at, filename, purpose, status, status_details
GET /v1/files/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, bytes, created_at, filename, purpose, status, status_details
DELETE /v1/files/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, deleted
GET /v1/files/{id}/content
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: binary content
POST /v1/images/generations
  • Request headers: Authorization, Content-Type
  • Path fields: none
  • Body or form fields: model, prompt, n, quality, response_format, size, style
  • Response fields: created, data, data[].url, data[].b64_json, data[].revised_prompt
  • Endpoint deviation: the OpenAI user field is not accepted by this experimental tier
POST /v1/moderations
  • Request headers: Authorization, Content-Type
  • Path fields: none
  • Body or form fields: model, input
  • Response fields: id, model, results
POST /v1/rerank
  • Request headers: Authorization, Content-Type
  • Path fields: none
  • Body or form fields: model, query, documents, top_n
  • Response fields: results
  • Not served by this build: its only Provider Profile is withheld.
GET /v1/responses/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, created_at, completed_at, status, background, error, model, output, usage
  • Endpoint deviation: only a submission made with background=true is retrievable; a synchronous response is never stored
  • Endpoint deviation: the polling cadence is carried in the Retry-After header rather than as a non-standard member of the Response object
  • Endpoint deviation: retrieval makes no upstream call and writes no ledger events
  • Endpoint deviation: the record is reaped 15 minutes after its first successful retrieval, or at its 24 hour TTL, whichever comes first
DELETE /v1/responses/{id}
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, deleted
  • Endpoint deviation: deletion removes the record and both of its sealed objects; it does not undo accounting for work that already happened
  • Endpoint deviation: a submission still owed an answer answers 409: cancel it first
POST /v1/responses/{id}/cancel
  • Request headers: Authorization
  • Path fields: id
  • Body or form fields: no request body
  • Response fields: id, object, created_at, completed_at, status, background, error, model, output, usage
  • Endpoint deviation: cancelling a queued submission is determinate; cancelling one already running is best-effort and is settled conservatively, so the record says plainly that it may have been billed upstream
  • Endpoint deviation: a request that has already finished answers 409 rather than pretending to cancel

Use the scenario library for governance, media, Files, Batches, Async, and deferred-resource lifecycles. Use the advanced API guide for minimal requests, Halro-Route, idempotency, polling, and current availability.

The 25 endpoints average few request fields. Separate pages would mostly repeat maturity and evidence disclaimers; this consolidated page retains every endpoint’s synchronized fields and deviations.