App data
Requires: A secret key with
APP_DATA(storage) orAPP_IDENTITY_LOCALE_WRITE(language), called from your server.
State that belongs to your integration rather than to Cobuntu, and the one piece of identity an app may write back.
Write a member's language
Endpoint: PUT /members/{userId}/locale · Scope APP_IDENTITY_LOCALE_WRITE
A member's language is stored once, on their Cobuntu account, and that value is the platform's single source of truth for language. An app that lets someone change it should write it back here, so the member sets their language once and meets it everywhere.
Per-app storage
Endpoints (scope APP_DATA):
GET /members/{userId}/app-dataGET /members/{userId}/app-data/{key}PUT /members/{userId}/app-data/{key}DELETE /members/{userId}/app-data/{key}
A key/value store scoped to one app and one member. For state that belongs to your integration rather than to Cobuntu: a draft, a dismissed banner, a position in a flow.
Reach for this before adding a column to your own database for something only your app cares about.