NetworkFollowListResult network.follow-list-result@1
Generated at from
openvibe-contracts v0.76.0 and
openvibe-sdk v0.20.1.
- Version
- 1.0.0
- Owner
- network
- Visibility
- first-party
- Status
- active
- Compatibility
- backward
- Decision
- ADR-030
- Schema
https://openvibe.network/contracts/network/follow-list-result.v1.json
network.follow-list-result@1 (ADR-030): a page of follows on OpenVibe.Network, newest first. GET /api/v1/me/follows (what the caller follows), GET /api/v1/follows/:type/:target/followers (who follows a target: the target's owner, or a service with network.follows.read). Lists are never public; counts are.
Fields
| Field | Type | Required | Description | Constraints |
|---|---|---|---|---|
items | array of object | yes |
| |
items[].follower | string | yes |
| |
items[].target_type | enum | yes |
| |
items[].target_id | string | yes |
| |
items[].notify_email | boolean | |||
items[].notify_push | boolean | |||
items[].created_at | string | yes |
| |
next_cursor | string | null | yes |
|
Examples
From the contract's own test fixtures: valid ones validate, rejected ones must fail.
Valid: page
{
"items": [
{
"follower": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"target_type": "channel",
"target_id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR",
"notify_email": true,
"notify_push": true,
"created_at": "2026-09-20T10:00:00Z"
}
],
"next_cursor": null
}Rejected: leaks-username
{
"items": [
{
"follower": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ",
"target_type": "channel",
"target_id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPR",
"created_at": "2026-09-20T10:00:00Z",
"username": "alice"
}
],
"next_cursor": null
}Validate
const contracts = require('openvibe-contracts');
contracts.validate('network.follow-list-result@1', value); // { valid, errors: [{ path, message }] }