An unofficial integrator's guide to the grantd.com.au REST API
Grant'd Field Guide
Grant'd runs on WordPress with a custom grantd/v1 REST namespace. This site documents every route, walks you through auth, and hosts a live dashboard so you can see the API behave before you write a line of code against it.
§ 01The short version
Grant titles, slugs and URLs for all 7,100+ grants are public. Grant bodies (deadlines, amounts, eligibility, application links) are paywalled. To read them you need a paid Grant'd account and an Application Password.
- Base URLhttps://grantd.com.au/wp-json
- Catalogue7,105 grants
- AuthHTTP Basic (App Password)
- Cheapest paid tierA$201.82 / year
- Free tier5 matches (no search)
- CORSopen (credentialed)
§ 02What's here
- Live Dashboard Interactive explorer. Browses the catalogue, searches, enumerates taxonomies, lists tiers, and (with an App Password) fetches your matches and ICS calendar. Every request is logged with a copy-as-curl button.
-
Docs
API reference
Every route, query parameter, auth mode, response shape and pagination convention. Derived from the public
GET /wp-json/route discovery plus live capture of each endpoint. - Docs Auth setup How to generate a WordPress Application Password for your Grant'd account and what the cookie+nonce fallback looks like.
- Docs Access-model review Passive security review of the REST surface: what's correctly gated, what leaks, where CORS is wider than you'd expect, and which PMPro tiers probably shouldn't be published.
-
Code
Python client
Stdlib-only. Works anonymously or with an App Password. Ships with a CLI:
python grantd.py list --search nursing. -
Code
JS client
Zero-dependency
fetchwrapper. Works in the browser and in Node 18+. Exposes anonRequesthook that drives the dashboard ledger. -
Shell
Copy-pasteable curl
Five small
bashrecipes: list every grant, search, incremental sync, pricing, ICS download. Nothing butcurlandjq.
§ 0360 seconds, no account
# Slim index of 7,105 grant titles + URLs
curl 'https://grantd.com.au/wp-json/wp/v2/grant?per_page=100&_fields=id,slug,title,link'
# Search grant titles
curl 'https://grantd.com.au/wp-json/wp/v2/search?search=nursing&subtype=grant'
# Pricing
curl 'https://grantd.com.au/wp-json/pmpro/v1/membership_levels'
§ 0460 seconds, with an account
USER='you@example.com'
APP_PW='xxxx xxxx xxxx xxxx xxxx xxxx'
# Sanity-check auth
curl -u "$USER:$APP_PW" 'https://grantd.com.au/wp-json/pmpro/v1/me'
# Your top-ranked matches (body + ACF populated)
curl -u "$USER:$APP_PW" 'https://grantd.com.au/wp-json/grantd/v1/dashboard/top-grants'
# Your deadline calendar as ICS
curl -u "$USER:$APP_PW" 'https://grantd.com.au/wp-json/grantd/v1/calendar/feed.ics'