grants

Grants

Grant writing workspace. Each grant contains a LaTeX file tree (folders and files). Files store raw LaTeX or reference uploaded binaries; the editor shows a clean interface. Grants can be shared with collaborators.

Base URL

https://granttool.de

Usage & billing

Fair API usage within the published rate limits is included on every plan - the integration shouldn't feel artificially constrained just because you're on a smaller tier. Enterprise customers get bespoke limits on request.

On-demand service is available, and our developer team builds custom integrations on request - reach out if your use case needs more than the standard hookup.

Quick start

  1. 1

    Create a token

    Open the Integrations menu in Grants, click *New token*, pick a name + scopes, and copy the pat_… secret. It's shown exactly once.

  2. 2

    Make your first request

    Pass the token as a Bearer header to any Grants endpoint your scopes allow. Pagination, filtering, and sorting are documented per model.

    curl -H "Authorization: Bearer pat_…" \
    https://granttool.de/xapi2/data/derived_doc
  3. 3

    Subscribe to live updates

    Open a single WebSocket and receive every create / update / delete event in real time - same access rules, same token. Skip polling entirely.

    const ws = new WebSocket(`wss://${location.host}/xapi2/ch?token=${token}`)
    ws.onopen = () => ws.send(
    JSON.stringify({ op: "subscribe", id: "s1", dataType: "derived_doc" }),
    )
    ws.onmessage = (e) => console.log(JSON.parse(e.data))

These docs cover every endpoint the app exposes. Each model page carries concrete code samples in curl, JavaScript, TypeScript, and WebSocket.

Data models

Production-grade, industry-standard data models. Every object is managed securely - validation, access rules, and audit run uniformly on every path - and the data is owned by the respective customer at all times. Export and deletion are first-class.

Arrows point from the referencing data model to the referenced one. Endpoint markers describe cardinality (e.g. * = any number, 1 = exactly one, 0..1 = optional). Click a node to open its model page.

*1*1*1*1*1*1*1*1*1grant13 fieldsderived_docgrant_id → grantfeedback_itemgrant_id → grantfeedback_pointgrant_id → grantfilegrant_id → grantfoldergrant_id → grantleadgrant_id → grantloigrant_id → grantreview_notegrant_id → grantversion_snapshotgrant_id → grant
Required referenceOptional reference
Derived documents
derived_doc

A document generated from the grant - pitch deck, exec summary, finance plan Excel, clarification reply, ... Tracked separately so we can flag it stale when the source antrag bumps a version.

7 fields1 refs
GETGETPOSTPATCHDELETE
Feedback items
feedback_item

Incoming feedback on a grant - from uni TTO, programme officer, mentor, or a self-note. The body field carries the raw text; extracted markup points live in feedback_point.

10 fields1 refs
GETGETPOSTPATCHDELETE
Feedback points
feedback_point

A single extracted point belonging to a feedback_item. Carries the kind (Korrektur/Kritik/Vorschlag/Lob/Frage), the excerpt from the source, and the AI-suggested edit.

8 fields1 refs
GETGETPOSTPATCHDELETE
Files
file

A file inside a grant. kind=doc holds raw LaTeX in the content field (editor presents it as clean text; is_root=true marks the compilation entry point). kind=asset references uploaded binary bytes via blob_id (images, .bib files, supplementary PDFs).

18 fields1 refs
GETGETPOSTPATCHDELETE
Folders
folder

A folder within a grant. Nested via parent_folder_id; null means grant root. Exists only to organise files.

4 fields1 refs
GETGETPOSTPATCHDELETE
Grants
grant

A grant application workspace. Owns its file tree (folders and files). Carries funder/program metadata and tracks submission lifecycle.

13 fields9
GETGETPOSTPATCHDELETE
Pilot leads
lead

Pilot / partner / LOI-source contact tracked in the Partners kanban. Keyed to a grant; state moves lead → talking → loi_draft → loi_signed → lost.

8 fields1 refs
GETGETPOSTPATCHDELETE
Letters of intent
loi

A generated LOI document tied to a lead + grant. Status moves draft → sent → signed; signed copies typically live in storage with a blob_id.

7 fields1 refs
GETGETPOSTPATCHDELETE
Review notes
review_note

Mentor / TTO / external reviewer comment on a chapter. Threadable via parent_id (kept simple as a flat list for now).

8 fields1 refs
GETGETPOSTPATCHDELETE
Version snapshots
version_snapshot

Versioned point-in-time view of a grant - label, score, summary, and a JSONB snapshot of file contents at that moment. Triggered by manual save, auto-adjust, or external feedback application.

7 fields1 refs
GETGETPOSTPATCHDELETE