Raw schema
{
"type": "object",
"properties": {
"action": {
"description": "Quote operation: add, remove, list, or public_list",
"enum": [
"add",
"remove",
"list",
"public_list"
],
"type": "string"
},
"collection": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Collection name/slug identifier. Use 'all' to search across all collections."
},
"quote": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Quote short_code or ID (required for add/remove actions)"
},
"framing": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Curator editorial framing for the quote (used with add action)"
},
"circumstance": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Per-collection circumstance override (used with add action)"
},
"notes": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Private notes for the quote (used with add action)"
},
"about": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Semantic search within collection (e.g., 'courage')"
},
"by": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Originator name (e.g., 'Einstein')"
},
"language": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Language (e.g., 'en', 'French')"
},
"gender": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter by originator gender. Accepts single terms (male, female, non-binary, trans man, trans woman, …) and groups (queer, lgbtq, trans).",
"examples": [
"female",
"trans woman",
"queer"
]
},
"living": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter quotes by originator living status (living/alive vs deceased/historical).",
"enum": [
"living",
"deceased"
],
"examples": [
"living",
"deceased"
]
},
"length": {
"anyOf": [
{
"enum": [
"brief",
"short",
"medium",
"long",
"passage"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter quotes by word-count category: brief (≤15 words), short (≤35 words), medium (36–100 words), long (101–200 words), or passage (201+ words).",
"examples": [
"short",
"brief"
]
},
"structure": {
"anyOf": [
{
"enum": [
"prose",
"verse",
"one-liner"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Structure: prose/verse/one-liner"
},
"max_chars": {
"anyOf": [
{
"maximum": 4000,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"default": null,
"description": "Max chars (280=Twitter, 500=Threads)"
},
"reading_level": {
"anyOf": [
{
"enum": [
"elementary",
"middle_school",
"high_school",
"college"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter quotes by reading level (elementary/middle_school/high_school/college). Supported languages: en, es, fr, de, it, nl, ru, pt. Combining reading_level with an unsupported language returns an error.",
"examples": [
"elementary",
"college"
]
},
"content_rating": {
"anyOf": [
{
"description": "MPAA-style content rating for quotes.\n\nValues match database content_rating field values exactly.\nMember names follow Django TextChoices convention (no underscores).\n\nCompatible with Django TextChoices API:\n- .label: Human-readable label (e.g., \"General Audience\")\n- .choices: List of (value, label) tuples for model fields",
"enum": [
"G",
"PG",
"PG-13",
"R",
"NC-17"
],
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Filter quotes by maximum MPAA-style content rating. Cumulative: requesting 'PG' includes G and PG content.",
"examples": [
"PG",
"PG-13"
]
},
"username": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Username for public_list lookup"
},
"slug": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Collection slug for public_list lookup"
},
"token": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"default": null,
"description": "Share token for public_list lookup"
},
"limit": {
"default": 25,
"description": "Max results (list action)",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"page": {
"default": 1,
"description": "Page number for pagination",
"minimum": 1,
"type": "integer"
},
"response_format": {
"default": "concise",
"description": "Response detail level",
"enum": [
"concise",
"detailed"
],
"type": "string"
}
},
"required": [
"action"
],
"additionalProperties": false
}