3.2 KiB
3.2 KiB
App API Contract Notes
This is a handoff snapshot, not the product SSOT.
Product SSOT: mall-docs report-notebooklm docs, snapshot date: 2026-06-03.
For full API/data details, read ../report-notebooklm-api/docs/API_AND_DATA.md from the monorepo root.
Configuration
The App reads the API base URL from:
RNB_API_BASE
If RNB_API_BASE is missing, live API requests throw an error. This is intentional to avoid silently pointing production builds at a debug backend.
Endpoints Currently Consumed
| Method | Path | App use |
|---|---|---|
GET |
/feed/recommended |
Recommended feed cards. |
GET |
/reports |
Report list. |
GET |
/reports/{report_id} |
Report detail skeleton and modules. |
GET |
/reports/{report_id}/modules/{module_id} |
Module detail page content. |
GET |
/institutions |
Institution list. |
GET |
/institutions/{institution_id} |
Institution detail and recent reports. |
GET |
/listen |
Listen list and mini-player entry. |
Response Fields Currently Used
Report cards:
report_idtitle_cnsubtitle_cnone_linerinstitutiontopicsreleased_athas_audiointerpretation_labelsource_tiercache_version
Report detail:
report_idtitle_cnsubtitle_cnoriginal_titleone_linerinstitutionsourcetopicshas_audiointerpretation_labelrisk_disclaimerreleased_atcache_versionmodules
Display modules:
module_idtypelayerrender_modehas_detail_pageis_publish_blockingrequires_human_reviewsort_ordertitle_cncontentpreviewcontent_refcontent_etag
Listen items:
audio_idtitle_cnduration_secreport_idreport_title_cninstitutionreleased_atcache_version
Institution:
institution_idname_cnname_eninstitution_typesource_tierwebsite_urlcovered_topicsreport_countlatest_report_atcredibility_noteintro_cnlatest_reportrecent_reports
Module Rendering Behavior
render_mode=inline: App renderscontenton the report detail page.render_mode=card_plus_page: App renderspreviewon the report detail page and opens module detail for full content.- Unknown module
typeshould not crash the App; it should fall back to a generic or hidden renderer.
Current renderer coverage includes:
basic_infoexecutive_overviewcore_insightskey_datasource_complianceaudioinstitutiontimelinestudy_guidestructure_graphrelated_sourcesdifferentiated_viewweaknesses
Endpoints Not Yet Consumed
GET /audio/{audio_id}/stream- Auth endpoints.
/mepersonal-state endpoints.POST /outbound/events
The UI currently uses placeholders for these blocked flows:
- Login prompt.
- Favorite action.
- Browse/history sync.
- Saved listen.
- Playback progress.
- Outbound confirmation.
- Real audio playback.
Public Field Boundary
The App must not rely on or display:
display_version- module
version - raw artifact payload
- raw NotebookLM IDs
- private object-storage references
- local paths
- auth internals
The App should use cache_version as the public cache/version signal.