StodacomVerified Profile

For employers’ developers

Verified Profile API

Check a candidate’s Stodacom Verified Profile -- or a supplier’s verified business -- from your own HR, procurement or applicant-tracking system. You get the same facts the live page shows, as JSON: each item’s status, what was verified, how, when and its audit ID.

How it works

  • The candidate gives you their share code (e.g. VP-7K3F-9Q2M-XP), from their CV, certificate or link. The code is their consent: you can only read profiles whose owner gave you the code, while their link is live.
  • Each lookup appears in the candidate’s access log under your organisation’s name.
  • ID numbers, dates of birth, street addresses and contact details are never returned.

Authentication

Send your API key in the X-API-Key header. Keys are issued by Stodacom to client accounts -- contact us to get one. Keep it secret and server-side; never put it in a browser or mobile app.

Look up a profile

GET https://stodacomdesktop.com/api/v1/verified_profile?code=VP-XXXX-XXXX-XX

ParameterDescription
codeRequired. The share code. Case, spaces and dashes don’t matter.
include_photoOptional, 1 to include the verified photo as base64 JPEG (only when identity is shared and photo-verified).
curl -H "X-API-Key: YOUR_KEY" \
  "https://stodacomdesktop.com/api/v1/verified_profile?code=VP-7K3F-9Q2M-XP"

Response:

{
  "success": true,
  "profile": {
    "name": "Jane Achieng",
    "name_verified": true,
    "photo_verified": true,
    "overall_status": "partially_verified",
    "verified_count": 2,
    "total_count": 3,
    "share_code": "VP-7K3F-9Q2M-XP",
    "link_expires_at": "2026-10-27T13:10:49+03:00",
    "checked_at": "2026-09-27T13:10:49+03:00",
    "check_url": "https://stodacomdesktop.com/verified_profile_check?code=VP-7K3F-9Q2M-XP",
    "items": [
      {
        "type": "identity",
        "label": "Identity",
        "status": "verified",
        "details": [{"label": "Name on ID", "value": "Jane Achieng"}],
        "verification": {
          "method": "National ID Database Check",
          "verified_at": "2026-09-13T16:33:18+03:00",
          "valid_until": "2027-09-13T16:33:18+03:00",
          "audit_id": "STV-000144"
        }
      }
    ]
  }
}

Statuses

Item statusMeaning
verifiedChecked by Stodacom and within its valid period.
needs_reviewWas verified, but is due or being re-checked.
discrepancyOur checks found something that doesn’t match. Don’t rely on it.
rejectedReviewed and could not be verified.
not_verifiedNever verified, or the verification has lapsed.

overall_status is one of fully_verified, partially_verified, in_progress, issue (a discrepancy) or pending.

Look up a business

A business you deal with gives you its share code (e.g. VB-7K3F-9Q2M-XP), from its link page or certificate. As with profiles, the code is its consent, each lookup shows in its view log under your organisation’s name, and lookups are counted and priced the same way. Documents, ID numbers, dates of birth and people’s contact details are never returned.

GET https://stodacomdesktop.com/api/v1/verified_business?code=VB-XXXX-XXXX-XX

curl -H "X-API-Key: YOUR_KEY" \
  "https://stodacomdesktop.com/api/v1/verified_business?code=VB-7K3F-9Q2M-XP"

Response:

{
  "success": true,
  "business": {
    "legal_name": "Kigali Fresh Produce Ltd",
    "trading_name": "KFP",
    "registration_number": "108766432",
    "country": "Rwanda",
    "legal_form": "Limited Liability Company",
    "incorporation_date": "2019-03-04",
    "registry_status": "Active / registered",
    "trust_level": "verified",
    "items": [
      {
        "item": "registration",
        "label": "Registration",
        "status": "verified",
        "verified_on": "2026-10-25",
        "valid_until": "2027-10-25",
        "audit_id": "STB-000104",
        "change_under_review_since": null
      }
    ],
    "directors": [{"name": "Aline Uwase", "role": "Managing director"}],
    "owners": [{"name": "Aline Uwase", "type": "individual", "effective_percent": 60,
                "held": "direct", "owners_not_traced": null}],
    "address": {"registered": "KG 11 Ave, Kigali", "trading": null},
    "licences": [],
    "screening": {"last_screened_on": "2026-10-26", "confirmed_matches": []},
    "share_code": "VB-7K3F-9Q2M-XP",
    "link_expires_at": "2027-01-23",
    "checked_at": "2026-10-26T09:00:00+03:00"
  }
}
FieldMeaning
trust_levelunverified (nothing verified yet), registered (registration verified), verified (also representative, directors and owners) or verified_plus (also address and licences).
items[].statusverified, expired (its 12 months have passed) or not_verified.
change_under_review_sinceThe business reported a change on this date and it is being checked; the verification shown stays in force until then.
ownersOwning companies, and individuals owning 10% or more in effect, traced through any companies in between. owners_not_traced gives the reason a company’s own owners weren’t traced (for example, listed on a stock exchange).
screeningThe business, its directors and owners are screened daily against sanctions, debarment and politically exposed person lists. confirmed_matches lists matches our staff confirmed, with their flags.

Errors and limits

HTTPWhen
400No code given.
401Missing, invalid or deactivated API key.
404No live profile or business for that code -- mistyped, expired or revoked. Treat as not verified.
402Your free monthly lookups are used up and your prepaid wallet can’t cover the next one. Top up to continue.
429Rate limit: your key’s per-minute allowance (120 by default) or 120 per minute per IP address.

Pricing: the first 100 successful lookups each month are free, then $0.25 each -- from your wallet, or on your monthly statement for invoiced accounts. Lookups that return 404 aren’t counted.

Results are live at the moment you ask; store checked_at with anything you save, and look the profile up again before relying on an old result.