Skip to content

Animal LA Events API

Animal LA publishes its upcoming nights as a free, open feed: no key, no sign-up. Use it to list our events in your app or website.

Endpoints

GET https://animal.la/api/v1/events

schema.org JSON-LD (the default). Add a switch for plain JSON:

GET https://animal.la/api/v1/events?format=json

?format=jsonld is accepted too. Any other value gets a 400. Calendar feed:

GET https://animal.la/calendar.ics

Formats

The default is schema.org: an ItemList of MusicEvent, each at a BarOrPub. Google and most event aggregators already read it. Plain JSON is a flat shape for when you don’t want to learn schema.org.

Example

{ "@context": "https://schema.org", "@type": "ItemList", "itemListElement": [ { "@type": "MusicEvent", "@id": "https://animal.la/#night-2026-11-11", "identifier": "2026-11-11", "name": "FILTHY ANIMAL", "description": "7PM - CLOSE\nAll-night Happy Hour for queers in gear.\nOpen to all, and all fetish gear encouraged.\nCoat check available.", "url": "https://animal.la/#schedule", "doorTime": "2026-11-11T16:00:00-08:00", "startDate": "2026-11-11T20:00:00-08:00", "endDate": "2026-11-12T02:00:00-08:00", "eventStatus": "https://schema.org/EventScheduled", "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode", "typicalAgeRange": "21-", "image": "https://animal.la/og-image-la.png", "performer": [ { "@type": "Person", "name": "Rivussy" } ], "subEvent": [ { "@type": "MusicEvent", "name": "Rivussy", "startDate": "2026-11-11T20:00:00-08:00", "endDate": "2026-11-12T00:00:00-08:00", "performer": { "@type": "Person", "name": "Rivussy" } } ], "organizer": { "@type": "Organization", "name": "ANIMAL", "url": "https://animal.la" }, "location": { "@type": "BarOrPub", "name": "ANIMAL", "alternateName": "Animal LA", "url": "https://animal.la", "image": "https://animal.la/og-image-la.png", "description": "A Queer Bar Prowls into LA's Arts District. 428 S. Hewitt Street, Los Angeles 90013 | 2PM - 2AM Sat & Sun | 4PM - 2AM Tue - Fri", "sameAs": [ "https://www.instagram.com/animal.losangeles" ], "geo": { "@type": "GeoCoordinates", "latitude": 34.0428244, "longitude": -118.2349209 }, "address": { "@type": "PostalAddress", "streetAddress": "428 S. Hewitt St", "addressLocality": "Los Angeles", "addressRegion": "CA", "postalCode": "90013", "addressCountry": "US" }, "hasMap": "https://www.google.com/maps/place/ANIMAL/@34.0428288,-118.2374958,17z/data=!3m1!4b1!4m6!3m5!1s0x80c2c7daa5f04e73:0xf87e2e17d3d3537b!8m2!3d34.0428244!4d-118.2349209!16s%2Fg%2F11z65f_r4v!5m1!1e2", "email": "info@animal.la" } } ] }

Times

Every time is Animal LA’s own local time with its zone offset, such as 2026-11-05T19:00:00-05:00 for 7PM in Brooklyn. The offset says which zone it is; it is not a conversion to UTC. Nights that run past midnight end on the next date.

Caching

The data refreshes every 5 minutes, so please don’t poll more often. Each response is the full snapshot of the next 30 nights: if an event disappears, it was cancelled.

Errors

503 means the schedule is briefly unavailable. Retry later; we never send an empty list when something is wrong. 400 means an unknown format.

Calendar

Subscribe in Google Calendar, or in Apple Calendar and Outlook with webcal://animal.la/calendar.ics. Apple Calendar refreshes as often as you set it; Google Calendar refreshes subscribed feeds on its own schedule, often every few hours.

Using the data

Please credit and link back to animal.la, don’t rewrite lineups, send a descriptive User-Agent, and don’t read our backend directly.

Contact

Questions, or want to be listed as a partner? Email info@animal.la.