{"openapi":"3.1.0","info":{"title":"Lemmafour agent API","version":"2026-10-06","summary":"Markdown and LaTeX math to print-quality, accessible PDF.","description":"Typesets Markdown (LaTeX math, tables, code, images) into PDFs, and checks PDF/UA-1 accessibility. Documents are processed in memory and never stored. Up to 50 pages per render; longer documents fail with render.too_long_for_api: split them, or open them in the Lemmafour editor (https://lemmafour.com/tools/markdown-to-pdf/), which renders up to 1,000 pages on your own device.\n\nErrors carry line-numbered diagnostics; apply each diagnostic's fix or hints and retry. Free templates work without an account; paid templates and PDF profiles need a Day Pass or Pro plan (https://lemmafour.com/pricing/), and every refusal names the free alternative. The same tools are available over MCP at /mcp.","contact":{"name":"Lemmafour","url":"https://lemmafour.com/developers"},"termsOfService":"https://lemmafour.com/terms/"},"servers":[{"url":"https://mcp.lemmafour.com"}],"externalDocs":{"description":"Developer guide","url":"https://lemmafour.com/developers"},"tags":[{"name":"PDF","description":"Render and check documents."},{"name":"Catalogue","description":"Templates, profiles and limits."},{"name":"Account","description":"The signed-in account."}],"security":[{},{"oauth2":["render"]},{"bearerToken":[]}],"paths":{"/v1/render":{"post":{"operationId":"renderPdf","tags":["PDF"],"summary":"Render Markdown to a PDF","description":"Use when the user wants a PDF, or a printable, shareable or accessible document, from Markdown: worksheets, reports, papers, resumes, letters, notes. Returns application/pdf by default, or JSON with pdfBase64 when Accept: application/json. If it fails, fix the error diagnostics and retry.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderRequest"},"example":{"markdown":"---\ntitle: Fractions practice\nauthor: Ms Rivera\nlanguage: en\n---\n\n# Fractions\n\nSimplify $\\frac{6}{8}$ {alt=\"six eighths\"}.\n\n| Problem | Answer |\n|---|---|\n| $\\frac{1}{4}+\\frac{1}{4}$ {alt=\"one quarter plus one quarter\"} | |\n","template":"assignment"}}}},"responses":{"200":{"description":"The PDF.","headers":{"x-lemmafour-page-count":{"schema":{"type":"integer"},"description":"Pages in the PDF."},"x-lemmafour-warning-count":{"schema":{"type":"integer"},"description":"Warning diagnostics (JSON responses list them)."}},"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}},"application/json":{"schema":{"$ref":"#/components/schemas/RenderResult"}}}},"400":{"description":"Invalid request; the error code names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"request.template_unknown","message":"\"template\" must be one of: …"},"diagnostics":[]}}}},"401":{"description":"Sign-in needed (no or invalid token, or paid features without an account). The WWW-Authenticate header names the OAuth metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access.sign_in_required","message":"This document uses features that need a Lemmafour Day Pass or a Pro plan. …"},"diagnostics":[{"severity":"error","code":"access.professional_template_required","message":"The \"article\" publishing template requires a Day Pass or Pro.","hints":[],"fix":{"frontmatter":{"key":"template","value":"assignment"}}}],"plansUrl":"https://lemmafour.com/pricing/"}}}},"403":{"description":"The token lacks the render scope, or the account's plan does not include a paid feature the document uses (diagnostics carry the free fix).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access.plan_required","message":"…"},"diagnostics":[],"plansUrl":"https://lemmafour.com/pricing/"}}}},"413":{"description":"Body, Markdown, asset or image too large, or a paragraph too dense with *, _, ~, [ or ] to parse quickly (request.markdown_too_complex).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"request.markdown_too_large","message":"\"markdown\" exceeds 2097152 bytes."},"diagnostics":[]}}}},"422":{"description":"The document cannot be rendered; fix the error diagnostics and retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"render.failed","message":"The document could not be rendered. Fix the error diagnostics and retry."},"diagnostics":[{"severity":"error","code":"math.render_failed","message":"…","hints":["…"],"range":{"file":"document.md","startLine":9,"startColumn":10,"endLine":9,"endColumn":22}}]}}}},"503":{"description":"Sign-in service temporarily unavailable; retry after the Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"auth.unavailable","message":"Sign-in is temporarily unavailable. Retry shortly."},"diagnostics":[]}}}}}}},"/v1/validate":{"post":{"operationId":"validateAccessibility","tags":["PDF"],"summary":"Check a document against PDF/UA-1 without producing a file","description":"Checks document title and language, image and equation alt text, link text and structure. Free on every plan, including for paid templates. Returns valid=false with line-numbered diagnostics when something must change.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderRequest"},"example":{"markdown":"---\ntitle: Fractions practice\nauthor: Ms Rivera\nlanguage: en\n---\n\n# Fractions\n\nSimplify $\\frac{6}{8}$ {alt=\"six eighths\"}.\n\n| Problem | Answer |\n|---|---|\n| $\\frac{1}{4}+\\frac{1}{4}$ {alt=\"one quarter plus one quarter\"} | |\n","template":"assignment"}}}},"responses":{"200":{"description":"Validation report.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidationReport"},"example":{"valid":false,"profile":"pdf-ua-1","pageCount":1,"diagnostics":[{"severity":"error","code":"accessibility.title_missing","message":"A document title is required for this accessible PDF profile.","hints":[]}]}}}},"400":{"description":"Invalid request; the error code names the field.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"request.template_unknown","message":"\"template\" must be one of: …"},"diagnostics":[]}}}},"401":{"description":"Sign-in needed (no or invalid token, or paid features without an account). The WWW-Authenticate header names the OAuth metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access.sign_in_required","message":"This document uses features that need a Lemmafour Day Pass or a Pro plan. …"},"diagnostics":[{"severity":"error","code":"access.professional_template_required","message":"The \"article\" publishing template requires a Day Pass or Pro.","hints":[],"fix":{"frontmatter":{"key":"template","value":"assignment"}}}],"plansUrl":"https://lemmafour.com/pricing/"}}}},"413":{"description":"Body, Markdown, asset or image too large, or a paragraph too dense with *, _, ~, [ or ] to parse quickly (request.markdown_too_complex).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"request.markdown_too_large","message":"\"markdown\" exceeds 2097152 bytes."},"diagnostics":[]}}}},"503":{"description":"Sign-in service temporarily unavailable; retry after the Retry-After seconds.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"auth.unavailable","message":"Sign-in is temporarily unavailable. Retry shortly."},"diagnostics":[]}}}}}}},"/v1/templates":{"get":{"operationId":"listTemplates","tags":["Catalogue"],"summary":"List layout templates and PDF profiles, marked free or paid, and size limits","security":[{}],"responses":{"200":{"description":"The catalogue.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Catalogue"}}}}}}},"/v1/account":{"get":{"operationId":"getAccount","tags":["Account"],"summary":"The signed-in account's plan","description":"Needs an OAuth token with the account:read scope.","security":[{"oauth2":["account:read"]}],"responses":{"200":{"description":"The plan.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"},"example":{"plan":"pro"}}}},"401":{"description":"Sign-in needed (no or invalid token, or paid features without an account). The WWW-Authenticate header names the OAuth metadata.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"access.sign_in_required","message":"This document uses features that need a Lemmafour Day Pass or a Pro plan. …"},"diagnostics":[{"severity":"error","code":"access.professional_template_required","message":"The \"article\" publishing template requires a Day Pass or Pro.","hints":[],"fix":{"frontmatter":{"key":"template","value":"assignment"}}}],"plansUrl":"https://lemmafour.com/pricing/"}}}},"403":{"description":"The token lacks account:read.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"error":{"code":"auth.insufficient_scope","message":"This token lacks account:read."},"diagnostics":[]}}}}}}},"/v1/health":{"get":{"operationId":"getHealth","tags":["Catalogue"],"summary":"Liveness, API version and engine versions","security":[{}],"responses":{"200":{"description":"Healthy.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Health"}}}}}}}},"components":{"schemas":{"RenderRequest":{"type":"object","required":["markdown"],"additionalProperties":false,"properties":{"markdown":{"type":"string","maxLength":2097152,"description":"The complete Markdown document with YAML frontmatter (title, author, date, language, template, pdfProfile). LaTeX math: $...$ inline, $$...$$ display; alt text for accessible output: $x^2$ {alt=\"x squared\"}. Set title and language; PDF/UA-1 requires a title. At most 2 MiB. Lemmafour syntax: page break ::pagebreak[]; callouts :::note … :::; numbered equation $$…$$ {#eq:name} cited as @eq:name; each line break inside a paragraph prints. LaTeX, Pandoc and Obsidian habits are translated and reported as info diagnostics. The full guide is markdownSyntax in listTemplates."},"markdownFlavor":{"enum":["lemmafour","gfm","commonmark","pandoc","quarto","obsidian","myst"],"description":"Only for a whole file written for another tool (Pandoc, Quarto, Obsidian or MyST): read it with that syntax. Default lemmafour."},"template":{"enum":["assignment","report","article","readme","resume","proposal","memo","specification","manual","lecture-notes","minimal","archival"],"description":"Layout template; overrides the frontmatter. Free: assignment, report, readme, resume, minimal. The others need a Day Pass or Pro plan. See listTemplates."},"profile":{"enum":["tagged","pdf-ua-1","pdf-a-2u","pdf-a-2a-ua-1"],"description":"PDF profile; overrides the frontmatter pdfProfile. tagged is free; the others need a Day Pass or Pro plan."},"settings":{"type":"object","additionalProperties":true,"description":"Document and layout settings, applied over the frontmatter. Near misses (other spellings, \"letter\", \"11pt\", Pandoc or LaTeX names) are translated and reported as info diagnostics; values out of range move to the nearest valid value; unknown names are reported.","properties":{"title":{"type":"string","description":"Document title (shown on the first page; screen readers announce it)."},"subtitle":{"type":"string","description":"Subtitle under the title."},"author":{"type":"string","description":"Author name(s), comma-separated."},"date":{"type":"string","description":"Date as it should appear, for example \"October 2026\"."},"language":{"type":"string","description":"BCP 47 language tag such as en, en-GB, de or zh-Hant."},"abstract":{"type":"string","description":"Abstract shown under the title (papers, reports)."},"template":{"enum":["assignment","report","article","readme","resume","proposal","memo","specification","manual","lecture-notes","minimal","archival"],"description":"Layout preset. Free: assignment (worksheets, default), report, readme, resume, minimal. Paid: article (two-column paper), proposal, memo, specification, manual, lecture-notes, archival."},"theme":{"enum":["classroom-clear","exam-compact","academic-serif","modern-report","technical-sans","editorial-book","formal-proposal","accessible-high-contrast","minimal","latex-classic","latex-article","school-brand-starter"],"description":"Visual theme (fonts, colours, spacing). Free: classroom-clear, exam-compact, modern-report, accessible-high-contrast, minimal."},"themeDensity":{"enum":["compact","standard","editorial"],"description":"Overall spacing: compact fits more on a page; editorial is airy."},"themeFontPair":{"enum":["classic-serif","modern-sans","editorial-pair","universal-serif","universal-sans","garamond-editorial","reading-literata","classroom-serif","language-study","humanist","technical-inter","technical-fira","formal-crimson"],"description":"Font pairing. Free: classic-serif, modern-sans, editorial-pair."},"themePalette":{"enum":["classroom","exam","academic","modern","technical","editorial","formal","high-contrast","minimal","monochrome","school"],"description":"Colour scheme (default: the theme's). monochrome prints everything in black and greys (for black-only printing); the result's look says what prints in colour. accent changes the scheme's main colour."},"accent":{"type":"string","description":"The document's one colour: title, headings, links and tables (header tints, stripes, the filled style's header). #rrggbb or a colour name such as green or navy; a colour too light for text is darkened until text reads on it. Not for black-only output: use themePalette: monochrome."},"headingStyle":{"enum":["plain","accent","rule-above","rule-below","accent-number","accent-bar","small-caps"],"description":"How section headings stand out (default: the theme's own, sized and spaced for it). plain; accent: level 1 in the accent colour; rule-above or rule-below: a hairline over or under level 1; accent-number: section numbers in the accent (with headingNumbers); accent-bar: a short accent rule under level 1; small-caps: level 2 in letterspaced capitals. Paid."},"tableStyle":{"enum":["booktabs","lined","striped","grid","boxed","minimal","filled"],"description":"Look of every table (default: the theme's; colours come from the theme and its accent). booktabs: rules above, below and under the header; lined: a rule under every row; striped: shaded alternate rows; grid: every cell bordered; boxed: an outer frame; minimal: no lines; filled: a header in the accent colour with white text, as in Word. One table: :::table{style=grid}."},"tableBorder":{"enum":["none","thin","normal","thick"],"description":"Line weight of every table: none (no lines), thin, normal or thick. One table: :::table{border=thick} or border=1.5pt."},"paper":{"enum":["a4","us-letter"],"description":"Paper size. Default a4; use us-letter for the US and Canada."},"orientation":{"enum":["portrait","landscape"],"description":"Page orientation of the whole document: landscape for timetables, wide schedules and charts. One table or block on a landscape page: :::table{layout=landscape} or :::landscape."},"margins":{"enum":["compact","normal","wide"],"description":"Page margins: compact (about 14 mm), normal (the template's), wide (about 30 mm)."},"columns":{"type":"integer","minimum":1,"maximum":3,"description":"Text columns, 1 to 3. Works with every template, including free ones. Long display equations break into lines to fit; keep any single bracket or fraction under about 60 LaTeX characters (40 in three columns), or it spans the page."},"columnGutter":{"type":"number","minimum":6,"maximum":30,"description":"Gap between columns in points (6-30)."},"pageNumbering":{"enum":["1","i","I","a","A"],"description":"Page number style: 1, i (roman), I, a or A."},"header":{"type":"string","description":"Running header text on every page."},"footer":{"type":"string","description":"Running footer text on every page."},"titlePage":{"type":"boolean","description":"Put the title, author and date on their own first page."},"toc":{"type":"boolean","description":"Add a table of contents from the headings."},"tocDepth":{"type":"integer","minimum":1,"maximum":6,"description":"Heading levels in the table of contents (1-6)."},"listOfFigures":{"type":"boolean","description":"Add a list of figures."},"listOfTables":{"type":"boolean","description":"Add a list of tables."},"answers":{"enum":["hide","show","end"],"description":"Correct options of :::question blocks: hide (student copy, default), show (marked in place, teacher copy) or end (listed on a last page)."},"headingNumbers":{"type":"boolean","description":"Number sections (1, 1.1, 1.2...)."},"equationNumbers":{"type":"boolean","description":"Number display equations."},"codeLineNumbers":{"type":"boolean","description":"Number lines in code blocks."},"fontSize":{"type":"number","minimum":8,"maximum":16,"description":"Body text size in points (8-16). Paid."},"lineSpacing":{"type":"number","minimum":0.5,"maximum":1.5,"description":"Extra space between lines in em: about 0.65 normal, 1.0 one-and-a-half, 1.5 double. Paid."}},"examples":[{"columns":2,"margins":"compact","paper":"us-letter","headingNumbers":true}]},"withoutPlan":{"enum":["preview","use-free-alternative"],"description":"When the caller has no Day Pass or Pro and the document uses paid choices: \"preview\" (default) refuses with free fixes; \"use-free-alternative\" renders the free version and lists the changes in freeAlternatives."},"assets":{"type":"array","maxItems":64,"description":"Images the Markdown references by relative path: PNG, JPEG, GIF, WebP or SVG, each at most 4194304 bytes and 12 megapixels. Send contentBase64 from a program that reads the file; an AI model should never write a file out as base64 (send SVG drawings as text instead). Images not sent, and remote image URLs (never fetched), are listed in missingImages for the user to add in Lemmafour.","items":{"type":"object","required":["path"],"additionalProperties":false,"properties":{"path":{"type":"string","pattern":"^[A-Za-z0-9][A-Za-z0-9._/-]*\\.(png|jpe?g|gif|webp|svg)$","examples":["figures/plot.png"]},"contentBase64":{"type":"string","contentEncoding":"base64","description":"The file, base64-encoded. Exactly one of contentBase64 and text."},"text":{"type":"string","description":"For .svg only: the SVG source as text."}}}}}},"Diagnostic":{"type":"object","required":["severity","code","message","hints"],"properties":{"severity":{"enum":["error","warning","info"],"description":"Errors block the PDF; warnings never do; info notes report translated settings and free alternatives used."},"code":{"type":"string","description":"Stable machine-readable code.","examples":["accessibility.title_missing","access.professional_template_required","render.too_long_for_api"]},"message":{"type":"string"},"hints":{"type":"array","items":{"type":"string"},"description":"What to change before retrying."},"range":{"type":"object","description":"Location in the submitted Markdown (1-based lines and columns).","properties":{"file":{"type":"string"},"startLine":{"type":"integer"},"startColumn":{"type":"integer"},"endLine":{"type":"integer"},"endColumn":{"type":"integer"}}},"page":{"type":"integer","description":"PDF page the diagnostic refers to, when known."},"fix":{"type":"object","description":"A machine-applicable fix: set this frontmatter key to this value and retry. Paid-feature refusals carry the free alternative.","required":["frontmatter"],"properties":{"frontmatter":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","examples":["template"]},"value":{"type":["string","number","boolean","null"],"examples":["assignment"]}}}}}}},"Error":{"type":"object","required":["error","diagnostics"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}},"diagnostics":{"type":"array","items":{"$ref":"#/components/schemas/Diagnostic"}},"plansUrl":{"type":"string","format":"uri","description":"Present when a paid plan would allow the request."}}},"AppliedSettings":{"type":"object","description":"The layout the render used: explicit settings over the template defaults. Reuse it when revising the document.","properties":{"template":{"type":"string"},"pdfProfile":{"type":"string"},"paper":{"enum":["a4","us-letter"]},"orientation":{"enum":["portrait","landscape"]},"margins":{"enum":["compact","normal","wide","template-default"]},"marginX":{"type":"string"},"marginY":{"type":"string"},"columns":{"type":"integer"},"columnGutter":{"type":"number"},"titlePage":{"type":"boolean"},"toc":{"type":"boolean"},"tocDepth":{"type":"integer"},"headingNumbers":{"type":"boolean"},"equationNumbers":{"type":"boolean"},"codeLineNumbers":{"type":"boolean"},"pageNumbering":{"type":"string"},"theme":{"type":"string"},"themePalette":{"type":"string"},"accent":{"type":"string","description":"The accent colour, #rrggbb."},"themeDensity":{"type":"string"},"headingStyle":{"type":"string"},"fontSize":{"type":"number"},"lineSpacing":{"type":"number"},"answers":{"enum":["hide","show","end"],"description":"How :::question answers print: hidden, marked in place, or listed at the end."}}},"RenderResult":{"type":"object","required":["pageCount","pdfBase64","diagnostics"],"properties":{"pageCount":{"type":"integer"},"pdfBase64":{"type":"string","contentEncoding":"base64","contentMediaType":"application/pdf"},"diagnostics":{"type":"array","items":{"$ref":"#/components/schemas/Diagnostic"},"description":"Warnings and notes about the rendered PDF."},"appliedSettings":{"$ref":"#/components/schemas/AppliedSettings"},"look":{"type":"object","description":"Theme, fonts and the colour each element prints in; inColour lists the elements in colour, blackAndWhite is true when none is (themePalette monochrome).","properties":{"theme":{"type":"string"},"fonts":{"type":"object","properties":{"text":{"type":"string"},"headings":{"type":"string"},"math":{"type":"string"}}},"colors":{"type":"object","additionalProperties":true},"inColour":{"type":"array","items":{"type":"string"}},"blackAndWhite":{"type":"boolean"}}},"frontmatter":{"type":"string","description":"The frontmatter after all settings, as YAML; keep it in the document."},"missingImages":{"type":"array","description":"Images the document references that were not sent (or are remote). The PDF shows a box for each; the user can add them in the Lemmafour editor.","items":{"type":"object","required":["path","alt","remote"],"properties":{"path":{"type":"string"},"alt":{"type":"string"},"remote":{"type":"boolean"}}}},"freeAlternatives":{"type":"array","description":"Free alternatives applied because of withoutPlan \"use-free-alternative\" (null value: setting removed).","items":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":["string","number","boolean","null"]}}}}}},"ValidationReport":{"type":"object","required":["valid","profile","pageCount","diagnostics"],"properties":{"valid":{"type":"boolean","description":"True when the document meets PDF/UA-1."},"profile":{"type":"string"},"pageCount":{"type":"integer"},"diagnostics":{"type":"array","items":{"$ref":"#/components/schemas/Diagnostic"}},"appliedSettings":{"$ref":"#/components/schemas/AppliedSettings"}}},"Catalogue":{"type":"object","required":["templates","profiles","limits"],"properties":{"templates":{"type":"array","items":{"type":"object","required":["id","name","description","goodFor","access"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"goodFor":{"type":"array","items":{"type":"string"}},"access":{"enum":["free","paid"],"description":"paid: PDFs need a Day Pass or Pro plan."}}}},"profiles":{"type":"array","items":{"type":"object","required":["id","description","access"],"properties":{"id":{"type":"string"},"description":{"type":"string"},"access":{"enum":["free","paid"]}}}},"settings":{"type":"array","description":"Every setting the render request accepts: key, group, type, allowed values with free or paid, range, description.","items":{"type":"object","required":["key","type","description"],"properties":{"key":{"type":"string"},"group":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"}}}},"markdownSyntax":{"type":"array","description":"Lemmafour Markdown an agent cannot guess (page breaks, callouts, labels, figure size), each with a note.","items":{"type":"object","required":["feature","write"],"properties":{"feature":{"type":"string"},"write":{"type":"string"},"note":{"type":"string"}}}},"notRendered":{"type":"array","items":{"type":"string"},"description":"What the API cannot render, and what to use instead."},"limits":{"type":"object","properties":{"maxPages":{"type":"integer"},"maxMarkdownBytes":{"type":"integer"}}}}},"Health":{"type":"object","required":["ok","apiVersion"],"properties":{"ok":{"type":"boolean"},"apiVersion":{"type":"string"},"environment":{"type":"string"},"engine":{"type":"object","description":"Engine component versions.","additionalProperties":true}}},"Account":{"type":"object","required":["plan"],"properties":{"plan":{"enum":["free","day-pass","pro"]}}}},"securitySchemes":{"oauth2":{"type":"oauth2","description":"OAuth 2.1 with PKCE (S256). Clients register with a Client ID Metadata Document or dynamic registration; pass resource=<server URL>. Discovery: /.well-known/oauth-protected-resource.","flows":{"authorizationCode":{"authorizationUrl":"https://lemmafour.com/oauth/authorize","tokenUrl":"https://lemmafour.com/oauth/token","refreshUrl":"https://lemmafour.com/oauth/token","scopes":{"render":"Render and check documents with your plan","account:read":"Read your plan","offline_access":"Stay signed in (refresh tokens)"}}}},"bearerToken":{"type":"http","scheme":"bearer","description":"An API key from your Lemmafour account, sent as Authorization: Bearer <key>. Never put it in a URL."}}}}