MARLO tracks research deliverables as publications in two categories: peer-reviewed publications (ISI journal articles and open-access outputs) and other publication types (reports, datasets, and other deliverable formats). The deliverables API maps to the “Table 6 - Peer-reviewed publications” reporting section and exposes five CRUD endpoints plus a Web of Science (WOS) validation utility. All publication endpoints are scoped to a CGIAR entity and require a valid QA token. See Authentication for token setup.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/CCAFS/MARLO/llms.txt
Use this file to discover all available pages before exploring further.
List all publications
Retrieve all publications for a CGIAR entity within a reporting year and phase.Path parameters
Acronym of the CGIAR program, platform, or center (e.g.,
CCAFS, HarvestPlus).Query parameters
Reporting year (e.g.,
2023).Reporting phase. Use
AR for Annual Report or POWB for Plan of Work and Budget.Response
Returns a JSON array ofPublicationDTO objects.
Internal MARLO deliverable ID.
Title of the publication.
Journal or publisher name.
Volume identifier.
Issue number.
Number of pages.
Whether the publication is open access.
Whether this is an ISI-indexed journal article.
Digital Object Identifier.
Handle repository URL.
Direct URL to the article.
Free-text authors field.
Structured list of
DeliverableUserDTO author objects.Year of publication.
Get a publication by ID
Retrieve a single publication record.Path parameters
CGIAR entity acronym.
MARLO deliverable ID.
Query parameters
Reporting year.
Reporting phase (
AR or POWB).PublicationDTO object (same schema as the list endpoint). Returns 404 if no deliverable matches the ID, entity, year, and phase combination.
Create a publication
Create a new peer-reviewed publication record.FULL_CREATE_REST_API_PERMISSION.
Path parameters
CGIAR entity acronym.
Request body (NewPublicationDTO)
Title of the publication.
Journal or publisher name.
Volume identifier.
Issue number.
Number of pages.
Whether the publication is open access.
Whether this is an ISI-indexed journal article.
Digital Object Identifier.
Handle repository URL.
Direct URL to the article.
Free-text authors field.
Structured list of author objects. Each object is a
DeliverableUserDTO.Year of publication.
Phase object identifying the reporting cycle.
Long) of the newly created deliverable.
Update a publication
Update an existing peer-reviewed publication.FULL_READ_REST_API_PERMISSION.
Path parameters
CGIAR entity acronym.
MARLO deliverable ID to update.
Request body
Same fields asPOST /publications (NewPublicationDTO). Provide all fields you want to retain — omitted fields may be cleared.
Example:
Delete a publication
Delete a publication record by ID.FULL_READ_REST_API_PERMISSION.
Path parameters
CGIAR entity acronym.
MARLO deliverable ID.
Query parameters
Reporting year.
Reporting phase (
AR or POWB).PublicationDTO on success. Returns 404 if the record is not found.
Create an “other” publication
Create a publication of a non-peer-reviewed deliverable type (reports, datasets, etc.).FULL_CREATE_REST_API_PERMISSION.
Request body (NewPublicationOtherDTO)
Title of the deliverable.
Deliverable type ID. Use the
GeneralLists controller to look up valid type codes.Structured list of
DeliverableUserDTO author objects.Free-text authors field.
Year of publication.
Whether the deliverable is open access.
Digital Object Identifier.
Handle repository URL.
Direct URL to the deliverable.
Update an “other” publication
FULL_READ_REST_API_PERMISSION. Same request body as POST /publicationsOther. Returns the numeric ID of the updated deliverable.
Validate a publication against Web of Science
Look up a WOS record by URL to validate metadata before submission.Query parameters
The Web of Science article URL to validate.
PublicationsWOSDTO object with enriched metadata from the WOS index. Returns 404 if the URL is not found in WOS.
Common error codes
| HTTP status | Meaning |
|---|---|
200 | Success |
404 | Deliverable not found for the given ID, entity, year, and phase |
401 | Missing or expired token |
403 | Token valid but insufficient permissions |
400 | Request body validation failed (e.g., missing required phase field) |