Authentication
Public read endpoints do not use API keys. Send a normal HTTPS GET. Private routes (checkout webhooks, course progress, sales) are authenticated with platform secrets and are out of scope for third-party agents.
Endpoints
Canonical operations are listed in the Plant Grail OpenAPI specification. Function-calling clients should import that document and use the operationId values getHealth, listPlants, listArticles, and getOpenApiDocument.
Example request
curl -s https://plantgrail.com/api/health
returns JSON {"status":"ok","service":"plantgrail"}.
curl -s "https://plantgrail.com/api/plants?limit=5"
returns a paginated plant list. On failure, parse error.resolution instead of scraping an HTML page.
Rate-limit convention
Successful and error API responses include RateLimit, RateLimit-Policy, X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset. A 429 also includes Retry-After. The public window is 60 requests per 60 seconds per IP.