Events API v1 — structured feed reference

    Technical reference for the FindKobi Events API v1: search by city, age, and date; field catalog; JSON, CSV, RSS, and JSON Feed endpoints for automated publishing workflows.

    API reference · v1

    Events API

    Search family-friendly events in the Bay Area with normalized venues, categories, ages, and plain-text descriptions.

    Authentication

    Pass your API key as api_key or Authorization: Bearer fk_live_…. Create a key from your account.

    Root URL

    https://api.findkobi.com/v1/events

    Sample feed (no key): https://api.findkobi.com/v1/demo/events

    Alternate exports: CSV https://api.findkobi.com/v1/events.csv, RSS https://api.findkobi.com/v1/feed.rss, JSON Feed https://api.findkobi.com/v1/feed.json

    Copy-paste integration

    Plain HTTP GET — no SDK. Demo needs no key; live calls use Authorization: Bearer fk_live_… (or api_key=).

    Data:
    GET https://www.findkobi.com/api/v1/demo/events?city=oakland&age_min=2&age_max=4&week=current&limit=10
    const url = "https://www.findkobi.com/api/v1/demo/events?city=oakland&age_min=2&age_max=4&week=current&limit=10";
    
    const res = await fetch(url, {
      headers: {
        "Accept": "application/json"
      },
    });
    if (!res.ok) throw new Error(await res.text());
    const data = await res.json();
    console.log(data.events.map((e) => e.title));

    Copy-paste integration

    Plain HTTP GET — no SDK. Demo needs no key; live calls use Authorization: Bearer fk_live_… (or api_key=).

    Data:
    Format:
    Auth:
    GET https://www.findkobi.com/api/v1/events?city=oakland&age_min=2&age_max=4&week=current&limit=10
    const url = "https://www.findkobi.com/api/v1/events?city=oakland&age_min=2&age_max=4&week=current&limit=10";
    
    const res = await fetch(url, {
      headers: {
        "Accept": "application/json",
        "Authorization": "Bearer YOUR_KEY"
      },
    });
    if (!res.ok) throw new Error(await res.text());
    const data = await res.json();
    console.log(data.events.map((e) => e.title));

    Common parameters

    • city, lat, lng, radius_km — geo filter
    • age_min, age_max — child age in years
    • category, q, is_free, start_date, end_date
    • limit, offset — pagination

    Fields

    NameTypeDescription
    idstringStable FindKobi event identifier (bsc_evt_…).
    titlestringEvent name.
    descriptionstring | nullPlain-text description (HTML stripped when present).
    summarystring | nullShort plain-text blurb; falls back to truncated description.
    start_datetimestring (ISO 8601)Start time with timezone offset.
    end_datetimestring (ISO 8601)End time when known.
    venue.namestringVenue or place name.
    venue.addressstringSingle-line street address.
    venue.latnumberLatitude (WGS84).
    venue.lngnumberLongitude (WGS84).
    organizerstring | nullHost organization when known (e.g. Oakland Public Library); venue.name is the branch/room.
    organizer_urlstring | nullHost site (library, museum, city org) when safe to share — not upstream feeds.
    categoriesstring[]Normalized category slugs.
    tagsstring[]Additional topical tags.
    image_urlstring | nullPrimary cover image URL.
    is_freebooleanTrue when admission is free.
    priceobject | nullmin, max, note when pricing is known.
    ticket_urlstring | nullHost registration URL when on-library/civic site; otherwise use event_url.
    sourcestring | nullOptional host domain for attribution (library/museum/gov) — never ingest pipeline ids.
    source_urlnullOmitted — use event_url and organizer_url so partners cannot re-ingest upstream feeds.
    destinationstringDestination slug (metro / city cluster).
    age_rangeobject | nullmin_months, max_months (canonical storage units).
    age_range_yearsobject | nullmin_years, max_years — mirrors friendly age_min/age_max filters.
    is_canceledbooleanCancellation flag.
    event_urlstring | nullFindKobi canonical event page — may require a paid API tier when billing is enabled.