/api/verifyRecord a verification outcome for an email/domain. Body: { email, domain, isLegitimate }. Returns { ok: true } on success.
Developers
Programmatic access to email-verification recording and your account's verification history, plus a set of public, unauthenticated, anonymised data endpoints (government-domain lookup, fraud map, trends, impact counters, changelog). A small, stable REST surface served same-origin — authenticate account reads with a Bearer API key from the admin portal; the public endpoints need no key. Machine-readable spec: /openapi.json.
curl -X POST /api/verify \
-H "Authorization: Bearer $TFSA_API_KEY" \
-H "Content-Type: application/json" \
-d '{"email":"procurement@example.com","domain":"example.com","isLegitimate":false}'Response
{
"ok": true
}/api/verifyRecord a verification outcome for an email/domain. Body: { email, domain, isLegitimate }. Returns { ok: true } on success.
/api/verificationsYour account's own verification history (newest first, up to 500) plus real summary counts. Other accounts' records are never returned.
/api/verifications/{id}A single owned verification, including the analyzed body, headers, signals and submission metadata. A non-owned id returns 404.
/api/public/domain-lookupIs a domain a recognised SA government / state-owned-entity / municipal domain? Query ?domain=example.gov.za. Returns { status, message, reviewAvailable }; never enumerates the corpus.
/api/public/domain-lookupThe same recognition check via JSON body { domain }. The GET alias above is easier for agents and links to crawl.
/api/public/fraud-mapAnonymised provincial fraud-activity aggregates behind the live map (counts and severity by province). Query ?window=24h|7d|30d|90d. Never names a domain, organisation or person.
/api/public/fraud-trendAnonymised monthly fraud-detection trend (trailing months) plus current-month impact figures. Scalar aggregates only.
/api/public/impact-statsAggregate platform impact counters: emails verified, fraud blocked, RFQs analysed, and the measured detection rate. Scalar counts only.
/api/public/changelogPublished release notes as structured JSON (versions, dated titles, grouped change entries).
Register an HTTPS endpoint from the admin portal. Deliveries are signed HMAC-SHA256 with your endpoint secret. Subscribable events:
verification.completedA verification finished analysis.
verification.flaggedA verification was flagged as high-risk.
pattern.discoveredA new fraud pattern was identified.
report.receivedA fraud report was submitted to the platform.
user.invitedA team member was invited to your account.
system.healthA platform health/status change occurred.
Authenticated endpoints use Bearer-token auth on the Authorization header. Keys are created in the admin portal and shown once — store them securely.
tfsa_live_; sandbox keys tfsa_test_.verify:read, verify:write, patterns:read, admin:read.400 Invalid input / malformed body401 Missing or invalid bearer token404 Record not found or not owned429 Rate limit exceeded (see Retry-After)500 Server error — retry with backoffAuthenticated endpoints require a key. Create and manage keys in the admin portal — the secret is shown once at creation.
Integration questions? Reach us through the on-site contact form.
Open the contact form →OpenAPI description of the public endpoints, plus the AI index.
/openapi.json →This service utilizes artificial intelligence. While we aim for high accuracy, Tender Fraud cannot guarantee 100% correctness and is not liable for any losses resulting from inaccuracies or system limitations. Your use of this tool signifies your acceptance of this risk. This service is a supplementary verification aid and does not constitute legal or professional advice. Always confirm suspicious communications via official government channels. We store information you share and the content of emails you analyze, in accordance with the Protection of Personal Information Act (POPIA).