{"openapi":"3.1.1","info":{"title":"Tessera public event search","version":"1.0.0","description":"Read-only access to upcoming, published, publicly listed public-access Tessera events. No authentication. Search filters operate on a snapshot of up to 200 events, cached for 60 seconds. Original descriptions may be in Russian or another organizer language. This API is available for integrations; it is not automatic registration in any AI product."},"servers":[{"url":"https://tesra.ru"}],"security":[],"paths":{"/events-feed.json":{"get":{"operationId":"searchTesseraEvents","summary":"Find upcoming public Tessera events / Найти события Tessera","parameters":[{"name":"q","in":"query","description":"Case-insensitive substring in title, description, place or tags. No semantic translation.","schema":{"type":"string","maxLength":120}},{"name":"city","in":"query","description":"Case-insensitive substring in the published venue address.","schema":{"type":"string","maxLength":120}},{"name":"starts_after","in":"query","description":"Inclusive UTC date (YYYY-MM-DD) or ISO 8601 datetime with timezone. Date-only values mean midnight UTC.","schema":{"type":"string"}},{"name":"starts_before","in":"query","description":"Inclusive UTC date (YYYY-MM-DD) or ISO 8601 datetime with timezone. Date-only values mean midnight UTC.","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","minimum":1,"maximum":200,"default":200}}],"responses":{"200":{"description":"Current matching public events and source URLs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EventList"}}}},"400":{"description":"Invalid search parameters"},"503":{"description":"Source temporarily unavailable; retry later"}}}},"/events.txt":{"get":{"operationId":"getTesseraEventsText","summary":"Read the current public event snapshot as plain text","responses":{"200":{"description":"UTF-8 text","content":{"text/plain":{"schema":{"type":"string"}}}},"503":{"description":"Source unavailable"}}}},"/events.rss":{"get":{"operationId":"getTesseraEventsRss","summary":"Read the RSS 2.0 event feed","responses":{"200":{"description":"RSS XML","content":{"application/rss+xml":{"schema":{"type":"string"}}}},"503":{"description":"Source unavailable"}}}}},"components":{"schemas":{"Event":{"type":"object","required":["@type","name","url","startDate"],"properties":{"@context":{"type":"string"},"@type":{"type":"string","const":"Event"},"name":{"type":"string"},"url":{"type":"string","format":"uri"},"startDate":{"type":"string","format":"date-time"},"endDate":{"type":"string","format":"date-time"},"description":{"type":"string"},"location":{"type":"object"},"image":{"type":"array","items":{"type":"string","format":"uri"}},"textPage":{"type":"string","format":"uri"},"englishTextPage":{"type":"string","format":"uri"}}},"EventList":{"type":"object","required":["events","checkedAt","snapshotLimit"],"properties":{"name":{"type":"string"},"url":{"type":"string","format":"uri"},"checkedAt":{"type":"string","format":"date-time"},"snapshotLimit":{"type":"integer","const":200},"matchingCount":{"type":"integer"},"returnedCount":{"type":"integer"},"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}}}}}}