Developers

Try the API in two minutes

Check your key works by listing your events and adding one test person, straight from your computer.

← Back to Developers

Before connecting a tool, it helps to see the API answer you. Every Mac and Windows computer has a program that can send a request. In each example below, replace YOUR_KEY with your API key and EVENT_ID with your event id, keeping the quote marks around them.

On a Mac: list your events

  1. Open Terminal (press Command and Space, type Terminal, then press Return).
  2. Copy the line below, paste it into Terminal, change YOUR_KEY to your key, and press Return.
curl -H "Authorization: Bearer YOUR_KEY" https://shoalevents.com/api/v1/events

You'll see your events as JSON, one after another, each with its id, name, status, dates and number registered. If you see an error instead, check "Fix API errors".

On Windows: list your events

  1. Open PowerShell (choose Start, type PowerShell, then press Enter).
  2. Copy the two lines below, paste them into PowerShell, change YOUR_KEY to your key, and press Enter.
$headers = @{ Authorization = "Bearer YOUR_KEY" }
Invoke-RestMethod -Uri "https://shoalevents.com/api/v1/events" -Headers $headers

PowerShell shows each event as a small table with its id, name and other details.

Add one test person

This adds Test Person (test@example.com) to an event as Invited. Nobody gets an email. On a Mac, paste this into Terminal after changing YOUR_KEY and EVENT_ID:

curl -X POST "https://shoalevents.com/api/v1/events/EVENT_ID/attendees" \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"attendees": [{"email": "test@example.com", "first_name": "Test", "last_name": "Person"}]}'

On Windows, paste this into PowerShell instead:

$headers = @{ Authorization = "Bearer YOUR_KEY" }
$body = '{"attendees": [{"email": "test@example.com", "first_name": "Test", "last_name": "Person"}]}'
Invoke-RestMethod -Method Post -Uri "https://shoalevents.com/api/v1/events/EVENT_ID/attendees" -Headers $headers -ContentType "application/json" -Body $body

The answer says created 1 and updated 0. Open the event's Attendees screen and Test Person is there. Run it a second time and it says created 0 and updated 1, because people are matched by email.

Next: Connect Google Sheets

Plan Your Next Event on Shoal

Your first 2 events of up to 50 people are free if you create them before January 1, 2027. Set up in an afternoon.