SDKs
Official typed clients for the Faro API. Both mirror the same VerdictResult contract
as the REST API and MCP server — verdict, reason, recommended_action, and signals.
Prefer raw HTTP? The quickstart still shows curl; the
API reference is generated from the OpenAPI spec.
Python — faro-client
Install from PyPI when published, or from the repo while developing:
pip install faro-client
# or, from the faro_AI repo:
pip install -e sdk/python
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, result.recommended_action)
asyncio.run(main())Errors raise FaroError with status_code, code, and request_id — the same envelope
as the REST API.
TypeScript — @faro/client
npm install @faro/client
import { FaroClient } from "@faro/client";
const client = new FaroClient({ apiKey: process.env.FARO_API_KEY! });
const result = await client.verifyUrl("https://www.google.com");
console.log(result.verdict, result.reason, result.recommended_action);Errors throw FaroError with status, code, and requestId.
Methods
Both clients expose the same verify surface:
| Method | Endpoint |
|---|---|
verify_url / verifyUrl | POST /v1/verify/url |
verify_payee / verifyPayee | POST /v1/verify/payee |
verify_message / verifyMessage | POST /v1/verify/message |
verify(type, value) / verify(type, value) | POST /v1/verify |
report(type, value, kind) / report(type, value, kind) | POST /v1/reports |