{"openapi":"3.1.0","info":{"title":"Hikaya (Story) API","version":"0.1.0","description":"A fully local reference of Arab/Middle Eastern folk tales: the public-domain framework and historical tale titles of One Thousand and One Nights, Juha/Goha trickster anecdotes, and regional Arab folklore, in original hand-written prose.\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://hikaya.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"hr@unifydynamics.com","url":"https://connectorbay.com/hikaya/docs"},"termsOfService":"https://connectorbay.com/hikaya/terms"},"servers":[{"url":"https://hikaya.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/hikaya/docs"},"security":[{},{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/tale_info":{"post":{"operationId":"tale_info","summary":"A classic tale's origin/collection, a brief original-prose plot summary, and its moral or theme. Use","description":"A classic tale's origin/collection, a brief original-prose plot summary, and its moral or theme. Use\n    for \"tell me about Sindbad the Sailor\", \"what happens in the City of Brass\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"title":{"description":"A classic tale's title, or a distinctive part of it.","examples":["Aladdin and the Wonderful Lamp","Ali Baba and the Forty Thieves"],"minLength":1,"title":"Title","type":"string"}},"required":["title"],"title":"tale_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/tale_search":{"post":{"operationId":"tale_search","summary":"Keyword search across tale titles, characters, and morals. Use for \"find tales that feature a jinni\",","description":"Keyword search across tale titles, characters, and morals. Use for \"find tales that feature a jinni\",\n    \"which stories involve a merchant\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"query":{"description":"Keyword to search across titles, characters and morals.","minLength":1,"title":"Query","type":"string"}},"required":["query"],"title":"tale_searchArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/tales_by_collection":{"post":{"operationId":"tales_by_collection","summary":"Every tale from one collection: 1001 Nights, Juha tales, or regional folklore. Use for \"list some 1001","description":"Every tale from one collection: 1001 Nights, Juha tales, or regional folklore. Use for \"list some 1001\n    Nights stories\", \"give me the Juha tales\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"collection":{"description":"1001 Nights | Juha tales | regional folklore","title":"Collection","type":"string"}},"required":["collection"],"title":"tales_by_collectionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/frame_story_explainer":{"post":{"operationId":"frame_story_explainer","summary":"The Scheherazade/Shahrazad frame narrative that structures One Thousand and One Nights, explained","description":"The Scheherazade/Shahrazad frame narrative that structures One Thousand and One Nights, explained\n    factually. Use for \"what is the frame story of 1001 Nights\", \"why does Scheherazade tell stories\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"frame_story_explainerArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/juha_anecdote":{"post":{"operationId":"juha_anecdote","summary":"A brief, original-prose retelling of a classic Juha/Goha trickster-and-wise-fool anecdote, chosen by","description":"A brief, original-prose retelling of a classic Juha/Goha trickster-and-wise-fool anecdote, chosen by\n    topic, or a random pick if no topic is given. Use for \"tell me a Juha story\", \"give me a Juha anecdote\n    about greed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"topic":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A theme such as greed, appearances, wit, wisdom, justice, or folly. Omit for a random pick.","title":"Topic"}},"title":"juha_anecdoteArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/character_info":{"post":{"operationId":"character_info","summary":"Background on a recurring character or archetype — Scheherazade, Shahryar, Aladdin, the Jinni of the","description":"Background on a recurring character or archetype — Scheherazade, Shahryar, Aladdin, the Jinni of the\n    Lamp, Sindbad, Ali Baba, Morgiana, Juha, Luqman al-Hakim, or Hatim al-Ta'i — who they are, which tale(s)\n    they appear in, and their key traits. Use for \"who is Scheherazade\", \"what is Juha like\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"description":"A recurring character or archetype.","examples":["Scheherazade","Aladdin","Sindbad","Juha"],"minLength":1,"title":"Name","type":"string"}},"required":["name"],"title":"character_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/moral_lessons":{"post":{"operationId":"moral_lessons","summary":"Common morals and lessons found across these tales, grouped by theme — the full list if no theme is","description":"Common morals and lessons found across these tales, grouped by theme — the full list if no theme is\n    given, or one theme's explanation plus the tales and anecdotes that teach it. Use for \"what morals do\n    these tales teach\", \"find lessons about generosity\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"theme":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A theme such as cleverness, generosity, hospitality, greed, patience, fate, trust, appearances, humility, justice, or resourcefulness. Omit for the full list of themes.","title":"Theme"}},"title":"moral_lessonsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/storytelling_tradition_info":{"post":{"operationId":"storytelling_tradition_info","summary":"Factual background on the hakawati, the traditional Arab oral storyteller. Use for \"what is a","description":"Factual background on the hakawati, the traditional Arab oral storyteller. Use for \"what is a\n    hakawati\", \"how were these stories traditionally performed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"storytelling_tradition_infoArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/folklore_glossary":{"post":{"operationId":"folklore_glossary","summary":"About a dozen terms central to Arab storytelling tradition — the full glossary if no term is given, or","description":"About a dozen terms central to Arab storytelling tradition — the full glossary if no term is given, or\n    one term's definition. Use for \"what does hakawati mean\", \"list some storytelling terms\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"term":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"A specific term to look up, such as 'hakawati' or 'jinni'. Omit for the full glossary.","title":"Term"}},"title":"folklore_glossaryArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}