Commit Import
const url = 'https://example.com/ingest/commit/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"title":"example","summary":"example","visibility":"private","srid_override":1,"token":"example","temporal_start":"2026-04-15T12:00:00Z","temporal_end":"2026-04-15T12:00:00Z","compression":"example","resampling":"example","nodata_override":1,"layer_name":"example","x_column":"example","y_column":"example","geom_column":"example","auth":{"method":"bearer","token":"example","username":"example","password":"example","header_name":"example","header_value":"example"},"strict_cog":false}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/ingest/commit/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "title": "example", "summary": "example", "visibility": "private", "srid_override": 1, "token": "example", "temporal_start": "2026-04-15T12:00:00Z", "temporal_end": "2026-04-15T12:00:00Z", "compression": "example", "resampling": "example", "nodata_override": 1, "layer_name": "example", "x_column": "example", "y_column": "example", "geom_column": "example", "auth": { "method": "bearer", "token": "example", "username": "example", "password": "example", "header_name": "example", "header_value": "example" }, "strict_cog": false }'Commit a staged file for ingestion with user-supplied metadata.
Stores user metadata on the job and queues the ingest task. Only callable on jobs with status ‘pending’.
Authorizations
Section titled “ Authorizations ”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “ Path Parameters ”Request Body required
Section titled “ Request Body required ”Wire-level schema for POST /ingest/commit/{job_id}.
Preserved as a flat union of all possible commit fields so that the
FastAPI route signature renders correctly in OpenAPI and so that the
frontend’s CommitImportRequest TypeScript type stays unchanged.
The route handler re-validates the body against a subclass chosen by
_pick_commit_subclass(job) (see app.ingest.router):
VectorCommitRequest— default for file uploadsRasterCommitRequest— whenjob.user_metadata['file_type'] == 'raster'ServiceCommitRequest— whenjob.source_urlis set andjob.file_pathis None
For new internal code that constructs a commit view, prefer importing the appropriate subclass directly. This flat class is the wire contract, not an implementation detail.
object
Human-readable dataset title.
Dataset visibility level: ‘private’ (owner-only), ‘restricted’ (RBAC-controlled), ‘internal’ (all users), ‘public’ (anonymous access).
How one request authenticates to the remote service it names.
object
How the credential is presented to the remote service. Omit the whole auth object for a public service.
Raster only: reject a non-COG TIFF instead of converting it. False (the default) converts the source to a COG during ingest. True fails the job when the source is not already a compliant COG, and cannot be combined with resampling, nodata_override, srid_override or a compression other than the default DEFLATE: each of those is applied by a conversion, so the commit is refused with a 422 naming the fields that clash.
Responses
Section titled “ Responses ”Successful Response
object
Identifier of the committed ingestion job.
Updated job status after commit.
Human-readable commit result.
Example generated
{ "job_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "example", "message": "example"}Bad request — invalid payload
Unauthorized — missing or invalid credentials
Forbidden — caller lacks write access
Not found
Conflict — resource state prevents the operation
Validation error
Too many requests — retry after the advertised interval
Headers
Section titled “ Headers ”Seconds until the request may be retried
Internal server error
Service unavailable — the database could not serve the request