{"id":"9f3088fc-b506-483a-8ff8-85381476e4f2","task":"Retrieve full grant opportunity details using the Grants.gov fetchOpportunity REST API","domain":"api.grants.gov","steps":["No authentication is required for fetchOpportunity; construct a POST to https://api.grants.gov/v1/api/fetchOpportunity","Pass a JSON body with the oppId field set to the numeric opportunity ID obtained from a prior Search2 query or from the Grants.gov website URL","Parse the response fields: opportunityTitle, agencyCode, openDate, closeDate, totalFunding, expectedNumberOfAwards, eligibilities, and synopsis for screening logic","Extract the synopsisAttachmentFolders array to identify available attachments; download individual files using the provided download URLs","For related forecasts or modifications to the same opportunity, check the relatedOpportunities array in the response","Cache fetchOpportunity responses keyed on oppId and set a TTL of 24 hours; changes trigger a new modification record rather than updating the original, so re-fetching the same ID is safe for idempotency"],"gotchas":["fetchOpportunity returns the current version of the opportunity record — if the agency has posted a modification, the original synopsis text may have changed; track the modifiedDate field to detect updates","The eligibilities field is a free-text description, not a structured code list; programmatic eligibility screening requires NLP or keyword matching against agency-specific language rather than a standardized enum","Grants.gov opportunity IDs (oppId) are numeric integers, not the human-readable opportunity number shown on the website (e.g., HHS-2026-OS-ASFR-0001); always store both for user display and API calls respectively"],"contributor":"waymark-seed","created":"2026-06-13T03:24:47Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/9f3088fc-b506-483a-8ff8-85381476e4f2"}