Skip to content

GitNation/API-Description

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 

Repository files navigation

GitNation Public API

A read-only HTTP API exposing event metadata, schedules, speakers, workshops, partners, and brand info for all GitNation conferences.

Base URL: https://ems.gitnation.org/

All endpoints described in this document are relative to this base.


Conventions

Property Value
Protocol HTTPS only
Method GET for all data endpoints; OPTIONS for CORS preflight. No request body ever required.
Format application/json — dates are ISO 8601 strings (UTC), IDs are integers
Authentication None
Rate limits None enforced
Versioning None

CORS

The API is intended to be called from a server, but also accepts browser requests from allow-listed origins — the official GitNation brand domains, gitnation.com, and localhost in development.

Non-allow-listed origins: If you build a browser-only app on a different origin (e.g. a Vercel preview URL or a custom domain), proxy the calls through your own backend or a serverless function. Direct fetch() from an unlisted origin will fail CORS.


Identifying an Event

Most endpoints are nested under /api/events/{eventId}. Get the list of events and their numeric IDs from:

GET /api/events

The slug field (e.g. react-summit-2026, jsnation-2026) is human-readable and can be used to map URLs in your app to event IDs.


Endpoints

Collection endpoints

GET /api/events

Returns all events with their numeric IDs, slugs, dates, location, and brand info.

GET /api/events/promoted

Returns a single promoted upcoming event, selected automatically based on the requesting brand domain and client geo. Useful for contextual CTAs on brand sites.


Single-event endpoints

All endpoints below are relative to /api/events/{eventId}.

GET /api/events/{eventId}

Core event details: name, description, dates, location, and brand tagline.

GET /api/events/{eventId}/brand

Brand styling tokens for the event: accentCSS, textColor, backgroundCSS. Use these to render event UI in brand colors without hardcoding per-event values.

GET /api/events/{eventId}/schedule

Full schedule for the event. Tracks with the same name are merged.

GET /api/events/{eventId}/discussion-rooms

All Discussion Room activities for the event.

GET /api/events/{eventId}/workshops

All workshops with trainer info, location, time, and package inclusion flag. WorkshopPass and ProWorkshop tiers are sorted first.

GET /api/events/{eventId}/free-workshops

Legacy endpoint. Returns only Premium and Public workshops. Kept for migration compatibility — prefer /workshops for new integrations.

GET /api/events/{eventId}/partners

Partner list with logo (Cloudinary URL), site URL, description, and theme-aware styling metadata.

GET /api/events/{eventId}/users?role=MC|PC

Event registrations filtered by role. Pass role=MC (Master of Ceremonies) or role=PC (Program Committee). Returns user profiles and associated tags.

GET /api/events/{eventId}/speakers

Confirmed speakers for the event, each including their non-draft talks and workshops.

GET /api/events/{eventId}/speakers/top

The top speaker by Twitter/X follower count. Includes a badge image URL for use in promotional assets.

GET /api/events/{eventId}/speakers/past

Speakers from past events who have been re-assigned to this event.

GET /api/events/{eventId}/latestLinks

Returns the 3 oldest published landing pages. Note: ignores {eventId} — the result is global, not scoped to the event.

GET /api/events/{eventId}/price-increase

Returns the next upcoming ticket price increase within a look-ahead window. Default window is 30 days; event 138 uses a 45-day window. Pass periodDays as a query param to override.

GET /api/events/138/price-increase?periodDays=45

Examples

cURL — list all events

curl https://ems.gitnation.org/api/events

cURL — full schedule for event 138

curl https://ems.gitnation.org/api/events/138/schedule

Browser / Node.js (no auth headers needed)

const res = await fetch('https://ems.gitnation.org/api/events/138/speakers');
const speakers = await res.json();

Error Handling

Status Meaning
200 OK Success
404 Not Found Unknown event ID or no resource matching the path
405 Method Not Allowed A non-GET method was used
5xx Transient server error — retry with exponential backoff

Error responses do not have a guaranteed JSON shape. Treat any non-2xx status as a failure and do not attempt to parse the body as structured data.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors