Skip to main content

Documentation Index

Fetch the complete documentation index at: https://grantmaster.dev/llms.txt

Use this file to discover all available pages before exploring further.

External API Guide

The GrantMaster External API allows organizations to integrate their grant data with internal ERPs, CRMs (like HubSpot or Salesforce), and custom dashboards.

🔑 Authentication

Access is managed via API Keys generated in the Extensions panel of the organization dashboard.
  • Header: x-api-key: YOUR_API_KEY
  • Rate Limits: 100 requests per minute (Basic), 1,000 requests per minute (Enterprise).

📡 Core Endpoints

1. Grants

  • GET /api/v1/grants: List all grants matching current missions.
  • GET /api/v1/grants/{id}: Retrieve full details of a specific grant.

2. Pursuits (Life Cycle)

  • GET /api/v1/pursuits: List active grant pursuits in the pipeline.
  • POST /api/v1/pursuits: Create a new grant pursuit.
  • PATCH /api/v1/pursuits/{id}: Update pursuit stage or status.

3. Impact & Tasks

  • GET /api/v1/projects/{id}/tasks: List tasks associated with a funded grant project.

🪝 Webhooks

Stay in sync with real-time updates by registering a webhook URL in the Extensions dashboard. We emit the following events:
  • grant.found: Triggered when a new high-match grant is discovered.
  • pursuit.won: Triggered when a grant pursuit is marked as won.
  • task.completed: Triggered when a project deliverable is completed.

Webhook Signature Verification

To ensure security, all webhooks are signed.
  1. Check the x-grantmaster-signature header.
  2. Compute an HMAC SHA-256 signature using your Webhook Secret and the raw body.
  3. Compare the results to verify the payload originated from GrantMaster.

🛡️ Best Practices

  • Pagination: Use limit and offset parameters for all list endpoints.
  • Caching: We recommend caching grant details for 4 hours to minimize API latency.
  • Error Handling: The API returns standard HTTP status codes (400, 401, 403, 429, 500). Detailed error messages are provided in the error field of the JSON response.