Simpli API Documentation
Technical reference for publicly accessible organizer and collection endpoints.
Public API Reference
Public collection feed with collection metadata and published collection events.
/api/collection/{collectionId}Auth: No auth required
| Name | Type | Required | Description |
|---|---|---|---|
| collectionId | string (GUID) | Yes | Collection ID (GUID) from Simpli. This is shown inside collection edit settings API section. |
curl -X GET https://simpli.events/api/collection/{collectionId}const response = await fetch(
'https://simpli.events/api/collection/6ba7b810-9dad-11d1-80b4-00c04fd430c8'
);
if (!response.ok) {
throw new Error(`API request failed (${response.status})`);
}
const collection = await response.json();
// Use endTime to determine if events are still upcoming.
const upcomingEvents = collection.events.filter(
(event) => event.endTime !== null && event.endTime > Date.now()
);200
Collection payload returned successfully.
404
Collection not found.
500
Server error.
type CollectionApiResponse = {
id: string; // GUID
name: string;
description: string | null;
descriptionJson: Record<string, unknown> | null;
organizerId: string; // GUID
createdAt: number;
updatedAt: number;
customUrl: string;
picture: string | null;
showLanguageSelector?: boolean;
link: string;
events: Array<{
id: string; // GUID
name: string;
description: string;
startTime: number | null;
endTime: number | null;
picture: string | null;
link: string;
address: string | null;
onlineLink: string | null;
createdAt: number;
recurring: boolean;
tickets: Array<{
id: string; // GUID
name: string;
price: number | null;
quantity: number | null;
available: boolean;
hidden: boolean;
ticketType: 'Paid' | 'Free' | 'Donation' | 'PWYC';
minimumPrice: number | null;
unlimited?: boolean;
customURL: string | null;
}>;
sessions: Array<{
id: string; // GUID
eventId: string; // GUID
startTime: number;
endTime: number;
hide?: boolean;
}>;
}>;
};404 - Collection ID does not exist.
{
"error": "Collection not found"
}500 - Database query fails or an unexpected server error occurs.
{
"error": "Internal server error"
}{
"id": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "Campus Spring Series",
"description": "<p>Our spring events collection.</p>",
"descriptionJson": { "type": "doc", "content": [] },
"organizerId": "550e8400-e29b-41d4-a716-446655440000",
"createdAt": 1772200000000,
"updatedAt": 1772600000000,
"customUrl": "campus-spring-series",
"picture": "https://...",
"showLanguageSelector": true,
"link": "https://simpli.events/c/campus-spring-series",
"events": [
{
"id": "0f8fad5b-d9cb-469f-a165-70867728950e",
"name": "Spring Mixer",
"description": "<p>Welcome to the spring mixer.</p>",
"startTime": 1773043200000,
"endTime": 1773050400000,
"picture": "https://...",
"link": "https://simpli.events/e/spring-mixer",
"address": "1455 De Maisonneuve Blvd W",
"onlineLink": null,
"createdAt": 1772500000000,
"recurring": false,
"tickets": [],
"sessions": []
}
]
}| Path | Type | Description |
|---|---|---|
| id | string | Collection ID. |
| name | string | Collection name. |
| description | string | null | Collection description HTML. |
| descriptionJson | Record<string, unknown> | null | Rich editor JSON payload for collection description. |
| organizerId | string | Owner organizer ID. |
| createdAt | number | Collection creation time in milliseconds. |
| updatedAt | number | Collection update time in milliseconds. |
| customUrl | string | Collection public slug. |
| picture | string | null | Collection image URL. |
| showLanguageSelector | boolean | undefined | Flag to show language selector for this collection. |
| link | string | Collection public page URL. |
| events | array<Event> | Published events attached to this collection. |
| events[].id | string | Event ID. |
| events[].name | string | Event title. |
| events[].description | string | Event description HTML string. |
| events[].startTime | number | null | Event start in milliseconds. |
| events[].endTime | number | null | Event end in milliseconds. |
| events[].picture | string | null | Event image URL. |
| events[].link | string | Public event page URL. |
| events[].address | string | null | In-person event address when set. |
| events[].onlineLink | string | null | Online event URL when set. |
| events[].createdAt | number | Event creation time in milliseconds. |
| events[].recurring | boolean | Whether the event is recurring. |
| events[].tickets | array<Ticket> | Tickets attached to the event. |
| events[].tickets[].id | string | Ticket ID. |
| events[].tickets[].name | string | Ticket name. |
| events[].tickets[].price | number | null | Ticket price in cents. |
| events[].tickets[].quantity | number | null | Max ticket quantity if limited. |
| events[].tickets[].available | boolean | Current ticket availability flag. |
| events[].tickets[].hidden | boolean | Whether ticket is hidden on event page. |
| events[].tickets[].ticketType | "Paid" | "Free" | "Donation" | "PWYC" | Ticket payment type. |
| events[].tickets[].minimumPrice | number | null | Minimum price for flexible tickets. |
| events[].tickets[].unlimited | boolean | undefined | Legacy unlimited flag (still returned). |
| events[].tickets[].customURL | string | null | Optional per-ticket URL slug. |
| events[].sessions | array<Session> | Sessions attached to the event. |
| events[].sessions[].id | string | Session ID. |
| events[].sessions[].eventId | string | Parent event ID. |
| events[].sessions[].startTime | number | Session start in milliseconds. |
| events[].sessions[].endTime | number | Session end in milliseconds. |
| events[].sessions[].hide | boolean | undefined | Optional visibility flag for session. |