Skip to Content
DocumentationIntegrations and AccessAPI Management

Third-Party API

This page documents the API Key endpoints under the /tp group. They are designed for backend integrations, automation workflows, and external systems, and they cover document ingestion, section processing, knowledge graph, and content-generation flows.

Every endpoint on this page requires the API-KEY request header.

HeaderValue
API-KEYyour api key

API keys can be created in Revornix via Avatar (bottom-left) -> Account -> APIKey Management.

If you do not want to hand-write HTTP requests, start with Python SDK and CLI or OpenClaw Skill.

Common Conventions

  • All routes start with /tp.
  • Most endpoints use POST with a JSON request body.
  • /tp/file/upload uses multipart/form-data.
  • /tp/document/create reads the optional X-User-Timezone header to calculate daily API collection limits and monthly summary dates in the user’s timezone.
  • /tp/document/create always persists from_plat as api on the backend, so clients do not need to send it.

Integration flow sketch

Third-party API integration path
Step 1
External system sends a request

The caller uses an API-KEY with the /tp endpoint group.

Step 2
Upload or create content

Upload a file first or create documents and sections directly.

Step 3
API stores state and tasks

The service persists state and queues async follow-up work.

Step 4
Worker runs workflows

Document and section processing continue in the background.

Step 5
Poll for results

The caller uses detail, search, or status endpoints to fetch outputs.

Upload Endpoint

POST /tp/file/upload

Upload a file into the calling user’s default file system, then reference that path from /tp/document/create when creating a file document.

Parameters

ParameterTypeRequiredDescription
fileFileYesUploaded file
file_pathstringYesTarget path in the default file system
content_typestringYesMIME type

Requirements

  • The calling user must already have a default file system configured.
  • Both file_path and content_type are required fields.

Example

import httpx client = httpx.Client() headers = { "API-KEY": "your api key" } files = { "file": ("example.md", open("example.md", "rb"), "text/markdown") } data = { "file_path": "/files/example.md", "content_type": "text/markdown" } response = client.post( "http://localhost:8001/tp/file/upload", headers=headers, files=files, data=data, )

After upload, the usual next step is to call /tp/document/create and pass the uploaded file_path as the file document’s file_name.

Section Endpoints

Core write endpoints

RouteDescription
POST /tp/section/createCreate a section
POST /tp/section/updateUpdate section metadata and processing config
POST /tp/section/deleteDelete a section
POST /tp/section/process/triggerTrigger one section processing run manually
POST /tp/section/document/retryRetry integration for a section document
POST /tp/section/podcast/generateGenerate a section podcast
POST /tp/section/ppt/generateGenerate a section PPT
POST /tp/section/publishPublish a section
POST /tp/section/republishRepublish a section

Query and interaction endpoints

RouteDescription
POST /tp/section/detailGet section detail
POST /tp/section/dateGet date-based section info
POST /tp/section/documentsGet paginated section documents
POST /tp/section/askAsk AI about a section
POST /tp/section/publish/getGet section publish status and publish info
POST /tp/section/mine/searchSearch sections I can access
POST /tp/section/mine/allGet all of my sections in a compact list
POST /tp/section/subscribedGet sections I subscribed to
POST /tp/section/public/searchSearch public sections
POST /tp/section/user/searchSearch sections owned by a user

Comment endpoints

RouteDescription
POST /tp/section/comment/createCreate a section comment
POST /tp/section/comment/searchSearch section comments with pagination
POST /tp/section/comment/deleteDelete a section comment

Label endpoints

RouteDescription
POST /tp/section/label/createCreate a section label
POST /tp/section/label/listList section labels for the calling user
POST /tp/section/label/deleteDelete section labels

POST /tp/section/create

Create a new section. This follows the same section processing model as the app, including trigger strategy, auto publish, auto podcast, and auto illustration settings.

Key fields

ParameterTypeRequiredDescription
titlestringYesSection title
descriptionstringYesSection description
coverstringNoSection cover
labelsint[]YesSection label IDs
auto_publishbooleanNoWhether to auto publish
auto_podcastbooleanNoWhether to auto-generate a podcast
auto_illustrationbooleanNoWhether to auto-generate illustrations
process_task_trigger_typeintYesProcessing trigger type, commonly scheduled or update-event based
process_task_trigger_schedulerstringNoCron expression for scheduled processing

Example

import httpx client = httpx.Client() headers = { "API-KEY": "your api key" } response = client.post( "http://localhost:8001/tp/section/create", headers=headers, json={ "title": "AI Product Watch", "description": "Track news and deeper analysis around AI products", "cover": "/covers/ai-weekly.png", "labels": [1, 2], "auto_publish": True, "auto_podcast": True, "auto_illustration": True, "process_task_trigger_type": 1 }, )

POST /tp/section/ppt/generate

Generate PPT output for a section. This works well after the section Markdown is ready and you want presentation-ready slides.

Common field

ParameterTypeRequiredDescription
section_idintYesTarget section ID

POST /tp/section/comment/search

Returns paginated section comments, which works well for comment feeds and moderation tools.

Common fields

ParameterTypeRequiredDescription
section_idintYesTarget section ID
startintNoCursor start
limitintNoPage size
keywordstringNoKeyword filter

Document Endpoints

Label endpoints

RouteDescription
POST /tp/document/label/listList document labels
POST /tp/document/label/createCreate a document label
POST /tp/document/label/deleteDelete document labels

Document write and processing endpoints

RouteDescription
POST /tp/document/createCreate a document
POST /tp/document/updateUpdate document metadata
POST /tp/document/deleteDelete documents
POST /tp/document/markdown/transformTrigger document Markdown conversion
POST /tp/document/ai/summaryGenerate AI summary
POST /tp/document/embeddingGenerate document embeddings
POST /tp/document/transcribeTranscribe an audio document
POST /tp/document/graph/generateGenerate a document graph
POST /tp/document/podcast/generateGenerate a document podcast

Document query and search endpoints

RouteDescription
POST /tp/document/detailGet document detail
POST /tp/document/askAsk AI about a document
POST /tp/document/month/summaryGet document month summary
POST /tp/document/unread/searchSearch unread documents
POST /tp/document/recent/searchSearch recently read documents
POST /tp/document/star/searchSearch starred documents
POST /tp/document/search/mineSearch my documents
POST /tp/document/vector/searchSearch relevant chunks from the knowledge vector index

Note endpoints

RouteDescription
POST /tp/document/note/createCreate a document note
POST /tp/document/note/searchSearch document notes with pagination
POST /tp/document/note/deleteDelete document notes

POST /tp/document/create

Create a document using the same ingestion and processing flow as the app. The service always records from_plat as api.

Key fields

ParameterTypeRequiredDescription
categoryintYesDocument type
sectionsint[]YesTarget section IDs
labelsint[]YesDocument label IDs
titlestringNoDocument title
descriptionstringNoDocument description
coverstringNoDocument cover
contentstringConditionally requiredRequired for quick-note documents
urlstringConditionally requiredRequired for website documents
file_namestringConditionally requiredRequired for file documents and should match the uploaded file_path
auto_summarybooleanNoWhether to auto-generate summary
auto_podcastbooleanNoWhether to auto-generate podcast
auto_tagbooleanNoWhether to auto-tag

Category mapping

categoryMeaning
0File document
1Website document
2Quick note document
3Audio document

Requirements

  • Clients do not need to send from_plat.
  • The service records from_plat as api.
  • On official deployments, this endpoint checks API document collection limits against the active plan.
  • On official deployments, website and file documents may also hit extra entitlement checks after higher accumulated counts.
  • If your workflow depends on day-based quota calculation, pass X-User-Timezone explicitly.

Example

import httpx client = httpx.Client() headers = { "API-KEY": "your api key", "X-User-Timezone": "Asia/Shanghai", } response = client.post( "http://localhost:8001/tp/document/create", headers=headers, json={ "category": 1, "url": "https://example.com/article", "sections": [12], "labels": [3], "auto_summary": True, "auto_podcast": False, "auto_tag": True }, )

POST /tp/document/vector/search

Search the user’s knowledge vector store for the most relevant chunks to a question. This works well for retrieval augmentation and external question-answering orchestration.

POST /tp/document/note/search

Returns paginated note results with optional keyword filtering, which is useful for reading workspaces and annotation-style views.

Graph Endpoints

RouteDescription
POST /tp/graph/documentGet the graph for one document
POST /tp/graph/sectionGet the graph for one section
POST /tp/graph/searchGet the calling user’s global graph

These endpoints return a unified graph response structure that can be used directly for knowledge graph visualization, node exploration, and graph browsers.

Last updated on