Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/alfonsoolavarria/florilegio/llms.txt

Use this file to discover all available pages before exploring further.

Authenticated users can save personal Bible study notes directly from the interactive Bible study tool. Each note stores a free-form title, a Bible reference string (e.g. "Juan 3:16"), and full HTML content authored by the user. The number of notes a user can create is governed by their subscription plan — free accounts are capped at 3 notes, premium accounts at 100, and pro accounts have no limit.

POST /api/estudios/guardar/

Saves a new study note or updates an existing one. When study_id is omitted, a new record is created. When study_id is provided, the matching record is overwritten in place — no plan-limit check is performed on updates. Authentication: Login required (@login_required) Rate limit: 60 requests / hour per user_or_ip Method: POST — JSON body, CSRF token required

Request body

content
string
required
HTML content for the study note. Sanitized server-side with bleach before storage. Allowed tags: p, br, strong, em, u, h1h6, ul, ol, li, blockquote, pre, code, hr, table, thead, tbody, tr, th, td, a, img, figure, span, div.
title
string
Title for the study note. All HTML tags are stripped before storage.
reference
string
Bible reference string, e.g. "Juan 3:16". All HTML tags are stripped before storage.
study_id
integer
If provided, updates the existing study with this ID (must belong to the authenticated user). If omitted, a new study is created and plan limits are checked.

Responses

Create — HTTP 200
{
  "status": "success",
  "message": "Estudio guardado correctamente.",
  "study_id": 42
}
Update — HTTP 200
{
  "status": "success",
  "message": "Estudio actualizado correctamente.",
  "study_id": 42,
  "updated": true
}
Plan limit reached — HTTP 403 Returned when a free or premium user has already reached their note ceiling and attempts to create a new study (not an update).
{
  "status": "plan_limit_reached",
  "message": "Has alcanzado el límite de 3 estudios de tu plan. Actualiza tu plan para seguir guardando.",
  "limit": 3,
  "plan": "free"
}

Plan limits

PlanStudy note limit
Free3
Premium100
ProUnlimited

GET /api/estudios/<study_id>/

Retrieves a single saved study note by its numeric ID. Authentication: Login required (@login_required) Rate limit: 60 requests / hour per user_or_ip

Path parameter

study_id
integer
required
The numeric ID of the study note to retrieve.

Responses

Success — HTTP 200
{
  "status": "success",
  "study": {
    "id": 42,
    "title": "Mi estudio de Juan 1",
    "reference": "Juan 1:1-14",
    "content": "<p>En el principio era el Verbo...</p>",
    "updated_at": "2024-01-15T10:30:00+00:00"
  }
}
Not found — HTTP 404 Returned when no study with the given ID exists for the authenticated user.
{
  "status": "error",
  "message": "Estudio no encontrado."
}
Study notes are strictly private. The GET endpoint filters by both id and the authenticated user — users can only access their own notes. Attempting to retrieve another user’s study will return a 404, not a 403.

Example

curl -X POST https://florilegiodelafe.com/api/estudios/guardar/ \
  -H "Content-Type: application/json" \
  -H "X-CSRFToken: <csrf_token>" \
  --cookie "sessionid=<session_cookie>" \
  -d '{"title": "Estudio Juan 1", "reference": "Juan 1:1", "content": "<p>En el principio...</p>"}'

Build docs developers (and LLMs) love