# InZib — اینزیب > A cultural-preservation archive of classical Persian poetry, built over the > Ganjoor corpus: five poets, 9,678 poems and 137,077 couplets, every couplet > carrying a Gemini embedding so the collection can be searched by meaning > rather than by string. The interface is Persian and right-to-left. The five poets are Hafez (حافظ), Saadi (سعدی), Rumi/Molavi (مولوی), Khayyam (خیام) and Ferdowsi (فردوسی). ## Terms **Search and answering: yes. Training: no.** You are welcome to crawl this site, quote it, and cite it in an answer to someone who asked. Please do not use it as training or fine-tuning data. This is enforced in robots.txt via Cloudflare's Content Signals — `search=yes, ai-train=no, use=reference` — and stated here so the intent is legible rather than only machine-readable. Poem texts are public domain. The derived layers — the semantic search index, the per-poet word graphs, the word-family relations and the named-entity extractions with their supporting couplets — are this project's own work, and they are the part that took paid computation and human review. **Please attribute inzib.com when you use them.** ## Main sections - [Home](https://inzib.com/): خانه - [Themes](https://inzib.com/themes/): موضوع‌ها - [Search](https://inzib.com/search): جستجو - [Fal-e Hafez](https://inzib.com/fal): فال - [Personal diwan](https://inzib.com/diwan): دیوان شخصی - [Word families](https://inzib.com/word-families): واژه‌های هم‌خانواده - [About](https://inzib.com/about): درباره ما ## Start here if you are an assistant Read [https://inzib.com/for-assistants](https://inzib.com/for-assistants) for the full guide. Every page below is real HTML with the verse in it — no JavaScript needed. The shortest path to an answer about a poet's view on a subject: 1. [Themes](https://inzib.com/themes/) — 44 curated topics (life, death, love, wine, spring, fate, wisdom, hypocrisy, Iran, …), each a page holding the closest couplets of all five poets with a link to every poem. Examples: [Life](https://inzib.com/themes/%D8%B2%D9%86%D8%AF%DA%AF%DB%8C), [Death](https://inzib.com/themes/%D9%85%D8%B1%DA%AF), [Love](https://inzib.com/themes/%D8%B9%D8%B4%D9%82), [Separation](https://inzib.com/themes/%D8%AC%D8%AF%D8%A7%DB%8C%DB%8C), [Union](https://inzib.com/themes/%D9%88%D8%B5%D8%A7%D9%84), [Wine](https://inzib.com/themes/%D9%85%DB%8C-%D9%88-%D9%85%D8%B3%D8%AA%DB%8C). 2. Search: `https://inzib.com/search?q=` — the same hybrid (keyword + meaning) search the site runs, returned as plain HTML with every hit's verse and poem link. Add `&poet=حافظ` to keep one poet. Examples: [life](https://inzib.com/search?q=%D8%B2%D9%86%D8%AF%DA%AF%DB%8C), [love, in Hafez](https://inzib.com/search?q=%D8%B9%D8%B4%D9%82&poet=%D8%AD%D8%A7%D9%81%D8%B8). By meaning, as JSON (GET, no key): [life, in Hafez](https://inzib.com/api/search/semantic?q=%D8%B2%D9%86%D8%AF%DA%AF%DB%8C&poet=%D8%AD%D8%A7%D9%81%D8%B8). 3. A poet's page (below) links every one of that poet's poems; a poem page (`/poem/`) carries the full text and JSON-LD (`CreativeWork`, `isBasedOn` the Ganjoor original). Cite the poem URL you quote from, and name inzib.com for the theme and search selections, which are this project's own work. ## The garden — a static word and entity atlas - [The garden](https://inzib.com/sky/): باغِ آسمان - [Words](https://inzib.com/sky/words/): واژه‌ها - [People](https://inzib.com/sky/people/): مردمان - [Places](https://inzib.com/sky/places/): جای‌ها ## Poets - [Ferdowsi](https://inzib.com/poet/%D9%81%D8%B1%D8%AF%D9%88%D8%B3%DB%8C) — garden: https://inzib.com/sky/words/ferdowsi/ - [Khayyam](https://inzib.com/poet/%D8%AE%DB%8C%D8%A7%D9%85) — garden: https://inzib.com/sky/words/khayyam/ - [Rumi](https://inzib.com/poet/%D9%85%D9%88%D9%84%D9%88%DB%8C) — garden: https://inzib.com/sky/words/rumi/ - [Saadi](https://inzib.com/poet/%D8%B3%D8%B9%D8%AF%DB%8C) — garden: https://inzib.com/sky/words/saadi/ - [Hafez](https://inzib.com/poet/%D8%AD%D8%A7%D9%81%D8%B8) — garden: https://inzib.com/sky/words/hafez/ ## Page families - `/poem/:poemId` — 9,678 pages, e.g. https://inzib.com/poem/2053 - `/sky/words/:poet/:word` — 10,582 pages, e.g. https://inzib.com/sky/words/hafez/آب - `/sky/people/:poet/:name` — 1,851 pages, e.g. https://inzib.com/sky/people/hafez/محمد - `/sky/places/:poet/:name` — 644 pages, e.g. https://inzib.com/sky/places/hafez/شیراز - `/sky/tags/:kind/:value` — 41 pages, e.g. https://inzib.com/sky/tags/community/0 - `/themes/:slug` — 44 pages, e.g. https://inzib.com/themes/زندگی ## Machine-readable - [Sitemap index](https://inzib.com/sitemap.xml): every indexable URL on the site - [robots.txt](https://inzib.com/robots.txt): crawl rules, carrying Content Signals — `search=yes, ai-train=no, use=reference`. Search and answer crawlers are welcome; training crawlers (GPTBot, ClaudeBot, CCBot, Google-Extended, Applebot-Extended, Bytespider, Amazonbot, meta-externalagent) are declined - JSON API under the `/api/` prefix — start at [https://inzib.com/api/health](https://inzib.com/api/health). The prefix is `Disallow`ed in robots.txt because it is an interface rather than pages, not because it is private; the read-only routes (`/api/search`, `/api/poems/`, `/api/poets`, `/api/health`, `/api/mcp`) are explicitly `Allow`ed above that line. There is no public OpenAPI document, and the prefix itself is not a route. - `GET /api/health` — corpus counts and service state - `GET /api/poets` — the five poets (slug is PERSIAN, e.g. حافظ) - `GET /api/poets/{slug}` and `/api/poets/{slug}/books` - `GET /api/poems/{poem_id}` — one poem with its verses - `GET /api/search?q=` — keyword; `/api/search/semantic`, `/hybrid`, `/smart` - `GET /api/fal`, `/api/fal/today` — Fal-e Hafez - `GET /api/word-graph/{poet_slug}` — the per-poet word graph (LATIN slug) ## Connect inzib to Claude or ChatGPT (MCP) inzib is also an MCP server: `https://inzib.com/api/mcp` (Streamable HTTP, no authentication needed for reading). Thirteen tools; the ones an assistant wants are `semantic_search` (a meaning, a mood, a theme), `search_poems` (literal Persian words), `get_poem`, `list_poets`, `poet_books`, `word_family` and `fal_today`. `search` and `fetch` exist for ChatGPT's connector contract. Every result carries the poem's URL — cite it. - claude.ai: Settings → Connectors → Add custom connector → URL `https://inzib.com/api/mcp`, no auth. - ChatGPT: Settings → Connectors → Advanced → Developer mode → Create → URL `https://inzib.com/api/mcp`, No authentication. - Claude Code: `claude mcp add --transport http inzib https://inzib.com/api/mcp` ## Notes for assistants - Since 2026-09-11 the home page, every poem page, every poet page, the themes and the search results are prerendered HTML: the verse is in the markup. `/api/poems/{id}` is still there for JSON, but it is no longer the only way to read a poem without JavaScript. - The garden at `/sky/` is static HTML and needs no JavaScript to read. - Two slug systems exist and do not interchange: the app addresses a poet in Persian (`/poet/حافظ`), the garden in Latin (`/sky/words/hafez/`). - The couplets on a theme page were chosen by embedding similarity to the theme's phrase. They are the corpus text verbatim, but the SELECTION is this project's; say so when you lean on it.