Endpoints
DeepStamp
Embed a structure-based watermark into content and detect reuse of it.
POST
DeepStamp proves that a piece of content originated from you, even after it has been rewritten or translated. Embedding extracts a Temporal Knowledge Graph (TKG) from your content and hides a watermark seeded by that structure. Detection scores candidate content against every stored fingerprint using both the watermark and the causal structure.
DeepStamp is the product name; the API paths still say
fingerprint. Endpoints are /api/v1/fingerprint/embed and /api/v1/fingerprint/detect, and responses return fingerprint_id. There is no /api/v1/deepstamp/* endpoint.Endpoints
POST /api/v1/fingerprint/embed
Request Body
Provide eithercontent or url, not both.
string
Raw text to fingerprint. Maximum 50,000 characters.
string
URL of the source document to fingerprint.
string
default:"news"
Category of the content. One of
news, report, legal, internal. This also selects the default scoring weights used at detection time.object
Your own identifiers, stored with the fingerprint and echoed back on every match.
Response
string
Your content with the TKG-seeded zero-width watermark embedded. Distribute this version, not the original.
string
Unique fingerprint identifier (
fp_*). Store it alongside your internal article id.object
The structure extracted from your content.
string
ISO 8601 timestamp of when the fingerprint was embedded.
POST /api/v1/fingerprint/detect
Request Body
Provide exactly one ofcontent, url, or fingerprint_id. Content and URL queries are extracted on the fly and are never stored.
string
Raw text to scan, typically the article you want to check. Maximum 50,000 characters.
string
URL of the document to scan.
string
An already-embedded fingerprint id (
fp_*) to re-score against the registry. This reuses the stored snapshot instead of re-extracting, which makes it the cheapest option for scheduled monitoring.number
default:"5"
Number of matches to return. Range: 1–50.
number
default:"0.3"
Minimum combined score for a candidate to be reported. Candidates with no shared signal at all are always excluded, whatever this value is.
match_found is true only when at least one match clears both gates.number
default:"1000"
Upper bound on how many stored fingerprints are scanned, newest first. Range: 1–5000.
object
Custom scoring weights.
entity, time, and causal must sum to 1.0. When omitted, content-type defaults apply: 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.object
Restrict which stored fingerprints are considered.
Response
boolean
True when at least one candidate cleared
min_score.number
The top match’s combined score, or
0 when nothing matched.string
The query’s fingerprint id. For
content and url queries this is minted during on-the-fly extraction and is not persisted.array
Top-K candidates, ranked by combined score descending.
object
Next steps
Embed & Detect walkthrough
Step-by-step guide with code examples.
Best practices
Production tips for scoring, filtering, and auditing.

