OpenVibe.News API

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Server https://openvibe.news. 26 routes performing 11 capabilities. OpenAPI 3.1 document.

GET /api/v1/clusters

Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.

Capabilities
news.cluster.read
Visibility
first-party
Response
application/json news.cluster-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.read</strong> (first-party): Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.</p>

GET /api/v1/clusters/{id}

Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.

Capabilities
news.cluster.read
Visibility
first-party
Parameters
  • id (path, required)
Response
application/json news.cluster-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.read</strong> (first-party): Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.</p>

POST /api/v1/clusters/{id}/merge

Merge clusters, split items into a new cluster, and reverse a merge or split.

Capabilities
news.cluster.manage
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.cluster-manage-request@1
Response
application/json news.cluster-manage-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.manage</strong> (first-party): Merge clusters, split items into a new cluster, and reverse a merge or split. Every change is audited with exactly which items moved.</p>

POST /api/v1/clusters/{id}/split

Merge clusters, split items into a new cluster, and reverse a merge or split.

Capabilities
news.cluster.manage
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.cluster-manage-request@1
Response
application/json news.cluster-manage-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.manage</strong> (first-party): Merge clusters, split items into a new cluster, and reverse a merge or split. Every change is audited with exactly which items moved.</p>

POST /api/v1/clusters/audit/{auditId}/reverse

Merge clusters, split items into a new cluster, and reverse a merge or split.

Capabilities
news.cluster.manage
Visibility
first-party
Parameters
  • auditId (path, required)
Request body
application/json news.cluster-manage-request@1
Response
application/json news.cluster-manage-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.manage</strong> (first-party): Merge clusters, split items into a new cluster, and reverse a merge or split. Every change is audited with exactly which items moved.</p>

GET /api/v1/ingest

Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.

Capabilities
news.cluster.read
Visibility
first-party
Response
application/json news.cluster-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.read</strong> (first-party): Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.</p>

GET /api/v1/source-items/{id}

Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.

Capabilities
news.cluster.read
Visibility
first-party
Parameters
  • id (path, required)
Response
application/json news.cluster-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.cluster.read</strong> (first-party): Read clusters (members, the stored explanation of every membership, merge/split history), source items with their dedupe outcome, and ingestion runs and source health.</p>

POST /api/v1/stories

Open a story from a cluster (the cluster's live, non-duplicate source items become its first sources).

Capabilities
news.story.create
Visibility
first-party
Request body
application/json news.story-create-request@1
Response
application/json news.story-create-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.create</strong> (first-party): Open a story from a cluster (the cluster&#39;s live, non-duplicate source items become its first sources). Editors only: the service acts for an editor named in X-OV-Subject.</p>

GET /api/v1/stories/{id}

Read any story, including drafts, revisions, diffs, publishability problems and editorial flags.

Capabilities
news.story.read
Visibility
first-party
Parameters
  • id (path, required)
Response
application/json news.story-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.read</strong> (first-party): Read any story, including drafts, revisions, diffs, publishability problems and editorial flags. Published stories need no capability.</p>

POST /api/v1/stories/{id}/ai-drafts

Save a new immutable revision (headline and paragraphs that each cite attached sources, with the source table, timeline and perspectives snapshotted), add correction/update notes, or request an OpenVi

Capabilities
news.story.revise
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.story-revise-request@1
Response
application/json news.story-revise-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.revise</strong> (first-party): Save a new immutable revision (headline and paragraphs that each cite attached sources, with the source table, timeline and perspectives snapshotted), add correction/update notes, or request an OpenVibe.AI draft. With X-OV-Origin: ai the revision is AI-generated and cannot be published until a person approves it.</p>

GET /api/v1/stories/{id}/diff

Read any story, including drafts, revisions, diffs, publishability problems and editorial flags.

Capabilities
news.story.read
Visibility
first-party
Parameters
  • id (path, required)
Response
application/json news.story-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.read</strong> (first-party): Read any story, including drafts, revisions, diffs, publishability problems and editorial flags. Published stories need no capability.</p>

POST /api/v1/stories/{id}/flags

Save a new immutable revision (headline and paragraphs that each cite attached sources, with the source table, timeline and perspectives snapshotted), add correction/update notes, or request an OpenVi

Capabilities
news.story.revise
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.story-revise-request@1
Response
application/json news.story-revise-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.revise</strong> (first-party): Save a new immutable revision (headline and paragraphs that each cite attached sources, with the source table, timeline and perspectives snapshotted), add correction/update notes, or request an OpenVibe.AI draft. With X-OV-Origin: ai the revision is AI-generated and cannot be published until a person approves it.</p>

POST /api/v1/stories/{id}/perspectives

Create or remove editor-labelled perspective groupings on a story and assign its sources to them.

Capabilities
news.perspective.update
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.perspective-update-request@1
Response
application/json news.perspective-update-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.perspective.update</strong> (first-party): Create or remove editor-labelled perspective groupings on a story and assign its sources to them. Labels are written by editors, never generated.</p>

DELETE /api/v1/stories/{id}/perspectives/{pid}

Create or remove editor-labelled perspective groupings on a story and assign its sources to them.

Capabilities
news.perspective.update
Visibility
first-party
Parameters
  • id (path, required)
  • pid (path, required)
Input
news.perspective-update-request@1
Response
application/json news.perspective-update-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.perspective.update</strong> (first-party): Create or remove editor-labelled perspective groupings on a story and assign its sources to them. Labels are written by editors, never generated.</p>

POST /api/v1/stories/{id}/publish

Publish a revision (refused while it cites no source, rests on a source removed upstream or detached, or is AI-generated/AI-assisted without a person's approval), or unpublish a story.

Capabilities
news.story.publish
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.story-publish-request@1
Response
application/json news.story-publish-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.publish</strong> (first-party): Publish a revision (refused while it cites no source, rests on a source removed upstream or detached, or is AI-generated/AI-assisted without a person&#39;s approval), or unpublish a story. Publishing resolves the upstream flags the revision answers and publishes pending correction/update notes.</p>

POST /api/v1/stories/{id}/retract

Retract a published story with a public note.

Capabilities
news.story.retract
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.story-retract-request@1
Response
application/json news.story-retract-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.retract</strong> (first-party): Retract a published story with a public note. The story stays at its URL with the retraction notice, becomes noindex and leaves sitemaps and Search. Final.</p>

GET /api/v1/stories/{id}/revisions

Read any story, including drafts, revisions, diffs, publishability problems and editorial flags.

Capabilities
news.story.read
Visibility
first-party
Parameters
  • id (path, required)
Response
application/json news.story-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.read</strong> (first-party): Read any story, including drafts, revisions, diffs, publishability problems and editorial flags. Published stories need no capability.</p>

POST /api/v1/stories/{id}/revisions

Save a new immutable revision (headline and paragraphs that each cite attached sources, with the source table, timeline and perspectives snapshotted), add correction/update notes, or request an OpenVi

Capabilities
news.story.revise
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.story-revise-request@1
Response
application/json news.story-revise-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.revise</strong> (first-party): Save a new immutable revision (headline and paragraphs that each cite attached sources, with the source table, timeline and perspectives snapshotted), add correction/update notes, or request an OpenVibe.AI draft. With X-OV-Origin: ai the revision is AI-generated and cannot be published until a person approves it.</p>

GET /api/v1/stories/{id}/revisions/{n}

Read any story, including drafts, revisions, diffs, publishability problems and editorial flags.

Capabilities
news.story.read
Visibility
first-party
Parameters
  • id (path, required)
  • n (path, required)
Response
application/json news.story-read-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.read</strong> (first-party): Read any story, including drafts, revisions, diffs, publishability problems and editorial flags. Published stories need no capability.</p>

POST /api/v1/stories/{id}/sources

Attach a source item to a story's source table (numbered, never renumbered) or detach it.

Capabilities
news.source.attach
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.source-attach-request@1
Response
application/json news.source-attach-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.source.attach</strong> (first-party): Attach a source item to a story&#39;s source table (numbered, never renumbered) or detach it.</p>

DELETE /api/v1/stories/{id}/sources/{item}

Attach a source item to a story's source table (numbered, never renumbered) or detach it.

Capabilities
news.source.attach
Visibility
first-party
Parameters
  • id (path, required)
  • item (path, required)
Input
news.source-attach-request@1
Response
application/json news.source-attach-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.source.attach</strong> (first-party): Attach a source item to a story&#39;s source table (numbered, never renumbered) or detach it.</p>

PUT /api/v1/stories/{id}/sources/{item}/perspective

Create or remove editor-labelled perspective groupings on a story and assign its sources to them.

Capabilities
news.perspective.update
Visibility
first-party
Parameters
  • id (path, required)
  • item (path, required)
Request body
application/json news.perspective-update-request@1
Response
application/json news.perspective-update-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.perspective.update</strong> (first-party): Create or remove editor-labelled perspective groupings on a story and assign its sources to them. Labels are written by editors, never generated.</p>

POST /api/v1/stories/{id}/timeline

Add or remove a story's timeline entries; each entry has a date the source states and rests on one attached source.

Capabilities
news.timeline.update
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.timeline-update-request@1
Response
application/json news.timeline-update-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.timeline.update</strong> (first-party): Add or remove a story&#39;s timeline entries; each entry has a date the source states and rests on one attached source.</p>

DELETE /api/v1/stories/{id}/timeline/{eid}

Add or remove a story's timeline entries; each entry has a date the source states and rests on one attached source.

Capabilities
news.timeline.update
Visibility
first-party
Parameters
  • id (path, required)
  • eid (path, required)
Input
news.timeline-update-request@1
Response
application/json news.timeline-update-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.timeline.update</strong> (first-party): Add or remove a story&#39;s timeline entries; each entry has a date the source states and rests on one attached source.</p>

POST /api/v1/stories/{id}/unpublish

Publish a revision (refused while it cites no source, rests on a source removed upstream or detached, or is AI-generated/AI-assisted without a person's approval), or unpublish a story.

Capabilities
news.story.publish
Visibility
first-party
Parameters
  • id (path, required)
Request body
application/json news.story-publish-request@1
Response
application/json news.story-publish-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.story.publish</strong> (first-party): Publish a revision (refused while it cites no source, rests on a source removed upstream or detached, or is AI-generated/AI-assisted without a person&#39;s approval), or unpublish a story. Publishing resolves the upstream flags the revision answers and publishes pending correction/update notes.</p>

POST /api/v1/topics

Add a canonical topic (slug and name).

Capabilities
news.topic.manage
Visibility
first-party
Request body
application/json news.topic-manage-request@1
Response
application/json news.topic-manage-result@1
Errors
errors.problem@1 (application/problem+json)
Description<p><strong>news.topic.manage</strong> (first-party): Add a canonical topic (slug and name).</p>