Developer docs · v1

One REST API,
every rescue on the network.

Sync your rescue's dogs, current needs, and available resources programmatically. Use it with Airtable, Zapier, or any backend you already run.

Base URL
https://rescuelink.earth/api
Auth
X-API-Key: rl_...
Also accepts Authorization: Bearer <jwt>
Quickstart

Register once. Sync forever.

1. Register your rescue

Public endpoint. Returns a JWT + API key. Store the key — it's only shown once.

curl -X POST https://rescuelink.earth/api/rescues/register \
  -H "Content-Type: application/json" \
  -d '{
    "org_name": "Second Chance Nashville",
    "email": "team@example.org",
    "password": "correct-horse-battery",
    "contact_person": "Ada Lovelace",
    "location": "Nashville, TN",
    "country": "USA",
    "animal_types": ["dogs", "puppies"],
    "current_needs": ["food", "fosters"],
    "resources_offered": ["transport"]
  }'
2. Post a current need

Uses your API key. Appears in the public GET /needs feed instantly.

curl -X POST https://rescuelink.earth/api/rescues/me/needs \
  -H "X-API-Key: rl_YOURKEYHERE" \
  -H "Content-Type: application/json" \
  -d '{
    "category": "food",
    "urgency": "high",
    "title": "150 lbs puppy food for orphan litter",
    "description": "Litter of 12 orphans arrived yesterday.",
    "quantity": "150 lbs"
  }'
Endpoints

Six endpoints. That's the whole surface.

POST/api/rescues/register public

Create a rescue account. Returns { token, user, rescue, api_key }. The api_key is shown ONCE.

GET/api/rescues/me X-API-Key or JWT

Fetch your rescue profile including animal_types, current_needs, resources_offered, verification status, and social links.

PATCH/api/rescues/me X-API-Key or JWT

Update any field on your rescue profile. Only send the fields you want to change.

curl -X PATCH https://rescuelink.earth/api/rescues/me \
  -H "X-API-Key: rl_YOURKEY" \
  -H "Content-Type: application/json" \
  -d '{"current_needs":["food","medical"],"donation_url":"https://give.example.org"}'
POST/api/rescues/me/api-key/rotate X-API-Key or JWT

Rotate your API key. Returns { api_key, prefix }. The old key is immediately revoked.

POST/api/rescues/me/needs X-API-Key or JWT

Publish a current need to the public /needs feed. Categories: food, volunteers, fosters, funds, supplies, medical, transport, other. Urgency: low | medium | high | critical.

POST/api/rescues/me/resources X-API-Key or JWT

Publish a resource you can offer other rescues (spare transport seats, foster availability, vet hours, etc.). Appears on the public /rescue-resources feed.

GET/api/rescues?country=&region=&q= public

List all rescues. Optional filters: country, region, state, q (fuzzy on name + description).

GET/api/needs?urgency=&category= public

Public feed of open needs across the network. Sorted newest-first.

Errors

400 · validation · 401 · missing / bad auth · 403 · role/ownership · 404 · not found · 422 · schema violation · 5xx · we broke something — retry with backoff.

Rate limits & SLA

Fair-use: 60 req/min per key. Higher limits for verified rescues on request. Uptime: 99.9%. Status: GET /api/.