EventPics API
The API lets you upload photos automatically into an EventPics album – for example from photo booth software.
The API lets you upload photos automatically into an EventPics album – for example from photo booth software.
Get your personal API key in the EventPics app or web app. Open your event and go to the API key management.
The following endpoints are available for integrations. All requests require your API key. For geteventsandalbums send the key in the header (recommended: Authorization: Bearer <API_KEY>, alternative X-API-Key: <API_KEY>); for the upload endpoints send it in the JSON body.
POST Request upload URL
https://api.eventpics.net/getuploadurl
Parameters (JSON body)
apiKey: string (required)linkId: string (required)albumId: string (optional)fileName: string (required)takenAt: number (optional) – Unix timestamp in millisecondsResponse
uploadUrl: stringGET Retrieve events and albums
https://api.eventpics.net/geteventsandalbums
Authentication
Authorization: Bearer YOUR_API_KEY (recommended)X-API-Key: YOUR_API_KEYResponse
events: array of objects with title, linkId, albumsHow the upload flow works. The uploadUrl is valid for about 300 seconds.
GET https://api.eventpics.net/geteventsandalbums
Authorization: Bearer YOUR_API_KEY (or X-API-Key){
"headers": {
"Authorization": "Bearer YOUR_API_KEY"
}
}
{
"events": [
{
"title": "Summer Party",
"linkId": "abcd1234",
"albums": [
{ "id": "a1", "title": "Photo booth" },
{ "id": "a2", "title": "Backstage" }
]
}
]
}
const res = await fetch('https://api.eventpics.net/geteventsandalbums', {
headers: { Authorization: 'Bearer YOUR_API_KEY' },
cache: 'no-store'
});
const data = await res.json();
POST https://api.eventpics.net/getuploadurl
{
"apiKey": "YOUR_API_KEY",
"linkId": "abcd1234",
"fileName": "photo.jpg",
"takenAt": 1736700000000,
"albumId": "a1" // optional
}
{
"uploadUrl": "https://..."
}
const body = { apiKey: 'YOUR_API_KEY', linkId: 'abcd1234', fileName: 'photo.jpg', takenAt: Date.now() };
const res = await fetch('https://api.eventpics.net/getuploadurl', {
method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body)
});
const { uploadUrl } = await res.json();
PUT uploadUrl (from step 2)
Content-Type accordingly, e.g. image/jpeg// Browser: Blob/File
await fetch(uploadUrl, { method: 'PUT', headers: { 'Content-Type': 'image/jpeg' }, body: fileBlob });
// Node.js: Buffer
const fs = await import('fs');
const bytes = await fs.promises.readFile('./photo.jpg');
await fetch(uploadUrl, { method: 'PUT', headers: { 'Content-Type': 'image/jpeg' }, body: bytes });