Skip to main content

For developers

Use our resource data

The directory is public data. Take it, put it on your own site, and keep it current automatically.

PaliHub keeps 117 recovery resources across 18 categories, checked and updated by hub staff. If your organization already publishes a resources page, you can read ours straight from a URL instead of maintaining a second copy that quietly falls out of date. It is free, needs no key, and you do not have to ask.

The feed

One request returns the whole directory. GET, no authentication, and open to any origin, so it works from a browser as well as from a server.

https://thepalihub.org/data/resources.json

const res = await fetch('https://thepalihub.org/data/resources.json')
const { resources, categories } = await res.json()

// everything in one category
const legal = resources.filter(r => r.category === 'legal-aid')

Filtering by community or audience

Use the serves… fields, not the raw ones. A listing with no communities set, or the single value "All", belongs everywhere — that is most of the directory. Filtering on the raw communities array therefore drops roughly two thirds of the listings that genuinely serve a given community, and nothing about the result looks wrong. The same applies to audience, which is blank on rows that apply to everyone.
// correct — agrees with what /resources/ shows
resources.filter(r => r.servesCommunities.includes('Malibu'))
resources.filter(r => r.servesAudiences.includes('renter'))

// wrong — silently hides most of the directory
resources.filter(r => r.communities.includes('Malibu'))

The raw fields are still there if you want to show exactly what staff entered. They are just the wrong thing to filter on. Valid communities are Eaton, Palisades, Altadena, Malibu; valid audiences are owner and renter.

What comes back

The top level carries version, generatedAt, source, attribution, communities, categories and resources. One resource looks like this:

{
  "id": 1,
  "url": "https://thepalihub.org/resources/?r=united-policyholders-1",
  "category": "homeowner-renter-insurance-financial-and-employment",
  "categoryTitle": "Homeowner/Renter Insurance, Financial, and Employment",
  "type": "Insurance",
  "organization": "United Policyholders",
  "description": "United Policyholders (UP) is a non-profit organization that has three-plus decades of exp…",
  "notes": [],
  "communities": [
    "All"
  ],
  "audience": "Both",
  "servesCommunities": [
    "Eaton",
    "Palisades",
    "Altadena",
    "Malibu"
  ],
  "servesAudiences": [
    "owner",
    "renter"
  ],
  "timeframe": "",
  "contact": "",
  "links": [
    {
      "label": "Wildfire recovery help",
      "url": "https://uphelp.org/disaster-recovery-help/2025cawildfires/"
    }
  ],
  "image": {
    "url": "https://thepalihub.orghttps://pub-95dd68e8b75446158d8dde2282330cb7.r2.dev/media/resources/united-policyholders-1.webp",
    "alt": "United Policyholders logo"
  }
}

Image URLs are absolute, so they load from your site without rewriting. url is the canonical page for that listing — linking to it gives your visitors the full record, including the contact details for the roughly half of these organizations that have no website of their own.

Caching and fair use

Responses are cached for five minutes, with stale copies served for up to an hour while a fresh one is fetched. Fetch it per page view if you like — the cache absorbs it. What we would ask you not to do is poll it in a loop faster than it can change; if you need the data on every render of a busy page, cache it your side for a few minutes and everyone stays fast.

Fields will be added over time. Nothing will be renamed or removed without version changing, so it is safe to read the fields you need and ignore the rest.

Credit and accuracy

Please credit PaliHub and link back to the directory so people can reach the current version. The listings are compiled from community and agency sources and change often; details should be confirmed with each organization. Nothing in the feed asserts that a listing has been verified, and we would ask you not to present it as though it had.

Questions, or something you need that is not in here — another feed, a different shape? Write to [email protected].