# Bitcall — LLM Guide (no hardcoded rates) Base: https://bitcall.io ## Products (public pages) ### VoIP - Entry: / - Countries index (supported countries + preview rates): /countries - Rates per country (dynamic): /countries/call-{country-name} ### OTP - Entry (features, FAQ, supported countries & services): /otp ### Webphone - Entry (features + tiers): /webphone ### eSIM - Entry: /esim - Global plans: /esim/global - Plans by country (dynamic): /esim/{country-name} - Plans by region (dynamic): /esim/{region-name} ### Reseller - Entry: /reseller ## Canonical URL patterns - /countries/call-{country-name} - /esim/global - /esim/{country-name} - /esim/{region-name} ## Locale / i18n rules - Canonical EN is unprefixed (ex: /countries, /esim). - Other languages are prefixed: /fr/..., /ar/..., /de/..., /es/..., /tr/..., /ru/... ## Pricing rules (critical) - VoIP rates are dynamic (server API, refresh ~3600s). Do not quote prices without checking the live page. - eSIM plans/prices are dynamic (server API, refresh ~3600s). Do not hardcode plan tables. - OTP “starting from” pricing is dynamic (server API, refresh ~3600s). ## Do / Don't (LLM usage) - Do: link to canonical pages listed above. - Do: summarize features and coverage (countries count), without giving live prices. - Don’t: invent prices or plan tables. - Don’t: use query params or anchors as distinct URLs. ## Markdown mirrors (stable content) - /esim.md - /otp.md - /webphone.md - /countries.md - /reseller.md ## Context bundles - /llms-ctx.txt (structured JSON, short) - /llms-ctx-full.txt (structured JSON, extended)