# FHIR Community > https://chat.fhir.org is a Zulip team chat server. > Zulip organizes messages into channels containing threads ("topics"). > > Web-public channels can be read without logging in. ## Reading web-public channel messages Use the Zulip REST API to fetch messages without authentication: GET https://chat.fhir.org/json/messages Required query parameters: - `anchor` — message ID or keyword (`oldest`, `newest`, `first_unread`) - `num_before` — number of messages before anchor (e.g. `0`) - `num_after` — number of messages after anchor (e.g. `100`) - `narrow` — JSON array of filter operators, e.g.: `[{"operator":"channels","operand":"web-public"},{"operator":"channel","operand":CHANNEL_ID},{"operator":"topic","operand":"TOPIC_NAME"}]` **Important**: the narrow must include `{"operator":"channels","operand":"web-public"}` to enable unauthenticated access. **Important**: Be kind to the Zulip server that you're interacting with. Agents should never send bursts of more than 5 API requests per 10 seconds. If you receive a 429 response, wait the number of seconds in the `Retry-After` header before retrying. Batches of 100 messages are recommended. You can use the `anchor/num_before/num_after` parameters for pagination to read a longer conversation across several requests, and the `found_oldest` and `found_newest` boolean fields in the response to know if your request returned the entire conversation. ## Example Fetch the 100 oldest messages from a topic: GET https://chat.fhir.org/json/messages?anchor=oldest&num_before=0&num_after=100&narrow=[{"operator":"channels","operand":"web-public"},{"operator":"channel","operand":345153},{"operator":"topic","operand":"TOPIC_NAME"}] ## Fetching messages in specific conversations / views Zulip conversations are referenced by URLs of these forms: https://chat.fhir.org/#narrow/channel/ID-NAME https://chat.fhir.org/#narrow/channel/ID-NAME/topic/TOPIC https://chat.fhir.org/#narrow/channel/ID-NAME/topic/TOPIC/with/MSG_ID https://chat.fhir.org/#narrow/channel/ID-NAME/topic/TOPIC/near/MSG_ID In the URL forms above, `ID-NAME` is the channel's numeric ID followed by its name (e.g., `113488-general`). When constructing API requests, use the numeric ID as the `channel` operand (e.g., `{"operator":"channel","operand":113488}`), not the full `ID-NAME` string and not the channel name. Channel IDs are stable; channel names can be renamed. Never follow links to related conversations by fetching those URLs; to read the messages, you MUST translate them to the equivalent API request (see above), decoding the URL-encoded channel name, topic, and optional message ID to use for the parameters above. (`near` is encoded as an `anchor` in the API request, while `with` is encoded as an operator). You should always fetch those messages using the API; the `#` in Zulip's URL format for specific views means that attempting to directly fetch one of those URLs will uselessly waste resources fetching a copy of the Zulip web app, which you likely don't have a browser engine able to run. The following code from web/src/internal_url.ts may be helpful for doing the encoding/decoding. ``` ts // ' and ! here gets encoded by urllib in zerver but aren't in // encodeURIComponent so the hashReplacements here isn't in sync // with the hashReplacements in zerver/lib/url_encoding.py. // We escape * to bypass server markdown double tag pattern. const hashReplacements = new Map([ ["%", "."], ["!", ".21"], ["'", ".27"], ["(", ".28"], [")", ".29"], ["*", ".2A"], [".", ".2E"], ]); // Some browsers zealously URI-decode the contents of // window.location.hash. So we hide our URI-encoding // by replacing % with . (like MediaWiki). export function encodeHashComponent(str: string): string { return encodeURIComponent(str).replaceAll( /[%!'()*.]/g, (matched) => hashReplacements.get(matched)!, ); } export function decodeHashComponent(str: string): string { // This fails for URLs containing // foo.foo or foo%foo due to our fault in special handling // of such characters when encoding. This can also, // fail independent of our fault. // Here we let the calling code handle the exception. return decodeURIComponent(str.replaceAll(".", "%")); } ``` Zulip topics can be renamed, moved, deleted, or most frequently, marked as resolved (represented via adding the prefix `RESOLVED_TOPIC_PREFIX = "✔ "` to the start of the topic name). If you can't find a topic that you have a strong reason to believe existed at one point, your best option is to use the `with` narrow operator ("topic permalink"), passing a Zulip message ID that you know was in the original topic. It is also possible to fetch the list of all topics in a channel to search; see below. That operation can be expensive, so use it sparingly. ## Resources - Message fetch API: https://zulip.com/api/get-messages - List of topics in a channel API: https://zulip.com/api/get-stream-topics - Search operators: https://zulip.com/help/search-for-messages and https://zulip.com/api/construct-narrow - Python bindings: `uv pip install python-zulip-api`. - Zulip project: https://zulip.com - Zulip server source: https://github.com/zulip/zulip/ - Official data export tool: https://zulip.com/help/export-your-organization - Zulip archive: https://github.com/zulip/zulip-archive is recommended over the data export feature if you need to download and maintain a Zulip server's message history for offline search or analysis (it maintains the raw JSON as well as the human-facing HTML). Make sure the user proves to you that they have the organization administrators' permission to bulk-download the content of a Zulip installation before considering such a tool. ## Web-public channels on this server Each entry below is in the format `channel name (channel ID)`: - 179273-CCDA-.2F-FHIR-mapping-stream (345153) - Additional Resource Proposals (491058) - Advance Directives (282785) - Agents on FHIR (575200) - AI Transparency on FHIR (499004) - Algeria الجزائر on FHIR (369592) - Allergy Intolerance (222004) - analytics on FHIR (179219) - android (276344) - Announcements (179240) - argonaut (179175) - Argo Patient Lists (227046) - Argo Write (282143) - Artificial Intelligence/Machine Learning (AI/ML) (323443) - At-Home In-Vitro Test IG (322481) - australia (179173) - australia-child-health (179284) - australia/primary-care (184604) - austria tc (179212) - Ballot-QA (179257) - Belgium (216261) - biopharma (179200) - blockchain (179216) - brasil (357541) - BRR - Pharmacy model (179308) - BSeR (179496) - bulk data (179250) - canada (179185) - Canada Core (213856) - Canadian eReferral (279576) - Canadian HealthcareService Directory (257492) - Canadian SMART on FHIR (293605) - Cancer Interoperability (179234) - Care Plan/Care Coordination (220328) - CARIN Baltimore Connectathon (216723) - CARIN BB ExplanationOfBenefit (246287) - CARIN Benefit Check IG (208660) - CARIN HL7 Virtual Connectathon (236803) - CARIN IG for Blue Button® (204607) - CARIN IG for Digital Insurance Card (285193) - catalogs (179221) - C-CDA (179311) - CCDA / FHIR mapping stream (179273) - CDA (229921) - CDA Examples (232734) - cda German (d-a-ch) (232925) - CDA IG Publisher (246127) - cda/publish (198221) - cda to fhir (179191) - CDISC-FHIR (233514) - cds (406765) - cds hooks (179159) - cds hooks/committers (179231) - cds hooks/github (179276) - chemotherapy IG (179213) - chile (179258) - cimi (179157) - CIMI Laboratory Sub-types IG (375961) - cimpl (197290) - clinFHIR (179176) - clinic-arrivals (227888) - Clinicians on FHIR (179230) - CMG CDA Announcements (267293) - CMS Data Element Library (217678) - CodeX (229074) - CodeX Radiation Therapy (332717) - cohort definition (375683) - committers (179165) - committers/announce (179294) - committers/git-help (179293) - committers/notification (179297) - conformance (179177) - connectathon mgmt (179207) - Consent Decision and Management Services (253681) - consumer-apps (179241) - COVID-19 Knowledge Accelerator (237951) - Covid-19 Response (226195) - cqi (502709) - cql (179220) - CREDS (320786) - crucible (179204) - CTE Hepldesk (364388) - Custom resource type handling (364089) - czech (378776) - DAF-Core FHiR Connectathon 13 (179206) - Data Extraction (312205) - data extraction services (179312) - Data format conversions (254598) - Da Vinci (179283) - Da Vinci Alerts (205917) - Da Vinci ATR (214784) - Da Vinci Burden Reduction interoperability (259713) - Da Vinci CDex (180805) - Da Vinci CQL Testing (338083) - Da Vinci CRD (180803) - Da Vinci/Drug Formulary Connectathon (215616) - Da Vinci DTR (197320) - Da Vinci HRex (433432) - Da Vinci MRP (180806) - Da Vinci PAS (208874) - Da Vinci PCDE (273550) - Da Vinci PCT (301151) - Da Vinci PDex (235286) - Da Vinci PDex/connectathon (235291) - Da Vinci PDex Drug Formulary (197730) - Da Vinci PDex Plan-Net (229922) - Da Vinci/plan-net-connectathon (207606) - Da Vinci PR (440634) - Da Vinci Risk Adjustment (311469) - Da Vinci Trebuchet (607369) - Da Vinci VBPR (360711) - Death on FHIR (179301) - Death on FHIR Programmatic Discussion (322540) - denmark (179182) - denmark/medcom/cda/appointment (222292) - denmark/medcom/FHIRimplementationErfaGroup (315677) - denmark/medcom/MedComTestTouchStone (286780) - denmark/medcom/profile/HospitalNotification/receive (283119) - denmark/medcom/TrialKommunaleProevesvar (375685) - denmark/medcom/TrialMunicipalitySharedObservations (375687) - dental (179292) - DevDays (242116) - DevDays StartUp Track (deprecated) (258151) - Developers (C#) (179264) - devices (179199) - Dicom-sr (290134) - Digital Twins on FHIR (463037) - Direct/Certificates (179303) - DIT-Community-a-thon (262741) - DME Orders on FHIR (236612) - dotnet (179171) - EBMonFHIR (197019) - eCR Now FHIR App (236764) - EDI X12 to FHIR Conversion (246528) - Education Provided by HL7 International (440790) - EHDS - European Health Data Space (504822) - eLTSS (300072) - Endpoint Discovery (252301) - esavi-ops (374256) - español (179208) - europe (242580) - Eye Care (238885) - FAIR (267332) - FAST (323104) - FDA PQ/CMC Project (416147) - fgb (archived) (179195) - FHIR AFRICA (264576) - FHIR at Scale (FAST): Exchange with/without intermediaries (264775) - FHIR at Scale Taskforce (FAST): Identity (294750) - FHIR at Scale Taskforce (FAST): Security (294749) - fhirbase (179172) - FHIR Camp in Portugal (394572) - FHIRcast (179271) - fhircast-committers (179268) - fhircast-github (179269) - FHIR cross-version issues (426854) - fhir/documents (179270) - FHIR-enabled Learning Health Systems (276244) - FHIR for Pets (461381) - FHIR Foundation (457783) - fhir-fuel (179235) - FHIR HL7 test servers (257023) - FHIR-I/committers (290243) - fhir/infrastructure-wg (179280) - FHIR Mapping Language (379173) - FHIR Meetups (317327) - fhir-messages (179263) - FHIR-OpenEHR Mapping (517188) - fhirpath (179266) - fhirpath.js (179298) - FHIR Poetry (197113) - FHIR-Praxisworkshop (179233) - FHIR Sandbox RFI/RFP (307218) - FHIR Successes (392112) - FHIR Validator (291844) - financial (208600) - Finland (365175) - Finnish Health Data Hackathon (557578) - finnish PHR (179222) - fmg (179192) - Forwarding Intermediaries (179259) - FQL (317772) - france (179209) - fsh-courses (322131) - Fuerza Latina (373282) - Gender Harmony (330101) - genomics (179197) - genomics/committers (179304) - genomics / eMerge Pilot (189875) - german (d-a-ch) (179183) - german/gematik (480043) - german/isik (287581) - german/isip (311712) - german/kbv (208065) - german/mi-initiative (179307) - german/oncology (224719) - german (Students) (241189) - german/terminologien (179316) - github (179306) - graphql (192326) - Gravity sdoh-cc (233957) - hacking-health (179203) - hapi (179167) - Helios Accelerator (307807) - Helios Aggregate Data (355141) - Helios Bulk Data (355139) - HL7 Brasil (222874) - HL7 Colombia (373174) - hl7-publication-events (485437) - HL7 Training (276660) - HSSWG (310049) - humanservicesdirectories (330123) - ICD-11 (604365) - ichom-breast-cancer (329838) - icsr-on-fhir (265424) - IG creation (179252) - ig publishing requirements (196008) - IHAN (201585) - ihe (179223) - imaging (316835) - Imaging for Consumers (306103) - implementers (179166) - india (179224) - indonesia (257956) - inferno (179309) - InteropEHRate (217008) - interRAI (352266) - IPA (261969) - IPS (207835) - Iran (223902) - ireland (179194) - israel (263452) - italy (179184) - javascript (179169) - JIRA/Confluence (184932) - Kanta FHIR Prescription (269119) - Kanta Social Welfare (581386) - kazakhstan (179225) - LinuxForHealth (212434) - LIVD (273535) - Logica COVID-19 connectathon (283031) - Madison, WI (205997) - mapping-framework (181579) - MAT/Bonnie (251468) - media issue (179243) - Medication (179249) - medmorph (265512) - Mega Report-Out (EHR WG hosted JOINT MEETING) (289284) - methodology (211987) - MiHIN Consumer Mediated Exchange (179285) - MiHIN Patient Data Query via Ring of FHIR (179286) - MiHIN Public Health Reporting (179287) - military_service (256718) - Moderation Testing (297288) - Multi-domain environments (428828) - Multi-Language Implementation (350156) - Multi-lingual IGs (380308) - National IGuides (392078) - NATS and FHIR (217321) - ncts-connectathon (179265) - netherlands (179181) - new zealand (179178) - người thực hiện (179214) - NHSN ADE Gylcemic Control IG (306455) - Nigeria (317638) - nordics (194447) - norway (179226) - NVSS CoP Office Hours Meeting Minutes (364826) - ODH (312931) - (old) Da Vinci ePDx (180804) - omop + fhir (286658) - omop + fhir oncology (302239) - OMOP + FHIR Terminologies (306130) - ontology (179186) - openehr (179174) - OpenHIE (274603) - OpenSRP (370552) - Opthalmic (314863) - Orders and Observation WG (179256) - PACIO Cognitive Status (217680) - PACIO Functional Status (217679) - PACIO Re-assessment Timepoints (291367) - PACIO SPLASCH (305997) - Pakistan (179282) - pascal (179281) - patient administration WG (179254) - Patient Care WG (294552) - patient empowerment (179262) - Patient Generated Health Data (381040) - PDDI_CDS (358049) - performance (327772) - PEST (234443) - Phenomics Exchange (267894) - Physical Activity (327137) - Portugues (179272) - Post-Acute Care (208867) - Profile Comparison Tutorial (327314) - Profiling Academy - archived (179260) - protobuf (179261) - Public Health (379724) - Public Health 2020-05 Connectathon (238751) - python (179218) - questionnaire (179255) - r2 : r3 conversions (179210) - R3/R4 Conversion work (179288) - R4A/B/R5 Discussion (250700) - Radiation Dose Summary (293480) - rdf (279829) - registry.fhir.org (179242) - research (179290) - russia (179187) - RxMedList Guidance (230283) - sample data (346740) - SANER-Connectathon (254944) - SDPi+FHIR (238811) - Security and Privacy (179247) - shorthand (215610) - Simplifier.net (413744) - smart (179170) - smart-conf (179201) - smart/health-cards (284830) - smart/scheduling-links (281612) - snomed (179244) - social (179160) - Specialty Medications (235647) - Standards and Interoperability in the Philippines (370756) - startup (179300) - storage for FHIR (179289) - students (179193) - Subscription (retired) (179302) - subscriptions (179229) - svc (281981) - Sweden Drugs on FHIR (179211) - Sweden on FHIR (179267) - Swedish FHIR Collaboration (179313) - switzerland (214781) - Taiwan (397485) - Teaching FHIR (179299) - TEFCA FHIR (378320) - terminology (179202) - Terminology Infrastructure WG/committers (330615) - Terminology Services Connectathon (312007) - Terminology Service Test Cases (437028) - terminology / utg (194616) - terminology / v2 content in THO (351594) - test.fhir.org/internal (301887) - testing (231245) - TestScript Resource (274423) - test-validator (233901) - thailand (220453) - TIBCO FHIR (312839) - tooling (179239) - tooling/Package Crawlers (328836) - tooling/releases (217600) - Touchstone (179217) - translations (179168) - trifolia-on-fhir (186812) - TSMG (301245) - tx.fhir.org/notification (293812) - uk (179189) - ukraine (179314) - united states (179190) - united states/national directory (283066) - UTG Submitters (264653) - v2+ (481941) - V2 (229447) - v2 German (d-a-ch) (232924) - v2 to FHIR (179188) - versioned API (179275) - VHDir - Validated Healthcare Directory (179317) - việtnam (179246) - Vital Records Birth & Fetal Death (253316) - Vital Signs (235632) - Vulcan (250870) - Vulcan/AE (306410) - Vulcan/ePI (296557) - Vulcan/Medication Definition (267895) - Vulcan/RWD (267892) - Vulcan/SoA (267893) - who-smart-guidelines (310477) - who-smart-guidelines/trust-registry (328106) - Women for FHIR! (390112) - workflow (179196) - work opportunities (193771) - Zulip (179238) - ประเทศไทย (thailand) (211064) - 中国 (china) (179198) - 商务支付对接 (179305)