OpenVibe.Network API

Generated at from openvibe-contracts v0.114.0 and openvibe-sdk v0.35.1.

Server https://openvibe.network. 39 routes performing 27 capabilities. OpenAPI 3.1 document.

GET /api/v1/creators/{creator}/analytics

Read a creator's full streaming analytics (average viewers, chatters, messages, watch minutes, as counts) for the creator's own dashboards in a first-party product (Live's /api/analytics).

Capabilities
network.analytics.creator.read
Visibility
first-party
Parameters
  • creator (path, required)
Response
application/json network.creator-analytics-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.analytics.creator.read</strong> (first-party): Read a creator&#39;s full streaming analytics (average viewers, chatters, messages, watch minutes, as counts) for the creator&#39;s own dashboards in a first-party product (Live&#39;s /api/analytics). Streams, minutes and peak viewers are public without it. Never grantable to apps.</p>

GET /api/v1/follows/{type}/{target}/followers

Read who follows a target (subjects only), as an owning service: go-live and other notifications, and product projections that rebuild from Network (ADR-030).

Capabilities
network.follows.read
Visibility
first-party
Parameters
  • type (path, required)
  • target (path, required)
Response
application/json network.follow-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.follows.read</strong> (first-party): Read who follows a target (subjects only), as an owning service: go-live and other notifications, and product projections that rebuild from Network (ADR-030). Counts are public without it. Never grantable to apps.</p>

PUT /api/v1/node/self/capabilities

A paired machine presents its own capabilities and rotates its own credential, never another machine's.

Capabilities
network.node.self.manage
Visibility
internal
Response
—
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.self.manage</strong> (internal): A paired machine presents its own capabilities and rotates its own credential, never another machine&#39;s.</p>

POST /api/v1/node/self/credential

A paired machine presents its own capabilities and rotates its own credential, never another machine's.

Capabilities
network.node.self.manage
Visibility
internal
Response
—
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.self.manage</strong> (internal): A paired machine presents its own capabilities and rotates its own credential, never another machine&#39;s.</p>

GET /api/v1/resources

Read OpenVibe.Network's resource index (ADR-048): GET /api/v1/resources lists the resources Network owns as a page of common.resource-summary@1 (common.resource-list-result@1), and GET /api/v1/resourc

Capabilities
network.resource.read
Visibility
first-party
Response
application/json common.resource-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.resource.read</strong> (first-party): Read OpenVibe.Network&#39;s resource index (ADR-048): GET /api/v1/resources lists the resources Network owns as a page of common.resource-summary@1 (common.resource-list-result@1), and GET /api/v1/resources/:ovrn reads one by its OVRN (common.resource-summary@1). Every authority serves these for OpenVibe.Services to fan out and merge; Network&#39;s own resources today are its projects, apps, keys and nodes. Planned until Network ships the index; the T2 Fabric offer registry&#39;s public routes, today sharing /api/v1/resources, move to /api/v1/offers in the same release.</p>

GET /api/v1/resources/{ovrn}

Read OpenVibe.Network's resource index (ADR-048): GET /api/v1/resources lists the resources Network owns as a page of common.resource-summary@1 (common.resource-list-result@1), and GET /api/v1/resourc

Capabilities
network.resource.read
Visibility
first-party
Parameters
  • ovrn (path, required)
Response
application/json common.resource-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.resource.read</strong> (first-party): Read OpenVibe.Network&#39;s resource index (ADR-048): GET /api/v1/resources lists the resources Network owns as a page of common.resource-summary@1 (common.resource-list-result@1), and GET /api/v1/resources/:ovrn reads one by its OVRN (common.resource-summary@1). Every authority serves these for OpenVibe.Services to fan out and merge; Network&#39;s own resources today are its projects, apps, keys and nodes. Planned until Network ships the index; the T2 Fabric offer registry&#39;s public routes, today sharing /api/v1/resources, move to /api/v1/offers in the same release.</p>

GET /api/v1/staff/moderators

List the network's staff (global moderators, admins and the owner) with their roles and staff capabilities from the staff map, as an owning service: to show who moderates, or to route a report.

Capabilities
network.staff.read
Visibility
first-party
Response
application/json network.staff-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.staff.read</strong> (first-party): List the network&#39;s staff (global moderators, admins and the owner) with their roles and staff capabilities from the staff map, as an owning service: to show who moderates, or to route a report. Never grantable to apps.</p>

POST /api/v1/status/incidents

Open and update incidents and maintenance windows on the public status page (openvibe.network/status): the operator's tooling (ovhost incident / maintenance, as the Host principal) and staff admins.

Capabilities
network.status.incident
Visibility
internal
Request body
application/json network.status-incident-request@1
Response
application/json network.status-incident@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.status.incident</strong> (internal): Open and update incidents and maintenance windows on the public status page (openvibe.network/status): the operator&#39;s tooling (ovhost incident / maintenance, as the Host principal) and staff admins. Never grantable to apps.</p>

POST /api/v1/status/incidents/{id}/updates

Open and update incidents and maintenance windows on the public status page (openvibe.network/status): the operator's tooling (ovhost incident / maintenance, as the Host principal) and staff admins.

Capabilities
network.status.incident
Visibility
internal
Parameters
  • id (path, required)
Request body
application/json network.status-incident-request@1
Response
application/json network.status-incident@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.status.incident</strong> (internal): Open and update incidents and maintenance windows on the public status page (openvibe.network/status): the operator&#39;s tooling (ovhost incident / maintenance, as the Host principal) and staff admins. Never grantable to apps.</p>

POST /internal/account-deletions/{deletion_id}/confirmations

Confirm that a deleted account's rows are erased at a service (ADR-033), with counts of what was erased and what is kept (pseudonymised money rows, held media, tombstones).

Capabilities
network.account.deletion.confirm
Visibility
internal
Parameters
  • deletion_id (path, required)
Request body
application/json network.account-deletion-confirmation@1
Response
application/json network.account-data-receipt@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.account.deletion.confirm</strong> (internal): Confirm that a deleted account&#39;s rows are erased at a service (ADR-033), with counts of what was erased and what is kept (pseudonymised money rows, held media, tombstones). A token may only speak for its own service.</p>

POST /internal/account-exports/{export_id}/parts

Push a service's part of a person's data export (ADR-033): the subject's own rows as JSON files, before the export's deadline.

Capabilities
network.account.export.contribute
Visibility
internal
Parameters
  • export_id (path, required)
Request body
application/json network.account-export-part@1
Response
application/json network.account-data-receipt@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.account.export.contribute</strong> (internal): Push a service&#39;s part of a person&#39;s data export (ADR-033): the subject&#39;s own rows as JSON files, before the export&#39;s deadline. A token may only speak for its own service; a second part replaces the first.</p>

GET /internal/blocks?subject=usr_…

Read who a person has blocked and who has blocked them (subjects only), as an owning service honouring platform blocks: Chat for DMs and mentions, Community for replies, notification senders.

Capabilities
network.blocks.read
Visibility
first-party
Response
application/json network.blocks-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.blocks.read</strong> (first-party): Read who a person has blocked and who has blocked them (subjects only), as an owning service honouring platform blocks: Chat for DMs and mentions, Community for replies, notification senders. Never grantable to apps.</p>

POST /internal/coins/credit

Credit OpenCoins (loyalty, never money) to a Network user.

Capabilities
network.coins.credit
Visibility
internal
Request body
application/json network.coins-change-request@1
Response
application/json network.coins-balance-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.coins.credit</strong> (internal): Credit OpenCoins (loyalty, never money) to a Network user. Idempotent by idempotency_key. A token may only act for its own app_id.</p>

POST /internal/coins/debit

Debit OpenCoins; 409 insufficient_funds.

Capabilities
network.coins.debit
Visibility
internal
Request body
application/json network.coins-change-request@1
Response
application/json network.coins-balance-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.coins.debit</strong> (internal): Debit OpenCoins; 409 insufficient_funds. A token may only act for its own app_id.</p>

GET /internal/coins/stats

Read OpenCoins totals (supply, holders, daily flow) for a site's own dashboards; never balances of named people.

Capabilities
network.coins.read
Visibility
internal
Response
application/json network.coins-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.coins.read</strong> (internal): Read OpenCoins totals (supply, holders, daily flow) for a site&#39;s own dashboards; never balances of named people.</p>

POST /internal/coins/transfer

Atomically move OpenCoins between two Network users.

Capabilities
network.coins.transfer
Visibility
internal
Request body
application/json network.coins-transfer-request@1
Response
application/json network.coins-transfer-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.coins.transfer</strong> (internal): Atomically move OpenCoins between two Network users. A token may only act for its own app_id.</p>

PUT /internal/follows/{type}/{target}

Follow or unfollow on a person's behalf, as the first-party product where they pressed the button (Live's follow buttons, ADR-030 step 4).

Capabilities
network.follows.write
Visibility
first-party
Parameters
  • type (path, required)
  • target (path, required)
Request body
application/json network.follow-write-request@1
Response
application/json network.follow-status-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.follows.write</strong> (first-party): Follow or unfollow on a person&#39;s behalf, as the first-party product where they pressed the button (Live&#39;s follow buttons, ADR-030 step 4). The follower is named in the request; Network keeps the graph and emits the events. Never grantable to apps.</p>

DELETE /internal/follows/{type}/{target}

Follow or unfollow on a person's behalf, as the first-party product where they pressed the button (Live's follow buttons, ADR-030 step 4).

Capabilities
network.follows.write
Visibility
first-party
Parameters
  • type (path, required)
  • target (path, required)
  • follower (query, required)
  • notify_email (query)
  • notify_push (query)
Input
network.follow-write-request@1
Response
application/json network.follow-status-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.follows.write</strong> (first-party): Follow or unfollow on a person&#39;s behalf, as the first-party product where they pressed the button (Live&#39;s follow buttons, ADR-030 step 4). The follower is named in the request; Network keeps the graph and emits the events. Never grantable to apps.</p>

GET /internal/identity/resolve

Resolve a subject (or a legacy service-local id) to its canonical SubjectRef and display projection.

Capabilities
identity.subject.resolve
Visibility
first-party
Input
identity.resolve-request@1
Response
application/json identity.resolve-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>identity.subject.resolve</strong> (first-party): Resolve a subject (or a legacy service-local id) to its canonical SubjectRef and display projection.</p>

POST /internal/identity/resolve-batch

Resolve a subject (or a legacy service-local id) to its canonical SubjectRef and display projection.

Capabilities
identity.subject.resolve
Visibility
first-party
Request body
application/json identity.resolve-request@1
Response
application/json identity.resolve-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>identity.subject.resolve</strong> (first-party): Resolve a subject (or a legacy service-local id) to its canonical SubjectRef and display projection.</p>

GET /internal/integrations/github-token

Read the network's GitHub API token (read-only, public repositories), which the owner sets in Network's admin panel or in GITHUB_TOKEN.

Capabilities
network.integration.github.read
Visibility
first-party
Response
application/json network.github-token-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.integration.github.read</strong> (first-party): Read the network&#39;s GitHub API token (read-only, public repositories), which the owner sets in Network&#39;s admin panel or in GITHUB_TOKEN. Used by OpenVibe.Blog&#39;s network changelog so its GitHub calls do not share the host&#39;s anonymous rate limit. Never granted to apps or mods.</p>

GET /internal/mods

Register a mod install's principal (mod:<mod_id>, ADR-013) and approve or revoke the subset of its manifest's requested capabilities, so a mod's grants live in Network like any other principal's.

Capabilities
mods.grant.manage
Visibility
first-party
Parameters
  • manifest (query, required) — The mod's manifest, mods.mod-manifest@1.
  • approve (query) — Approved at install; each must be requested by the manifest.
  • actor (query) — Who installed it at the runtime (a subject or 'games'), for the audit row.
Input
network.mod-install-request@1
Response
application/json network.mod-principal@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>mods.grant.manage</strong> (first-party): Register a mod install&#39;s principal (mod:&lt;mod_id&gt;, ADR-013) and approve or revoke the subset of its manifest&#39;s requested capabilities, so a mod&#39;s grants live in Network like any other principal&#39;s. Only the runtime that registered a mod (its owner) changes it; Network staff (staff.games.manage) can too. Every change is network.mod.grants_changed.</p>

POST /internal/mods

Register a mod install's principal (mod:<mod_id>, ADR-013) and approve or revoke the subset of its manifest's requested capabilities, so a mod's grants live in Network like any other principal's.

Capabilities
mods.grant.manage
Visibility
first-party
Request body
application/json network.mod-install-request@1
Response
application/json network.mod-principal@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>mods.grant.manage</strong> (first-party): Register a mod install&#39;s principal (mod:&lt;mod_id&gt;, ADR-013) and approve or revoke the subset of its manifest&#39;s requested capabilities, so a mod&#39;s grants live in Network like any other principal&#39;s. Only the runtime that registered a mod (its owner) changes it; Network staff (staff.games.manage) can too. Every change is network.mod.grants_changed.</p>

GET /internal/mods/{mod_id}

Register a mod install's principal (mod:<mod_id>, ADR-013) and approve or revoke the subset of its manifest's requested capabilities, so a mod's grants live in Network like any other principal's.

Capabilities
mods.grant.manage
Visibility
first-party
Parameters
  • mod_id (path, required)
  • manifest (query, required) — The mod's manifest, mods.mod-manifest@1.
  • approve (query) — Approved at install; each must be requested by the manifest.
  • actor (query) — Who installed it at the runtime (a subject or 'games'), for the audit row.
Input
network.mod-install-request@1
Response
application/json network.mod-principal@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>mods.grant.manage</strong> (first-party): Register a mod install&#39;s principal (mod:&lt;mod_id&gt;, ADR-013) and approve or revoke the subset of its manifest&#39;s requested capabilities, so a mod&#39;s grants live in Network like any other principal&#39;s. Only the runtime that registered a mod (its owner) changes it; Network staff (staff.games.manage) can too. Every change is network.mod.grants_changed.</p>

POST /internal/mods/{mod_id}/grants

Register a mod install's principal (mod:<mod_id>, ADR-013) and approve or revoke the subset of its manifest's requested capabilities, so a mod's grants live in Network like any other principal's.

Capabilities
mods.grant.manage
Visibility
first-party
Parameters
  • mod_id (path, required)
Request body
application/json network.mod-install-request@1
Response
application/json network.mod-principal@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>mods.grant.manage</strong> (first-party): Register a mod install&#39;s principal (mod:&lt;mod_id&gt;, ADR-013) and approve or revoke the subset of its manifest&#39;s requested capabilities, so a mod&#39;s grants live in Network like any other principal&#39;s. Only the runtime that registered a mod (its owner) changes it; Network staff (staff.games.manage) can too. Every change is network.mod.grants_changed.</p>

POST /internal/mods/{mod_id}/revoke

Register a mod install's principal (mod:<mod_id>, ADR-013) and approve or revoke the subset of its manifest's requested capabilities, so a mod's grants live in Network like any other principal's.

Capabilities
mods.grant.manage
Visibility
first-party
Parameters
  • mod_id (path, required)
Request body
application/json network.mod-install-request@1
Response
application/json network.mod-principal@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>mods.grant.manage</strong> (first-party): Register a mod install&#39;s principal (mod:&lt;mod_id&gt;, ADR-013) and approve or revoke the subset of its manifest&#39;s requested capabilities, so a mod&#39;s grants live in Network like any other principal&#39;s. Only the runtime that registered a mod (its owner) changes it; Network staff (staff.games.manage) can too. Every change is network.mod.grants_changed.</p>

GET /internal/modules/{namespace}/{subject}

Read a subject's user-module record in a granted namespace.

Capabilities
network.modules.read
Visibility
first-party
Parameters
  • namespace (path, required)
  • subject (path, required)
Response
application/json modules.module-record@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.modules.read</strong> (first-party): Read a subject&#39;s user-module record in a granted namespace.</p>

PUT /internal/modules/{namespace}/{subject}

Write a subject's record in a namespace the service owns (If-Match revision).

Capabilities
network.modules.write
Visibility
first-party
Parameters
  • namespace (path, required)
  • subject (path, required)
Request body
application/json network.module-write-request@1
Response
application/json modules.module-record@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.modules.write</strong> (first-party): Write a subject&#39;s record in a namespace the service owns (If-Match revision).</p>

POST /internal/node-pairings

A service mints one-time pairing codes for its users' machines and reads or revokes the node principals it paired.

Capabilities
network.node.manage
Visibility
internal
Response
—
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.manage</strong> (internal): A service mints one-time pairing codes for its users&#39; machines and reads or revokes the node principals it paired. Never grantable to apps.</p>

GET /internal/node-principals/{id}

A service mints one-time pairing codes for its users' machines and reads or revokes the node principals it paired.

Capabilities
network.node.manage
Visibility
internal
Parameters
  • id (path, required)
Response
—
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.manage</strong> (internal): A service mints one-time pairing codes for its users&#39; machines and reads or revokes the node principals it paired. Never grantable to apps.</p>

POST /internal/node-principals/{id}/revoke

A service mints one-time pairing codes for its users' machines and reads or revokes the node principals it paired.

Capabilities
network.node.manage
Visibility
internal
Parameters
  • id (path, required)
Response
—
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.manage</strong> (internal): A service mints one-time pairing codes for its users&#39; machines and reads or revokes the node principals it paired. Never grantable to apps.</p>

POST /internal/nodes/report

Report the machines of the platform (roles, region-level location, beacon, health) to the node registry, which the geo API and every location-aware product read (ADR-034 section 12).

Capabilities
network.node.report
Visibility
internal
Request body
application/json network.node-report-request@1
Response
application/json network.node-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.report</strong> (internal): Report the machines of the platform (roles, region-level location, beacon, health) to the node registry, which the geo API and every location-aware product read (ADR-034 section 12).</p>

POST /internal/notifications/*

Create a notification for Network users (ids already translated).

Capabilities
network.notifications.push
Visibility
internal
Request body
application/json network.notification-push-request@1
Response
application/json network.notification-push-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.notifications.push</strong> (internal): Create a notification for Network users (ids already translated).</p>

POST /internal/operator/alerts

Report the complete set of alerts firing on the production host, so Network pages the operator (the owner account) when an alert opens, once a day while it stays open, and when it resolves.

Capabilities
network.operator.alert
Visibility
internal
Request body
application/json network.operator-alerts-request@1
Response
application/json network.operator-alerts-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.operator.alert</strong> (internal): Report the complete set of alerts firing on the production host, so Network pages the operator (the owner account) when an alert opens, once a day while it stays open, and when it resolves.</p>

GET /internal/projects/{project_id}

Read a developer project as an owning service: its apps and their revocation state, approved grants, environment policy and quotas.

Capabilities
network.project.read
Visibility
first-party
Parameters
  • project_id (path, required)
Response
application/json network.project-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.project.read</strong> (first-party): Read a developer project as an owning service: its apps and their revocation state, approved grants, environment policy and quotas. Services use it to key tenancy by project_id and to enforce the quotas Network records (ADR-014). Never grantable to apps.</p>

POST /internal/registry/instances/report

Report the machines of the platform (roles, region-level location, beacon, health) to the node registry, which the geo API and every location-aware product read (ADR-034 section 12).

Capabilities
network.node.report
Visibility
internal
Request body
application/json network.node-report-request@1
Response
application/json network.node-list-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.node.report</strong> (internal): Report the machines of the platform (roles, region-level location, beacon, health) to the node registry, which the geo API and every location-aware product read (ADR-034 section 12).</p>

POST /internal/resources/report

Report the complete set of a source's resource offers (platform.resource-offer@1) to the registry; offers absent from a later report of the same source are marked down.

Capabilities
network.resource.report
Visibility
internal
Response
—
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.resource.report</strong> (internal): Report the complete set of a source&#39;s resource offers (platform.resource-offer@1) to the registry; offers absent from a later report of the same source are marked down.</p>

GET /internal/url-registry/resolved

Read the resolved URL registry (every site's public and internal base URLs) that the shared navbar and service clients use.

Capabilities
network.registry.read
Visibility
internal
Response
application/json network.registry-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.registry.read</strong> (internal): Read the resolved URL registry (every site&#39;s public and internal base URLs) that the shared navbar and service clients use.</p>

POST /internal/user-avatar

A site reports that a person changed their avatar on it (Live's avatar picker); Network adopts it as the account's avatar and fans it out to the other sites.

Capabilities
network.avatar.write
Visibility
internal
Request body
application/json network.avatar-write-request@1
Response
application/json network.avatar-write-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>network.avatar.write</strong> (internal): A site reports that a person changed their avatar on it (Live&#39;s avatar picker); Network adopts it as the account&#39;s avatar and fans it out to the other sites. The URL must be on openvibe.media.</p>