5.9.2.1 Funding Calls
The Funding Calls domain of grant. Funding calls for livestock farms, every fact cited from its source document (req 200 to 209). The public reads the published catalogue, one call at a time or by region and purpose; staff curate the register of sources, register research collections, launch extraction batches, publish, hold and restore revisions. Nothing starts work automatically: only an operator launches a batch. It is one API, with its own contract and its own version.
5.9.2.1.1 Versions¶
| Version | Status | Prod URL | Contract |
|---|---|---|---|
v1 |
Proposed | https://grant.moonitoring.com/calls/v1 |
calls/v1/openapi.yaml |
The data model has no entities for this domain yet; its schemas are part of the proposal. Follows the refined requirements of the grants project (req 200 to 209, 1200 to 1212), written on 2026-10-30 from the MVP (D12). PublishedCall is the public view that joins a call with its record, availability and search area; VerifiedRecord keeps the answer envelopes as JSON, since their shape is pinned by the extraction request.
5.9.2.1.2 Operations¶
Every operation names who calls it and the capability it checks (x-moonitoring-audience, x-moonitoring-capability in the contract); every capability is in the catalog of the data model (req 1002, 1006). Lists are paged by cursor, writes that create something carry an Idempotency-Key, errors are Problem Details.
| Operation | Request | Who | Capability |
|---|---|---|---|
| List published calls | GET /catalogue |
Anyone | none |
| Read a published call | GET /catalogue/{call_id} |
Anyone | none |
| Download a source document | POST /catalogue/{call_id}/documents/{document_hash}/download-url |
Anyone | none |
| Search the farm directory | GET /farm-directory |
Anyone | none |
| Search municipalities | GET /municipalities |
Anyone | none |
| List calls | GET /calls |
Staff | grant.calls.manage |
| Read a call | GET /calls/{call_id} |
Staff | grant.calls.manage |
| List a call's documents | GET /calls/{call_id}/documents |
Staff | grant.calls.manage |
| List a call's revisions | GET /calls/{call_id}/revisions |
Staff | grant.calls.manage |
| List a call's territories | GET /calls/{call_id}/territories |
Staff | grant.calls.manage |
| Hold or release a call | POST /calls/{call_id}/hold |
Staff | grant.calls.manage |
| Restore an earlier revision | POST /calls/{call_id}/restore |
Staff | grant.calls.manage |
| Publish or revert a batch's revisions | POST /publications |
Staff | grant.calls.manage |
| List reviewed search areas | GET /search-area-assignments |
Staff | grant.calls.manage |
| Add a reviewed search area | POST /search-area-assignments |
Staff | grant.calls.manage |
| List the register of sources | GET /sources |
Staff | grant.sources.manage |
| Add a source | POST /sources |
Staff | grant.sources.manage |
| Update a source | PATCH /sources/{source_id} |
Staff | grant.sources.manage |
| List collections | GET /collections |
Staff | grant.sources.manage |
| Register a collection | POST /collections |
Staff | grant.sources.manage |
| Read a collection | GET /collections/{collection_id} |
Staff | grant.sources.manage |
| List batches | GET /batches |
Staff | grant.sources.manage |
| Launch a batch | POST /batches |
Staff | grant.sources.manage |
| Forecast a launch | POST /batches/forecast |
Staff | grant.sources.manage |
| Read a batch | GET /batches/{batch_id} |
Staff | grant.sources.manage |
| Resume a batch | POST /batches/{batch_id}/resume |
Staff | grant.sources.manage |
| Mark a batch failed | POST /batches/{batch_id}/fail |
Staff | grant.sources.manage |
| List a batch's provider requests | GET /batches/{batch_id}/provider-requests |
Staff | grant.sources.manage |
| List a batch's runs | GET /batches/{batch_id}/runs |
Staff | grant.sources.manage |
| Reset a document's text | POST /documents/{document_hash}/text-reset |
Staff | grant.sources.manage |
5.9.2.1.3 Contract v1¶
Proposed version
v1 is a proposal for review: its endpoints, errors and capabilities were designed from the requirements and the flows and are not confirmed. It leaves proposal with its first release; from then on it changes only as described in Every API Is Versioned.