Verify a message from the web page
POST
/v1/public/submit
const url = 'https://api.fromenance.com/v1/public/submit';const options = { method: 'POST', headers: {'X-Site-Key': '<X-Site-Key>', 'Content-Type': 'application/json'}, body: '{"text":"example","eml_base64":"example","image_base64":"example","code":"example","email":"hello@example.com","turnstile_token":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.fromenance.com/v1/public/submit \ --header 'Content-Type: application/json' \ --header 'X-Site-Key: <X-Site-Key>' \ --data '{ "text": "example", "eml_base64": "example", "image_base64": "example", "code": "example", "email": "hello@example.com", "turnstile_token": "example" }'Authenticated by site key and origin. Rate limited per IP and per key; a Turnstile token is required once a key exceeds its normal rate. Text and .eml return the verdict synchronously; screenshots return a poll token.
Authorizations
Section titled “Authorizations”Request Body
Section titled “Request Body”Media typeapplication/json
object
text
Pasted message text or HTML.
string
eml_base64
A .eml file, base64.
string
image_base64
A screenshot (PNG, JPEG, WebP), base64. Answered asynchronously.
string
code
Verify code typed by the customer.
string
email
The customer’s own address, hashed locally on our side and never stored in clear.
string format: email
turnstile_token
string
Examplegenerated
{ "text": "example", "eml_base64": "example", "image_base64": "example", "code": "example", "email": "hello@example.com", "turnstile_token": "example"}Responses
Section titled “ Responses ”Verdict
Media typeapplication/json
object
status
required
string
poll_token
required
string | null
submission_id
required
string
outcome
required
string | null
rule
required
string | null
matched_sent_at
required
string | null
signals
required
object
code_found
required
boolean
recipient_match
required
boolean | null
fingerprint_distance
required
number | null
display
required
object
institution_name
required
string
logo_url
required
string | null
accent
required
string | null
fraud_contact
required
string | null
support_url
required
string | null
outcome_label
required
string
verdict_text
required
string
next_step
required
string
Example
{ "status": "decided", "outcome": "verified"}Pending (screenshot)
Media typeapplication/json
object
status
required
string
poll_token
required
string | null
submission_id
required
string
outcome
required
string | null
rule
required
string | null
matched_sent_at
required
string | null
signals
required
object
code_found
required
boolean
recipient_match
required
boolean | null
fingerprint_distance
required
number | null
display
required
object
institution_name
required
string
logo_url
required
string | null
accent
required
string | null
fraud_contact
required
string | null
support_url
required
string | null
outcome_label
required
string
verdict_text
required
string
next_step
required
string
Example
{ "status": "decided", "outcome": "verified"}Turnstile required
Rate limited