Datenmodell
Förderanträge
Arbeitsbereich für einen Förderantrag. Enthält den Dateibaum und Metadaten zu Förderer, Programm und Einreichungsstatus.
grant200Felder
Validierungsregeln pro Feld. Werte, die diese Bedingungen verletzen, werden mit 400 abgewiesen, bevor sie die Datenbank erreichen.
| Feld | Typ | Regeln |
|---|---|---|
| tags | tags | - |
| color | string | max. Länge 24 |
| notes | string | max. Länge 4000 |
| title | string | max. Länge 300 |
| status | enum | enum drafting | submitted | under_review | awarded | rejected | abandoned |
| program | string | max. Länge 200 |
| currency | string | max. Länge 8 |
| deadline | string | max. Länge 32 |
| team_size | number | - |
| description | string | max. Länge 2000 |
| root_file_id | string | max. Länge 64 |
| grant_type_key | string | max. Länge 64 |
| requested_amount | number | - |
Mutabilität
Welche Felder darfst du senden, und wann? Felder ohne Markierung werden vom Server vergeben - das Senden ist kein Fehler, sie werden stillschweigend ignoriert.
| Feld | Anlegbar | Änderbar |
|---|---|---|
| tags | ||
| color | ||
| notes | ||
| title | ||
| status | ||
| program | ||
| currency | ||
| deadline | ||
| team_size | ||
| description | ||
| root_file_id | ||
| grant_type_key | ||
| requested_amount | ||
| funder | ||
| compiler | ||
| intake_blob_id | ||
| intake_url | ||
| intake_extracted | ||
| import_status | ||
| import_started_at | ||
| import_finished_at | ||
| intake_extracted_by_source | ||
| intake_sources | ||
| awarded_amount | ||
| awarded_at | ||
| profile | ||
| baseline_score | ||
| spellcheck_language_override | ||
| spellcheck_whitelist | ||
| spellcheck_disabled_rules |
Felder mit Anlegbar, aber ohne Änderbar, sind nach dem Erstellen unveränderlich. Server-verwaltete Felder umfassen id, Zeitstempel, Eigentümerschaft und Status.
Filter & Sortierung
Auf Listen-Endpunkten kombinierbar. Wiederholte Filter-Keys werden zu IN-Bedingungen, ein - vor einem Sort-Key kehrt die Richtung um. Beispiel: ?status=open&status=blocked&sort=-created_at.
Filter-Keys
data__statusdata__funderdata__tagsdata__deadlinedata__grant_type_keystatusis_archivedowned_bySortier-Keys
created_atupdated_atdata__titledata__deadlinedata__statusStandard: created_at
Endpunkte
Jeder Endpunkt unten zeigt seine HTTP-Methode, den Pfad und den dafür benötigten PAT-Scope. Code-Beispiele decken curl, JavaScript, TypeScript, Python, Rust, Java und WebSocket ab.
/xapi2/data/grantgrant:listObjekte auflisten
Liefert eine paginierte Liste sichtbarer Objekte. Standard-Seitengröße 20; mit ?limit= änderbar (typabhängig begrenzt). ?after=<id> für Keyset-Paginierung bei nach created_at sortierten Listen, ?offset= für Offset-Paginierung.
curl -H "Authorization: Bearer pat_…" \"https://granttool.de/xapi2/data/grant?limit=20"
/xapi2/data/grant/{id}grant:readEinzelnes Objekt lesen
Liefert das Objekt anhand der ID. 404, falls es nicht existiert oder du keinen Lese-Zugriff hast (beide Fälle sind bewusst zusammengelegt).
curl -H "Authorization: Bearer pat_…" \https://granttool.de/xapi2/data/grant/OBJECT_ID
/xapi2/data/grantgrant:createErstellen
Erstellt ein neues Objekt. Der Body ist ein flaches JSON-Dict mit Feldwerten. Server-seitige Felder (id, Zeitstempel, Ownership) werden automatisch gefüllt; nur die unten als anlegbar gelisteten Felder werden aus dem Body übernommen.
curl -H "Authorization: Bearer pat_…" \-H "Content-Type: application/json" \-X POST https://granttool.de/xapi2/data/grant \-d '{"name": "…"}'
/xapi2/data/grant/{id}grant:updateAktualisieren
Teilweise Aktualisierung. Nur Felder im Body werden verändert; alles andere bleibt erhalten. Gleiche Erlaubnisliste wie bei Create, abzüglich der nach dem Anlegen unveränderlichen Felder.
curl -H "Authorization: Bearer pat_…" \-H "Content-Type: application/json" \-X PATCH https://granttool.de/xapi2/data/grant/OBJECT_ID \-d '{"name": "…"}'
/xapi2/data/grant/{id}grant:deleteLöschen
Entfernt das Objekt. Es verschwindet sofort aus allen Standard-Listen und wird von read / list nicht mehr zurückgegeben.
curl -H "Authorization: Bearer pat_…" \-X DELETE https://granttool.de/xapi2/data/grant/OBJECT_ID
In der CLI
Dieselben Endpunkte sind auch über die Grants CLI verfügbar. Für Skripte, CI und Bulk-Imports ist sie meist die schnellere Wahl.
grantscli grant list --limit 5grantscli grant get <id>grantscli grant create --grant-type-key "Hello"grantscli grant upsert --unique grant_type_key --csv items.csvgrantscli grant schema # Felder & Limits
Volle Befehlsreferenz, Profile, CSV-Import, Auto-Retry, NDJSON-Streaming → /docs/cli