const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({workflow_id: '<string>'})
};
fetch('https://api.factify.com/v1/plans', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"workflow_id": "<string>",
"claim_slots": [
{
"rubric_id": "<string>",
"slot_name": "<string>",
"claim_id": "<string>",
"substitution_value": "<string>"
}
],
"submissions": [
{
"id": "<string>",
"plan_id": "<string>",
"filename": "<string>",
"mime_type": "<string>",
"added_at": "2023-11-07T05:31:56Z",
"record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"created_at": "2023-11-07T05:31:56Z",
"open_conflicts_count": 1,
"total_conflicts_count": 1,
"locked_at": "2023-11-07T05:31:56Z",
"body_md_resolved": "<string>"
}Open plan
Instantiate a new plan from a workflow.
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({workflow_id: '<string>'})
};
fetch('https://api.factify.com/v1/plans', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "<string>",
"workflow_id": "<string>",
"claim_slots": [
{
"rubric_id": "<string>",
"slot_name": "<string>",
"claim_id": "<string>",
"substitution_value": "<string>"
}
],
"submissions": [
{
"id": "<string>",
"plan_id": "<string>",
"filename": "<string>",
"mime_type": "<string>",
"added_at": "2023-11-07T05:31:56Z",
"record_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
],
"created_at": "2023-11-07T05:31:56Z",
"open_conflicts_count": 1,
"total_conflicts_count": 1,
"locked_at": "2023-11-07T05:31:56Z",
"body_md_resolved": "<string>"
}Documentation Index
Fetch the complete documentation index at: https://developers.factify.com/llms.txt
Use this file to discover all available pages before exploring further.
Authorizations
Bearer authentication using a factapi-issued API key
(ffy_<env>_<base32_uuid><base62_random>). Cookie-based
sessions are accepted automatically by user-facing endpoints
but are not surfaced as an OpenAPI auth scheme.
Body
Workflow TypeID to instantiate.
Response
Plan opened.
Plan TypeID (pln_…)
Workflow TypeID.
Server-computed activity state, derived from submission states: IDLE — no submission is currently ingesting. PROCESSING — at least one submission is still ingesting.
Plan lock status is conveyed separately by locked_at
(null = unlocked, set = locked).
IDLE, PROCESSING One entry per rubric in the parent workflow, in creation order.
Show child attributes
Show child attributes
All submissions associated with this plan.
Show child attributes
Show child attributes
Number of claim_conflicts in open status whose new claim was
submitted to this plan. Drives the runs-list "N conflicts" badge
and the per-run conflict tab count without forcing the UI to
N+1 on /v1/conflicts per plan.
x >= 0Total number of claim_conflicts (open + accepted + rejected) whose new claim was submitted to this plan. Backs resolved-since-detection telemetry and the "0/3 unresolved" style breakdown.
x >= 0When the plan was locked. Null for unlocked plans.
Workflow body_md with claim values substituted. Null until the plan is locked.