API for developers

Let your own website, spreadsheet or screen read your organisation's data. Read-only by design, with a key you can switch off.

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.

  1. In Azonation, open API access and make a key. Tick only what the program needs.
  2. Copy the key when it is shown. It is shown once; Azonation keeps only its fingerprint.
  3. Send the key with every request, in the Authorization header.
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

StatuscodeWhat it means
401bad_keyNo key, a wrong key, or one that was switched off or has run out.
403not_allowedThe key was not ticked for this.
404no_resourceThere is nothing by that name, or the organisation does not have that module.
422A filter or a field is wrong; errors says which.
429too_manyToo 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

AddressWhat it givesFilters
/aboutAbout us. Your name, address and how to reach you, the founders you show, and your story as members read it.—
/membersMembers. Names, email addresses, phone numbers, membership numbers and status. Not notes, birthdays or home addresses.statusupdated_since
/membership_typesKinds of membership and fees. Each kind of membership and what it costs today. What a Join us page shows.—
/committeesCommittees. Each committee with who serves on it now and in which role. Names only.—
/branchesBranches. Names, addresses and how to reach each branch.archived
/directoryMembers’ directory. Exactly what members see of each other there. Nobody who took themselves out.—
/ideasIdeas board. The ideas on your board with how many support each, and your answer. Never who shared or supported one.status
/benefitsMember 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
/calendarCalendar. Meetings, events, tasks and projects in one list by day. No more than those give each on their own.fromto
/meetingsMeetings. What, when and where. Never the link or the code of an online meeting.fromto
/attendanceAttendance numbers. How many came to each meeting. Counts only, never who.fromto
/eventsEvents. Your published events: what, when and where.fromto
/event_numbersEvent numbers. How many come to each event and how many places are left. Counts only, never who.fromto
/noticesNoticeboard. The notices that are up today.—
/tasksTasks. What is to be done, by when, and whether it is done. Not the note on a task.donedue_fromdue_to
/projectsProjects. Your published projects: what, when, where and how they stand. Not their money or their team.status
/planningPlanning. The goals of your published plans and how far each has come.plan_id
/volunteeringHelpers wanted. Open shifts from today on and how many helpers each still needs. Never who signed up.fromto
/moneyMoney. Every entry of your books, with its accounts and amounts.fromtokind
/invoicesInvoices and bills. Invoices, bills and credit notes that were issued, with their totals. Not drafts, not addresses.typestatusfromto
/fundraisingFundraising totals. Each appeal with its goal, what was raised and how many gifts. Never who gave.status
/assetsAssets. What you own, where it is and in what state. Not what it is worth, nor who holds it.statuskind
/mediaMedia library. The albums shared with members or everyone, and how many pictures each has. Not the pictures themselves.—
/newslettersNewsletters. The newsletters you sent. Never who subscribes.—
/certificatesCertificates. Number, title, name and date of each certificate. Not ones taken back, never an email address.kindfromto
/policiesPolicies. The policies in force that are meant for your members. Never who has read them.—
/vote_resultsResults of votes. Totals of votes that are closed, and of elections once announced. Never who voted or how.kind
/annual_reportsAnnual reports. The reports you published: title, year and opening words.—
/reportsReport 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.

AddressWhat it isFields (a star: must be there)
POST /applicationsRequests 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 /messagesMessages. From a Contact us form on your own website. They arrive with the messages of your website.name*email*phonemessage*
POST /newsletter_signupsNewsletter 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.

Try it with your own organisation

Free for up to 100 members, for as long as you like. No card, no sales call.

Search the site

Arrows to move, Enter to open, Esc to closeSite map

Can we help?

Write to us and a person answers, usually within one working day.

support@azonation.com