← Back to docs

API reference

The EmbedACal REST API is read-only. All endpoints return JSON with CORS headers and edge caching.

Base URL: https://embedacal.com/api/v1

Events

GET/feeds/:slug/events

List upcoming events for a feed. Returns future events sorted by display date.

ParameterTypeDescription
per_pagenumberEvents per page (max 100, default 20)
searchstringFilter by keyword (title, location, city, state)
Shell
curl https://embedacal.com/api/v1/feeds/socal-events/events?per_page=50
GET/feeds/:slug/events/:eventId

Get a single event by ID.

Shell
curl https://embedacal.com/api/v1/feeds/socal-events/events/k57f...
GET/feeds/:slug/events/nearby

Find events near a location using Haversine distance calculation.

ParameterTypeDescription
latnumberLatitude (required unless using state)
lngnumberLongitude (required unless using state)
radiusnumberRadius in miles (default 100)
statestringAlternative: filter by state name
per_pagenumberMax results (default 20)
Shell
curl 'https://embedacal.com/api/v1/feeds/socal-events/events/nearby?lat=34.05&lng=-118.24&radius=50'
GET/feeds/:slug/calendar/:year/:month

Get events for a specific calendar month.

Shell
curl https://embedacal.com/api/v1/feeds/socal-events/calendar/2025/07
GET/feeds/:slug/events.json

Raw JSON feed for developers. Same data as /events but at an explicit .json URL.

ParameterTypeDescription
per_pagenumberEvents per page (max 100, default 20)
Shell
curl https://embedacal.com/api/v1/feeds/socal-events/events.json

Organization feeds

GET/orgs/:orgSlug/events

Get events from all feeds in an organization, merged and sorted.

ParameterTypeDescription
per_pagenumberEvents per page (max 100, default 20)
searchstringFilter by keyword
Shell
curl https://embedacal.com/api/v1/orgs/my-org/events
GET/orgs/:orgSlug/custom/:customSlug

Get events from a custom feed (filtered subset). Pro/Enterprise feature.

ParameterTypeDescription
per_pagenumberEvents per page (max 100, default 20)
Shell
curl https://embedacal.com/api/v1/orgs/my-org/custom/downtown-events

SEO permalinks

GET/events/:year/:month/:day/:event-slug

Human-readable event URL for SEO. Matches by display date and slugified title.

Shell
curl https://embedacal.com/api/v1/events/2025/07/04/summer-festival-2025

Widget config

GET/widget-config/:slug

Widget configuration and feed metadata for the embeddable widget.

Shell
curl https://embedacal.com/api/v1/widget-config/socal-events

Response headers

CORS: Access-Control-Allow-Origin: * — all endpoints are callable from any domain.

Caching: Cache-Control: public, s-maxage=300, stale-while-revalidate=600 — 5 min edge cache, 10 min stale-while-revalidate.

Errors: Return { "error": "message" } with appropriate HTTP status codes (400, 404, 500).