Skip to main content
POST
/
api
/
v1
/
fingerprint
/
detect
Fingerprint Detect
curl --request POST \
  --url https://ca-factagora-search.kindsea-5b0dfb7c.eastus.azurecontainerapps.io/api/v1/fingerprint/detect \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "content": "<string>",
  "top_k": 5,
  "min_score": 0.3,
  "candidate_limit": 1000,
  "filters": {
    "author_id": "<string>",
    "date_from": "<string>",
    "date_to": "<string>",
    "content_type": "news"
  }
}
'
{
  "match_found": true,
  "confidence_score": 0.5,
  "query_fingerprint_id": "<string>",
  "matches": [
    {
      "fingerprint_id": "<string>",
      "content_type": "news",
      "metadata": {},
      "embed_timestamp": "2023-11-07T05:31:56Z",
      "score": 0.5,
      "similarity_breakdown": {
        "entity_match": 0.5,
        "timeseries_match": 0.5,
        "causal_pattern_match": 0.5
      },
      "overlap": {
        "entities": [
          "<string>"
        ],
        "timeseries": [
          "<string>"
        ],
        "relations": [
          "<string>"
        ]
      },
      "watermark_match": true,
      "watermark_correlation": 0.5
    }
  ],
  "meta": {
    "scanned": 123,
    "executionTimeMs": 123,
    "weights": {
      "entity": 123,
      "time": 123,
      "causal": 123
    },
    "watermark_detected": true
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.factagora.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
content
string
required

Raw text to scan — typically the article a user is currently reading. The server extracts a TKG snapshot on the fly without persisting the query.

Required string length: 1 - 50000
top_k
integer
default:5

Number of top matches to return (default 5, max 50)

Required range: 1 <= x <= 50
min_score
number
default:0.3

Minimum combined score for a candidate to be reported. Candidates below this threshold are filtered out. Zero-score candidates (no shared entity/time/causal signal at all) are always excluded regardless of this value. match_found is true iff at least one match clears both gates.

Required range: 0 <= x <= 1
candidate_limit
integer
default:1000

Upper bound on the naive in-memory scan (newest fingerprints first). Phase A has no entity-based pre-filter; raise with care.

Required range: 1 <= x <= 5000
weights
object

Custom scoring weights. Must sum to 1.0. When omitted, content-type-aware defaults are used: news (0.5/0.2/0.3), legal (0.3/0.1/0.6), report (0.4/0.3/0.3), internal (0.5/0.2/0.3).

filters
object

Response

Detection completed (may return match_found=false if nothing cleared min_score)

match_found
boolean
required

True when at least one candidate cleared min_score

confidence_score
number
required

Top match's combined score (0 when match_found is false). Clients may apply their own threshold on top of min_score for UI badges.

Required range: 0 <= x <= 1
query_fingerprint_id
string | null
required

Echo of the query fingerprint id. For content/url inputs this is the id minted during on-the-fly extraction (not persisted). For fingerprint_id inputs this is the echoed id from the request.

matches
object[]
required

Top-K candidates ranked by combined score, descending

meta
object
required