Send your content to /fingerprint/embed to extract the TKG and embed the watermark.
curl -X POST "https://api.factagora.com/api/v1/fingerprint/embed" \ -H "Authorization: Bearer fag_your_api_key" \ -H "Content-Type: application/json" \ -d '{ "content": "The European Central Bank raised interest rates by 25 basis points on Thursday, citing persistent core inflation in the eurozone. Analysts at Goldman Sachs expect one more hike before a pause in Q4.", "content_type": "news", "metadata": { "author_id": "editor_jane", "published_at": "2024-06-15T08:00:00Z", "source_id": "article_12345" } }'
{ "watermarked_content": "The European Central Bank raised interest rates by 25 basis points...", "fingerprint_id": "fp_l1p8OPCwGhvu", "tkg_snapshot": { "entities": ["European Central Bank", "Interest rate", "Goldman Sachs"], "timeseries": ["2024-06-15"], "relations": [ { "from": "European Central Bank", "rel": "raises", "to": "Interest rate" } ], "argument_map": [ { "premise": "Persistent core inflation in the eurozone", "evidence": "ECB policy meeting decision", "conclusion": "Interest rates raised by 25 basis points" } ] }, "embed_timestamp": "2024-06-15T08:01:23.456Z", "meta": { "executionTimeMs": 1234 }}
Distribute watermarked_content, not the original. The watermarked version looks identical to the original but contains invisible zero-width characters that enable watermark-based detection.
Store fingerprint_id alongside your internal article ID. You’ll need it for re-scoring and reporting.
Notice that the query text is completely rewritten, “ECB hiked rates 25bp” vs “European Central Bank raised interest rates by 25 basis points”, yet the API matched it with 87% confidence by comparing the underlying causal structure.