Apply Manifest Endpoint
const url = 'https://example.com/ingest/manifest/apply';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"manifest_version":"1","catalog":{"title":"example","description":"example","organization":"example","contact":{"name":"example","email":"hello@example.com","url":"example"}},"datasets":[{"key":"example","title":"example","description":"example","sources":[{"type":"vector","uri":"example","title":"example","description":"example","format":"example","layer":"example"}],"metadata":{"tags":["example"],"organization":"example","crs":"example","license":"example","attribution":"example","bbox":[1]},"publication":{"intent":"example"}}],"dry_run":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/manifest/apply \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "manifest_version": "1", "catalog": { "title": "example", "description": "example", "organization": "example", "contact": { "name": "example", "email": "hello@example.com", "url": "example" } }, "datasets": [ { "key": "example", "title": "example", "description": "example", "sources": [ { "type": "vector", "uri": "example", "title": "example", "description": "example", "format": "example", "layer": "example" } ], "metadata": { "tags": [ "example" ], "organization": "example", "crs": "example", "license": "example", "attribution": "example", "bbox": [ 1 ] }, "publication": { "intent": "example" } } ], "dry_run": false }'Apply a versioned manifest through the ingest service layer.
Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
object
object
Stable dataset identity key used for idempotent apply operations.
object
Source modality. Vector sources require zip, gpkg, geojson, json, csv, xlsx, or xls; raster_cog sources require tif or tiff.
Relative path (no .. traversal), HTTP(S) URL, or storage URI.
object
Publication intent. Deliberately not pinned to an enum: the values come from the workflow extension’s status_order(), so an overlay may define its own, and apply validates against the live extension. Community default order: draft, ready, internal, published.
Responses
Section titled “ Responses ”Successful Response
object
Example
{ "results": [ { "action": "create" } ]}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