← Back to docs

JSON feed

Fetch events as JSON and build your own UI or integrate with other tools.

Basic usage

Shell
curl https://embedacal.com/api/v1/feeds/socal-events/events.json

Response format

JSON
{
  "feed": "socal-events",
  "events": [
    {
      "id": "k57f...",
      "title": "Summer Festival 2025",
      "description": "Annual summer festival at the park",
      "displayDate": "2025-07-04T00:00:00.000Z",
      "startDate": "2025-07-04T10:00:00.000Z",
      "endDate": "2025-07-04T18:00:00.000Z",
      "isTimedEvent": true,
      "isMultiDay": false,
      "timeZoneId": "America/Los_Angeles",
      "latitude": 34.0522,
      "longitude": -118.2437,
      "fullAddress": "123 Main St, Los Angeles, CA 90001",
      "address": "123 Main St, Los Angeles, CA",
      "locationName": "123 Main St",
      "city": "Los Angeles",
      "state": "California",
      "stateCode": "CA",
      "zipcode": "90001",
      "geocoded": true,
      "feedSlug": "socal-events",
      "permalink": "/api/v1/events/2025/07/04/summer-festival-2025"
    }
  ],
  "hasMore": true
}

Query parameters

ParameterDefaultDescription
per_page20Number of events per page (max 100)
searchFilter by keyword match in title, location, city, state

JavaScript example

JavaScript
async function getEvents(feedSlug) {
  const res = await fetch(
    `https://embedacal.com/api/v1/feeds/${feedSlug}/events.json?per_page=50`
  );
  const data = await res.json();
  return data.events;
}

const events = await getEvents("socal-events");
events.forEach(event => {
  console.log(event.title, event.startDate, event.city);
});

Combined org feed

Get events from all feeds in an organization:

Shell
curl https://embedacal.com/api/v1/orgs/my-org/events

Caching

All JSON endpoints return Cache-Control: public, s-maxage=300 headers. Behind Cloudflare, responses are cached at the edge for 5 minutes and served stale for up to 10 minutes while revalidating.

CORS

All API endpoints return Access-Control-Allow-Origin: * so you can call them from any domain, including browser-side JavaScript.