Skip to content
Catalog

cn8/document-infocard

Send one or more documents — pdf, docx, txt, md, pptx (wowslides), xlsx or epub — and get

Learn more about Document Infocard
Text NLPasync (job)Instant previewtextdocumentgeneration

Input

array<object>

The documents to read. Each item: fileId (your identifier, echoed back), filePath (public http(s) URL), fileType (optional; inferred from the URL), extractedContent (optional; pass the text yourself and the file is not downloaded). Either filePath or extractedContent is required per file.

Instant sample preview — no cost, no account. Sign up free to run with your own input.

Result

Completed Instant preview
Json
{
  "reqData": {
    "processID": 4218,
    "env": "PROD",
    "extraInformation": "",
    "files": [
      {
        "fileId": "doc-1",
        "filePath": "https://example.com/report.pdf",
        "fileType": null
      }
    ]
  },
  "outputData": {
    "infocard": {
      "title": "Renewable Energy Transition in Europe",
      "description": "A two-three sentence overview of the material.",
      "summary": "250-300 word detailed summary ...",
      "longSummary": "500-700 word narrative summary ...",
      "keywords": [
        "energy transition",
        "solar",
        "grid capacity"
      ],
      "highlights": [
        "Grid capacity, not generation, is the bottleneck."
      ],
      "key_concepts": [
        {
          "term": "Capacity factor",
          "definition": "The ratio of actual output to nameplate capacity."
        }
      ],
      "learning_objectives": [
        "Explain why storage changes the economics of solar."
      ],
      "key_points": [
        "Solar reached 12% of generation in 2025."
      ],
      "sections": [
        {
          "title": "Introduction",
          "content": "..."
        }
      ],
      "extracted_content": "[Sayfa 1] ...",
      "language": "en"
    },
    "lms_card": {
      "...": "same object as infocard"
    },
    "files": [
      {
        "fileId": "doc-1",
        "fileType": "pdf",
        "ok": true,
        "characters": 48210
      }
    ]
  },
  "usage": {
    "units": 1
  }
}

Example response from this endpoint's API reference. Sign in to run it on your own input.

This request costs 0.1 per item.

Overview

Send one or more documents — pdf, docx, txt, md, pptx (wowslides), xlsx or epub — and get back a single structured card describing the material: a title, a short description, a detailed summary and a long-form one, keywords, highlights, key concepts with definitions, learning objectives, key points, and the material's own outline as sections.

Several files are read as one body of material and produce one card — a slide deck plus its handout plus the reading list become a single coherent summary rather than three disconnected ones. Text extraction keeps the structure of the source: page and slide numbers, sheet names, headings, tables and speaker notes are marked in the text the model reads, so the card can refer to where something came from.

Long documents are summarised part by part and then merged, so a 400-page PDF works the same way a two-page memo does. The card is written in the language of the material unless you ask for another one.

Key capabilities

Seven document types

pdf, docx, txt, md, pptx (wowslides exports), xlsx and epub. The type is inferred from the URL; pass fileType when the URL has no extension.

Many files, one card

Every file in the request is treated as one body of material and produces a single merged card — not one card per file.

Structure preserved

Page and slide numbers, spreadsheet sheet names, markdown headings, tables and PowerPoint speaker notes survive extraction and reach the model.

Long documents

Material over ~60k characters is summarised chunk by chunk and then merged, so large PDFs and books do not need splitting on your side.

Bring your own text

If you already extracted the text, send it as extractedContent and the file is not downloaded at all.

Steer the output

extraInformation is free text — say who the audience is or which angle to emphasise. language forces the card's language.

When to use it

Course material

Turn a lecture deck and its reading into a study card with learning objectives and key concepts.

Onboarding docs

Summarise a policy pack into a short description plus key points people can actually read.

Content indexing

Use title, description and keywords to index a document library for search and recommendation.

Report digests

Get a 500-700 word narrative summary of a long report, plus quotable highlights.

Input & output

input

A files array — each item a public document URL (or the already-extracted text), plus optional language and extraInformation.

JSON body

output

One card under outputData.lms_card and outputData.infocard (the same object), plus a per-file extraction report.

JSON

Guides & tips

Which file types work

  • pdf — text-layer PDFs. Page boundaries are marked, so the card can refer to pages. A scanned PDF with no text layer extracts nothing; OCR it first.
  • docx — paragraphs, headings and tables.
  • pptx / wowslides — one marker per slide, plus speaker notes. WowSlides exports are pptx and are handled identically.
  • xlsx — every sheet, marked with its name, rows flattened to text.
  • epub — read in spine order, HTML stripped to text.
  • txt / md — used as-is; markdown headings are kept as structure.

Several files vs several requests

Files in one request become one card. If you want one card per document, send one request per document — that is also what the per-item price assumes.

Skipping the download

If your system already holds the text (you extracted it, or it was typed in), send it as extractedContent and omit filePath. Nothing is downloaded and the text is used verbatim.

Getting the language you want

Omit language and the card comes back in the language of the material. Set it ("tr", "en", …) and the card is written in that language whatever the source is; the output is checked and rewritten once if the model drifts back to the source language.

Specs

Latency
Typically 20-90 seconds; long documents that need chunked summarisation take longer
Async
true
Rate Limit
Per API key
Max Input
200 MB per file; documents over ~60k characters are summarised in parts

Schema

Request body

filesrequiredarray<object>

The documents to read. Each item: fileId (your identifier, echoed back), filePath (public http(s) URL), fileType (optional; inferred from the URL), extractedContent (optional; pass the text yourself and the file is not downloaded). Either filePath or extractedContent is required per file.

languagestring

Language of the card, ISO-639-1 (e.g. 'tr', 'en'). Detected from the material when omitted; the output is checked and rewritten once if it comes back in the wrong language.

extraInformationstring

Free-text instruction for the card — the audience, the angle to emphasise, terminology to keep.

processIDinteger

An identifier echoed back in reqData so you can correlate the result with your own records.

envstring

Echoed back in reqData. Carried for compatibility with existing integrations.

callbackUrlstring

If given, a POST is sent there when the job ends: { status, processID, job_id }. Polling still works; the callback is best-effort.

Response

outputData.infocardobject

The card. Same object as outputData.lms_card.

outputData.lms_cardobject

The card under its original name, kept for existing integrations.

outputData.filesarray<object>

Per-file extraction report: { fileId, fileType, ok, characters } — or { fileId, ok: false, error } for a file that could not be read.

reqDataobject

Echo of processID, env, extraInformation and the files you sent.

usage.unitsinteger

Number of files in the request — the billed item count.

Pricing

Billed per file in the request. Document length does not change the price.

ServiceUnitPrice
Document Infocarditem$0.10/req

usage.units in the result is the number of files, which is what is billed.

Sending extractedContent instead of filePath costs the same — the price is per file, not per download.

FAQ

Related models