This is the data for cons.fyi. It was generated at .
If there is an issue with data accuracy, you would like a convention listed, or you would like to delist your convention, you may file an issue here.
In order for a convention to be listed by data.cons.fyi, it must fulfill the following requirements:
This policy is subject to change without notice.
Attribution is not required but appreciated. This helps us keep our data up to date, which in turn helps everyone else!
Each convention series is modeled by a Series record in github.com/consfyi/data, one record per .json file. The name of the file is the unique ID of the convention series.
/// A collection of events describing a convention series. interface Series { /// The human-readable name for the convention series. name: string; /// All instances of the convention series. events: Event[]; } /// A specific instance of a convention. interface Event { /// Unique ID across all events, including events in other series. /// /// This ID should also remain stable. /// /// It should include the convention name, e.g. `rainfurrest-2016`. id: string; /// The human-readable name of the convention instance, e.g. /// "RainFurrest 2016". /// /// This should be the well known name of the event, even if the locale the /// event is in has a different localized name. For example "Infurnity" should /// be preferred over "獸無限". However, "你好兽聚" is preferred over /// "Hi Furry" as the Chinese name is more well known. /// /// In general: /// - zh-CN, ru: Prefer the local name, add an en translation. /// - zh-TW, zh-HK: Prefer the English name, add a zh-Hant translation. /// - ja: Can go either way, refer to the event's marketing material. name: string; /// Link to the convention website. url: string; /// The start date of the convention instance. /// /// Should be in ISO 8601 yyyy-MM-dd format. startDate: string; /// The end date of the convention instance, inclusive. /// /// Should be in ISO 8601 yyyy-MM-dd format. endDate: string; /// The human-readable name of the venue. /// /// This should be in the locale of the event. venue: string; /// The human-readable address of the venue, if it is a physical venue. /// /// The granularity of this is not specified, it does not need to be exact. It /// should include the name of the country. /// /// This should be in the locale of the event. address?: string; /// The locale of the convention as a Unicode locale identifier, e.g. "en-US". locale: string; /// Translations for human-readable fields in different locales. /// /// The translation may contain an entry for the same locale as the event if a /// viewer who has that locale set should see a more locale-specific version /// of the text. /// /// For instance, "Kemono Square" is the well known name for the event, but /// Japanese viewers may prefer to see "ケモノスクエア" instead. translations?: { [locale: string]: { name?: string; venue?: string; address?: string; }; }; /// The GPS coordinates of the venue in WGS-84. /// /// This may be unset for e.g. virtual conventions. /// /// Note some services may return coordinates inside China in GCJ-02. Please /// make sure to convert them first! latLng?: [number, number]; /// If the convention instance has been canceled. canceled?: boolean; /// The number of attendees for historical cons. attendance?: number; /// Sources this data is from. sources?: string[]; }
The following files are materialized at https://data.cons.fyi:
Event records, with 7 days of leading history.Event records.Event record, extracted from Series records.Events.Series record.Series.They will be emitted as materialized records which will contain additional details:
/// A materialized version of Series. interface MaterializedSeries extends Series { /// All instances of the convention. events: MaterializedEvent[]; } /// A materialized version of Event. /// /// If the event's locale is zh-{CN,TW,HK,MO}, or contains zh-{Hans,Hant} /// translations, a conversion for the counterpart writing system will /// automatically be generated. interface MaterializedEvent extends Event { /// The ID of the series this corresponds to. /// /// This ID may not necessarily remain stable and consumers should not store /// it permanently, and should only use it to cross-reference a Series record. seriesId: string; /// The IANA timezone ID. timezone?: string; /// The attendance of the previous event in the series. previousAttendance?: number; }