DasigECOSYSTEM
API reference

Use Dasig

OverviewStart a groupVolunteeringHubs and working offline

Build on it

BIXAPI referenceRun your own server

Trust

OverviewHost policyPrivacySafety and reportsStatus

API reference

Every Bayanihan Server speaks the same API: the one inside each phone, a group's hub, and the Dasig Ecosystem at https://ecosystem.dasig.org (in pilot). Requests and responses are JSON BIX records.

Authentication

Send Authorization: Bearer <token>. A token comes from pairing with a hub (POST /$pair) or from signing in to a hosted server. Reading public summaries needs no token.

Endpoints

PathWhat it does
GET/metadataWhat this server supports: BIX version, resource types, interactions
GET/{type}/{id}One record, if you may see it. Private records answer “not found”, never “forbidden”
GET/{type}?field=valueSearch, e.g. /Task?team=Team/…
GET/{type}/{id}/_historyEvery version of a record
POST/A transaction or sync Bundle: one or more changes, each checked against lifecycles and permissions
GET/{type}/{id}/$canWhat you may do with this record, and who may change it
GET/{type}/{id}/$verifyWho signed which version, and whether it is unchanged
GET/$keys/{type}/{id}A group's public signing key
GET/Decision/{id}/$tallyVotes cast and the count, once the vote closes
POST/$meYour Person on this server (creates it with a nickname the first time)
POST/$me/deleteDelete your account after a 14-day grace period; ?cancel=1 to undo
GET/Person/{id}/$exportEverything that names you, as a BIX Bundle
GET/Organization/{id}/$exportA group's records, for its officers
POST/$filesUpload a file (binary, or base64 JSON with ?b64=1). Returns an Attachment
GET/$files/{hash}Download a file you may see
POST/$linksCreate a share link for a record (view, join a team, join the group, propose, comment)
GET/$linksYour links
POST/$links/{id}/revokeTurn a link off
GET/$link/{token}What a link shows to the person opening it
POST/$link/{token}/joinJoin the team or group the link is for
POST/$pairPair a phone with a hub using its pairing code; returns a token

A change, end to end

POST / 
{ "type": "transaction",
  "entry": [{ "resource": {
    "resourceType": "Task", "id": "…", "meta": { "version": 2 },
    "status": "accepted", "owner": { "reference": "Person/…" }, … } }] }

→ 200 { "entry": [{ "ok": true, "record": { … "meta": { "version": 2 } } }] }
→ 409 { "entry": [{ "ok": false, "reasons": ["someone got there first"], "current": { … } }] }

Send the next version of the record. If someone changed it first, the server refuses and returns the current version, so the app can tell the person what happened.