Getting started
The open API lets an organisation's own programs read its data: a website that shows the next events, a spreadsheet that adds up the month, a screen in the hall. It is part of the API access module.
- In Azonation, open API access and make a key. Tick only what the program needs.
- Copy the key when it is shown. It is shown once; Azonation keeps only its fingerprint.
- Send the key with every request, in the
Authorizationheader.
curl -H "Authorization: Bearer YOUR_KEY" \
"https://api.azonation.com/api/v1/open/events?from=2026-10-01&per_page=20" The answer is JSON:
{
"data": [
{ "id": 76, "name": "Summer fair", "starts_on": "2026-08-15", "venue": "Riverside Green" }
],
"meta": { "page": 1, "per_page": 20, "total": 6, "last_page": 1 }
} Keys
- One key per program. If a key leaks, switch that one off and nothing else stops working.
- A key reads only what was ticked. Asking for anything else answers
403. - A key can be for one branch. It then reads only that branch's members, meetings and events.
- A key can run out. Give it a number of days; the owners are told before it ends.
- Keep a key on a server. Never put it in a web page or a phone app that other people can open.
A list of everything a key may read: GET https://api.azonation.com/api/v1/open
Asking
Every address starts with https://api.azonation.com/api/v1/open/ followed by the name of what you want. Dates are written YYYY-MM-DD. Times are in the organisation's own time zone. Money is in the smallest unit of the currency (pence, cents) with the currency beside it.
Filters go in the address after a question mark. Each resource has its own (see the table below):
https://api.azonation.com/api/v1/open/members?status=active&updated_since=2026-09-01
https://api.azonation.com/api/v1/open/money?from=2026-01-01&to=2026-12-31&kind=money_in Pages of results
A list comes in pages: page (from 1) and per_page (50 if you say nothing, 100 at most). meta.last_page says when to stop.
Errors and limits
| Status | code | What it means |
|---|---|---|
| 401 | bad_key | No key, a wrong key, or one that was switched off or has run out. |
| 403 | not_allowed | The key was not ticked for this. |
| 404 | no_resource | There is nothing by that name, or the organisation does not have that module. |
| 422 | A filter or a field is wrong; errors says which. | |
| 429 | too_many | Too many requests. Wait the number of seconds in the Retry-After header. |
A key may ask 60 times a minute and send in 10 times a minute. An error answer always has a message in plain words.
What you can read
| Address | What it gives | Filters |
|---|---|---|
/about | About us. Your name, address and how to reach you, the founders you show, and your story as members read it. | — |
/members | Members. Names, email addresses, phone numbers, membership numbers and status. Not notes, birthdays or home addresses. | statusupdated_since |
/membership_types | Kinds of membership and fees. Each kind of membership and what it costs today. What a Join us page shows. | — |
/committees | Committees. Each committee with who serves on it now and in which role. Names only. | — |
/branches | Branches. Names, addresses and how to reach each branch. | archived |
/directory | Members’ directory. Exactly what members see of each other there. Nobody who took themselves out. | — |
/ideas | Ideas board. The ideas on your board with how many support each, and your answer. Never who shared or supported one. | status |
/benefits | Member benefits. The benefits on offer today: what each one is, who gives it and who it is for. Never the codes, and never who used one. | kind |
/calendar | Calendar. Meetings, events, tasks and projects in one list by day. No more than those give each on their own. | fromto |
/meetings | Meetings. What, when and where. Never the link or the code of an online meeting. | fromto |
/attendance | Attendance numbers. How many came to each meeting. Counts only, never who. | fromto |
/events | Events. Your published events: what, when and where. | fromto |
/event_numbers | Event numbers. How many come to each event and how many places are left. Counts only, never who. | fromto |
/notices | Noticeboard. The notices that are up today. | — |
/tasks | Tasks. What is to be done, by when, and whether it is done. Not the note on a task. | donedue_fromdue_to |
/projects | Projects. Your published projects: what, when, where and how they stand. Not their money or their team. | status |
/planning | Planning. The goals of your published plans and how far each has come. | plan_id |
/volunteering | Helpers wanted. Open shifts from today on and how many helpers each still needs. Never who signed up. | fromto |
/money | Money. Every entry of your books, with its accounts and amounts. | fromtokind |
/invoices | Invoices and bills. Invoices, bills and credit notes that were issued, with their totals. Not drafts, not addresses. | typestatusfromto |
/fundraising | Fundraising totals. Each appeal with its goal, what was raised and how many gifts. Never who gave. | status |
/assets | Assets. What you own, where it is and in what state. Not what it is worth, nor who holds it. | statuskind |
/media | Media library. The albums shared with members or everyone, and how many pictures each has. Not the pictures themselves. | — |
/newsletters | Newsletters. The newsletters you sent. Never who subscribes. | — |
/certificates | Certificates. Number, title, name and date of each certificate. Not ones taken back, never an email address. | kindfromto |
/policies | Policies. The policies in force that are meant for your members. Never who has read them. | — |
/vote_results | Results of votes. Totals of votes that are closed, and of elections once announced. Never who voted or how. | kind |
/annual_reports | Annual reports. The reports you published: title, year and opening words. | — |
/reports | Report figures. The figures at the top of each report, for any period. Never the tables that name people. | reportfromto |
What you can send in
Three things can be sent in, each from a form on the organisation's own website. Each only adds something that waits for a person: nothing that exists is changed, nobody becomes a member, and no money moves.
| Address | What it is | Fields (a star: must be there) |
|---|---|---|
POST /applications | Requests to join. From a Join us form on your own website. Each waits until you approve it: nobody becomes a member by it. | first_name*last_nameemail*phoneaddressborn_onmembership_type_idmessageconsent* |
POST /messages | Messages. From a Contact us form on your own website. They arrive with the messages of your website. | name*email*phonemessage* |
POST /newsletter_signups | Newsletter sign-ups. From a Subscribe box on your own website. The person must confirm by email first. | email*nameconsent* |
curl -X POST -H "Authorization: Bearer YOUR_KEY" -H "Content-Type: application/json" \
-d '{"name":"James Wood","email":"james.wood@example.com","message":"Can we hire the hall?"}' \
"https://api.azonation.com/api/v1/open/messages" Rules of the road
- The API is read-only apart from the three inboxes above. That is on purpose: a leaked key can never change or delete an organisation's records.
- Donors, single gifts, form answers, documents and secret ballots are not readable through the API.
- Whoever holds a key acts for the organisation and must keep to its duties under data protection law and our acceptable use policy.
- New fields may be added to an answer at any time. Fields are not removed or renamed without notice.
- Questions: support@azonation.com.