# TinyCite: one-time AI answer reports

Use TinyCite to sample 10–20 unbranded buyer questions and inspect mentions,
citations, evidence-backed gaps, and up to three suggested page/documentation changes.
The initial live surface is Perplexity Sonar through OpenRouter. These API
samples do not measure consumer ChatGPT or worldwide AI visibility. No ranking
improvement is guaranteed. Recommendations and accuracy stay N/A until reviewed.

## Try the synthetic preview

Requires Node.js 20 or later. Run from the same project:

```sh
npx -y tinyscale@0.10.0 workspace create --name "My project" --products tinycite
npx -y tinyscale@0.10.0 cite create --request-json '<PUBLIC_REQUEST_JSON>'
npx -y tinyscale@0.10.0 cite status --report JOB_ID
npx -y tinyscale@0.10.0 cite download --report JOB_ID --output tinycite-report.html
```

The JSON request has version "tinycite.service.v1", a stable idempotencyKey
(16–128 characters), mode "preview", product, aliases, targetDomains,
targetPages, availability, publicInputsOnly:true, and 10–20 questions.
Each question has id, text, and cohort:"discovery"; do not include product names
or target domains in discovery questions. Each target page is a canonical
public HTTPS URL with no query or fragment, within a target domain.

Provide evidence:{id,url,retrievedAt,contentSha256,excerpts}. The URL must match
a target page. retrievedAt is an ISO timestamp and contentSha256 is the SHA-256
of the public page used. excerpts contains exactly four objects with ids
"description", "audience", "limits", and "features", each with plain text
up to 1,000 characters. Supply only public product facts; never include secrets,
customer records, cookies or private documents. The report labels these as
agent-supplied evidence, not independently verified page content.

A preview uses synthetic answers and makes no paid provider calls. Show the
report to the human, then use workspace claim. One live report is available
per claimed workspace while the shared launch allowance remains. Change mode
to "live" and choose a new idempotencyKey. Hard limits: two lifetime previews,
one lifetime live report, 10–20 questions each, no automatic overage or refill.
Live sampling may be unavailable when the shared launch allowance is exhausted.
The owner-funded launch pool reserves $5 total across all workspaces. Each
question reserves $0.05; unknown charges retain the reservation.

After the launch allowance, a workspace owner can buy credits and explicitly
enable TinyCite spending on the project's billing page. Discovery returns the
current immutable price version and quote range. To request paid execution, add
`funding:{"kind":"credits","priceVersion":"tinycite-question-v1","maxCredits":N}`,
where N is at least 50 times the question count and no more than the owner's
per-report cap. The service atomically reserves the full quote before queueing.
It never falls through from Free to credits. Completed or ambiguous provider
calls retain 50 credits each; questions known not to have been sent are released.
The owner also sets a hard UTC-calendar-month cap. There is no automatic top-up
or overage.

Jobs are asynchronous. Poll until reportReady, then download the private HTML.
HTTP: GET /v1/agent/tinycite discovers the scoped installation;
POST /v1/installations/INSTALLATION_ID/tinycite/reports queues the request;
GET that path plus /JOB_ID returns metadata, and /JOB_ID/artifact returns HTML.
All require the workspace bearer credential. Never put credentials in URLs.
SDK methods: citeInstallation, citeCreate, citeRead, citeDownload. MCP tools:
tinycite_discover, tinycite_report, tinycite_status; use CLI download for HTML.

Artifacts expire after seven days; preview expiry or workspace disconnection
revokes access earlier. Cleanup runs asynchronously. An interrupted or unusable
answer reduces coverage and is not retried automatically. Reports can be partial.
Repeating the exact request key returns the existing job; changed inputs with
that key are rejected. Allow up to roughly seven minutes for a run, plus queue
delay. Provider or storage failure can delay completion or yield a partial report.

Existing-page excerpts alone do not establish missing content. The hosted service
returns zero edits when no specific gap is supplied and supported; it never fills three slots
by rewriting those excerpts. A full answer sample can still yield a partial report
when page evidence is insufficient.

Via HTTP or the current source SDK/MCP, optionally supply pageReview:{gaps,improvements}
after inspecting the target page. The immutable v0.9 CLI accepts the original
four-excerpt request; use HTTP for this optional field.
These are agent-supplied editorial findings, not independently verified conclusions.
Each gap has id, priority (1–10), kind (page_clarity, documentation or availability),
observation, reason, questionIds, evidence:[{pageId,excerptId}], baselineDigests:[].
Each improvement has id, targetUrl, title, proposedChange, rationale, questionIds,
evidence:[{pageId,excerptId}], expectedEffect:"hypothesis". Use at most nine gaps
and three edits; all references must resolve to the supplied excerpts and questions.
An edit must share a question and evidence reference with a page gap. Document a
specific defect in observation/reason; a missing AI mention is not a page defect.
The report omits normalized text duplicates, edits already quoted on the target
page, and edits without a linked page gap. This filter cannot detect every paraphrase.

The suggestions are advisory. TinyCite does not publish edits, open customer
pull requests, monitor later visibility, or report referrals.
