# EMS Developers > Connect your systems to EMS with the public API. ## Docs - [EMS Public API](/index): Connect your own systems to EMS: your website, CRM or internal tools. - [Quickstart](/quickstart): Create an API key and make your first request. - [Authentication](/authentication): API key pairs and HTTP Basic auth. - [Scopes](/scopes): What each API key is allowed to do. - [Pagination](/pagination): Walking through long lists with cursors. - [Errors](/errors): Status codes and error responses. - [Rate limits](/rate-limits): How many requests you can make. - [Speakers](/speakers): Add and manage an event's speakers from your own systems. - [Uploading photos](/uploading-photos): Upload an image, for example a speaker photo, in three steps. - [Changelog](/changelog): Changes to the EMS Public API. - [Who am I](/api-reference/whoami): Check an API key: the organisation it belongs to and its scopes. - [List events](/api-reference/events): Your organisation's events, earliest first. Needs the events:read scope. - [List speakers](/api-reference/speakers/list): An event's speakers, alphabetical. Needs speakers:read. - [Get a speaker](/api-reference/speakers/get): One speaker. Needs speakers:read. - [Create a speaker](/api-reference/speakers/create): Add a speaker to an event. Needs speakers:write. - [Update a speaker](/api-reference/speakers/update): Replace a speaker's profile. Needs speakers:write. - [Delete a speaker](/api-reference/speakers/delete): Remove a speaker. Needs speakers:write. - [List speaker categories](/api-reference/speakers/categories): Categories for a speaker's category_id. Needs speakers:read. - [Get speaker settings](/api-reference/speakers/settings): Which profile fields are public. Needs speakers:read. - [Update speaker settings](/api-reference/speakers/update-settings): Choose which profile fields are public. Needs speakers:write. - [Start a photo upload](/api-reference/media/start-upload): Step 1 of 3: get a signed form. Needs media:write. - [Complete a photo upload](/api-reference/media/complete-upload): Step 2 of 3: ask EMS to process the file. Needs media:write. - [Get a photo upload's status](/api-reference/media/upload-status): Step 3 of 3: poll until ready. Needs media:write.