Quickstart
Faro returns one consistent verdict — 🟢 green, 🟡 yellow, or 🔴 red — for a URL, a payee, or a message, with a plain-language reason and a recommended action. This page gets you from zero to your first verdict.
1. Get an API key
Sign up at /signup with your email and location. Faro issues your API key immediately in the browser (shown once), so copy and store it right away. Send it on every request as a bearer token:
Authorization: Bearer <your-key>
2. Make your first call
import asyncio
import os
from faro_client import FaroClient
async def main() -> None:
async with FaroClient(os.environ["FARO_API_KEY"]) as client:
result = await client.verify_url("https://www.google.com")
print(result.verdict, "—", result.reason)
asyncio.run(main())3. Read the verdict
{
"verdict": "green",
"confidence": 0.8,
"artifact": { "type": "url", "value": "https://www.google.com" },
"reason": "No safety problems found for this link.",
"recommended_action": "allow",
"signals": [ ... ],
"request_id": "b1946ac92492d2347c6235b4d2611184",
"cached": false
}
Branch on recommended_action (allow / warn / block / review) for logic, and
surface reason to your user — it is always present and written in plain language.
4. Verify payees and messages
The same shape covers all three artifact types:
async with FaroClient(os.environ["FARO_API_KEY"]) as client:
payee = await client.verify_payee("ramesh@okaxis")
message = await client.verify_message("URGENT: share the OTP we just sent")
print(payee.verdict, message.verdict)