Skip to content
On this page and tools

Resources API

Manage your directory

For organization staff: add, update, and remove entries in your own community-resource directory. This requires a team key with the directory management scope — developer keys don't have access here.

Who this is for. Organization managers and admins who want to sync their directory from a spreadsheet, CRM, or another system. If you just want to propose one new resource, use Resources — submit instead.

Getting access

The directory management permission is approved for one Space at a time. An admin of the Space opens /dash/integrations/api-tokens, chooses Request access next to Manage your directory, and says which site or app will use it and why. Bynefit reviews the request, usually within one business day, and emails the answer. Once it is approved, an admin can tick the permission when making a team key, and that key can call the endpoints below. Only a manager or admin of the space can hold it, and it stops applying if that person loses the role. If a request is declined, you can ask again after 7 days.

You do not have to wait to start building. A test key (bapi_tk_test_…) can hold this permission straight away. Every call below checks your request exactly as it would live and answers the same way, but the entries go to a private sandbox that lasts a day, never to your directory. See Test mode.

Employee tokens were switched off on 11 October 2026. If you manage your directory with an older employee token, it now gets a 410 error: switch to a team key. See Migrating from the legacy endpoint.

Endpoint base

Basebynefit.com
https://bynefit.com/dash/api/resources
Authorization: Bearer bapi_tk_…
Content-Type: application/json

List entries

GET/dash/api/resources
curl "https://bynefit.com/dash/api/resources?status=approved&limit=50" \
  -H "Authorization: Bearer bapi_tk_…"

Returns every resource owned by your organization, including pending and rejected rows. Supports status, category, limit, and offset.

Add one

POST/dash/api/resources
curl -X POST https://bynefit.com/dash/api/resources \
  -H "Authorization: Bearer bapi_tk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Atlanta Community Food Bank",
    "description": "Food distribution for metro Atlanta",
    "category": "food",
    "address": "732 Joseph E. Lowery Blvd NW",
    "phone": "(404) 892-9822",
    "website": "https://www.acfb.org"
  }'

The entry is added as approved immediately — you're its publisher.

Bulk import

POST/dash/api/resources/import
curl -X POST https://bynefit.com/dash/api/resources/import \
  -H "Authorization: Bearer bapi_tk_…" \
  -H "Content-Type: application/json" \
  -d '{
    "resources": [
      { "name": "Food Bank", "purpose": "Meals for families", "category": "food" },
      { "name": "Legal Aid Society", "phone": "(555) 555-0199" }
    ]
  }'

Rows with no name are skipped. Exact duplicates (same name inside your directory) are skipped. purpose is accepted as a spreadsheet-friendly alias for description. Any row failing validation rolls back the whole batch.

Update

PUT/dash/api/resources
curl -X PUT https://bynefit.com/dash/api/resources \
  -H "Authorization: Bearer bapi_tk_…" \
  -H "Content-Type: application/json" \
  -d '{ "id": 142, "hours": "Mon–Fri 9–5" }'

Patch any subset of name, description, category, address, phone, website, hours, status, is_active.

Delete

DELETE/dash/api/resources
curl -X DELETE https://bynefit.com/dash/api/resources \
  -H "Authorization: Bearer bapi_tk_…" \
  -H "Content-Type: application/json" \
  -d '{ "id": 142 }'

Removes the row and its associated upvotes, saves, and comments.

Categories

Leave category off and Bynefit will infer one from the name and description. Recognized categories: food, housing, health, employment, education, childcare, legal, mental, transport, finance, community, other.

Errors

StatusWhen
401Missing or unknown bearer.
403Your key doesn't have the directory management scope, or the entry belongs to a different organization.
404Entry not found.
422Required field missing or the bulk array is empty.