---
title: "Update Facts"
method: POST
path: "/facts/update"
tags: ["Brand Perception"]
---

# Update Facts

`POST /facts/update`

## Request

- Base URL: `https://api.peec.ai/customer/v1`
- URL: `https://api.peec.ai/customer/v1/facts/update`
- Auth: one of:
  - API key in header `X-API-Key`
  - API key in query parameter `api_key`
  - HTTP bearer

Change the wording and/or active state of facts by id. Each item sets `text`, `is_active`, or both. Changing the wording keeps the old wording for verdicts already judged against it. Setting `is_active` to false keeps the fact listed but excludes it from future fact-checking. Returns per-item results { updated, skipped, rejected }; the batch never fails as a whole. Skip reasons: not_found. Rejection reasons: duplicate_id (the same fact appears twice in the request), plan_limit (activating it would exceed the plan's `fact_limit`).

## Request body

- object
  - `project_id` string: Required if using a company api key
  - `facts` object[], required
    - `fact_id` string, uuid, required: The fact ID returned by List Facts.
    - `text` string: Replacement wording. Earlier verdicts keep the wording they were judged against.
    - `is_active` boolean: Whether Peec should use the fact in future fact-checking.

## Response `200`

Per-item update results

- object: Per-item update results
  - `updated` object[], required
    - `id` string, uuid, required
    - `text` string, required: The statement Peec checks AI claims against.
    - `origin` 'website' | 'manual', required: How the fact was added: `manual` by a person, `website` extracted from the project's website.
    - `is_active` boolean, required: Whether Peec uses the fact in future fact-checking. An inactive fact stays listed.
    - `edited_at` string, date-time, nullable, required: When the wording was last changed, or null if never edited.
    - `created_at` string, date-time, required
  - `skipped` object[], required
    - `fact_id` string, uuid, required
    - `reason` 'not_found', required
  - `rejected` object[], required
    - `fact_id` string, uuid, required
    - `reason` 'duplicate_id' | 'no_changes' | 'plan_limit', required
    - `message` string, required

## Changes

- **2026-11-03** `9fdffdff48a5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/peec/apis/peec-ai-customer-api/changes/facts/update/post.md)

---

[API](https://skmtc.dev/peec/apis/peec-ai-customer-api.md) - [All operations](https://skmtc.dev/peec/apis/peec-ai-customer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/peec/apis/peec-ai-customer-api/revisions/9d774600c8eb?raw)
