When Shoal can't do what a request asks, it answers with a number (the status) and a message like {"error": "No event with that id in your organization."}. Nothing from a failed request is saved, so fix the problem and send it again.
401: the key wasn't accepted
- Check the header is named Authorization and its value is the word Bearer, one space, then the key, with no quote marks or extra spaces around the key.
- Make sure you copied the whole key. If you can't find it, create a new key; Shoal never shows an old one again.
- The key may have been deleted on the API page. Create a new one.
404: not found
- "No event with that id in your organization" means the event id is wrong or belongs to another organization. Copy it again from the address bar (only the part after /events/).
- Check the web address for typos. It should start with https://shoalevents.com/api/v1/.
400: something in the request needs fixing
The message says what to fix, and when you send several people it names which one, counting from 1. Common ones:
- "Attendee 3 needs a valid email": the third person's email is missing or mistyped.
- "Attendee 5 repeats pat@example.com": the same email appears twice in one request. Remove one.
- "has unknown fields": a field name is misspelled. Names are lowercase with underscores, like first_name.
- "answers a question this event doesn't have": a question's name doesn't match the event's registration form. Copy it exactly from the Form & Fields screen.
- "names a track this event doesn't have": create the track on the Tracks tab under Agenda first (or send it to the tracks address), or fix the spelling.
- "Send a JSON body like {"attendees": [ ... ]}": the list of people must be inside "attendees": [ ], and the Content-Type header must be application/json. Other addresses ask for their own list name, such as "tracks" or "sponsors".
- "Event dates lock 5 days before the event starts": starts_at, ends_at and timezone can't be changed from 5 days before the event begins (or after it). Write to support from Help if a date really has to move.
- "another of your events already uses the web address": send a different slug when creating an event.
429: too many requests
Each key can make 300 requests a minute. Wait a minute and try again. Sending people in batches (up to 500 per request) instead of one at a time avoids this.
500: something went wrong on our side
Try again in a minute. If it keeps happening, contact support from Help with the time it happened and what you were sending (never your key).
It worked, but nobody got an email
That's on purpose: the API never emails anyone. Send invitations or tickets from the event's Attendees screen when you're ready.