Juzt-Tap Trust API

Show verified trust on your website.

Put a member's Juzt-Tap Trust Score, identity check and client reviews on your shop, marketplace or app, like a review badge. Your visitors see who they can trust before they pay, and every number comes straight from Juzt-Tap.

Free. Needs a Juzt-Tap account with a confirmed email; each app is checked by our team.

Juzt-Tap · 72 Trusted

How it works

1

Apply with your account

Sign in to Juzt-Tap, confirm your email and tell us about your website or app, what you will show and on which domains.

2

Get approved and your keys

The team checks each app, usually within two working days. You then get a public key for the badge and a secret key for the API.

3

Paste the badge or call the API

Two lines of HTML show a live badge. Or read the score and reviews as JSON from your server and show them your own way.

The badge: no coding needed

Put this where the badge should appear, with the member's handle (the part after juzt-tap.com/u/) and your public key. It only works on the domains you listed for your app.

<div class="juzt-tap-badge" data-member="HANDLE" data-key="pk_YOUR_PUBLIC_KEY"></div>
<script src="https://juzt-tap.com/badge.js" async></script>
  • data-size: card (default) or pill
  • data-theme: light, dark or auto
  • data-lang: en or fr (default: the language of your page)
A member? Put your own badge on your website.You do not need an app for that: open Settings > My Trust badge and copy your code.

API reference

For your server only. Send your secret key in the X-Api-Key header; never put it in a web page or a mobile app. Answers are JSON in UTF-8.

GEThttps://juzt-tap.com/api/trust/v1/members/{handle}

The Trust Score, its level, the identity and other checks, and the review summary of one member.

curl https://juzt-tap.com/api/trust/v1/members/HANDLE \
  -H "X-Api-Key: jt_live_YOUR_SECRET_KEY"
<?php
$ch = curl_init("https://juzt-tap.com/api/trust/v1/members/" . rawurlencode($handle));
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 5,
    CURLOPT_HTTPHEADER     => ["X-Api-Key: " . getenv("JUZT_TAP_KEY")],
]);
$trust = json_decode(curl_exec($ch), true);
echo $trust["trust"]["score"];   // 72
// Node 18+ (on your server, never in the browser)
const r = await fetch("https://juzt-tap.com/api/trust/v1/members/" + handle, {
  headers: { "X-Api-Key": process.env.JUZT_TAP_KEY }
});
const trust = await r.json();
{
    "member": {
        "handle": "amina-plumbing",
        "name": "Amina Tchoua",
        "type": "trades",
        "title": "Plumber",
        "city": "Douala",
        "avatar_url": "https://juzt-tap.com/uploads/_slim/160x160/avatars/....webp",
        "profile_url": "https://juzt-tap.com/u/amina-plumbing?ref=api-12",
        "member_since": "2026-03-02"
    },
    "trust": {
        "score": 72,
        "max": 100,
        "level": "trusted",
        "label": "Trusted",
        "identity_verified": true,
        "checks": {
            "cameroon_badge": true,
            "safe_hire": true,
            "registered_business": false,
            "phone_verified": true,
            "email_verified": true
        },
        "jobs_confirmed": 9
    },
    "reviews": {
        "count": 14,
        "average": 4.7,
        "out_of": 5
    },
    "attribution": {
        "text": "Verified by Juzt-Tap",
        "url": "https://juzt-tap.com/u/amina-plumbing?ref=api-12"
    },
    "generated_at": "2026-10-30T09:15:02+00:00"
}
  • trust.level: highly_trusted (80+), trusted (60+), established (40+), building (20+), new
  • trust.identity_verified: Juzt-Tap checked an ID document or company papers. Without it the score stops at 50.
  • attribution: show "Verified by Juzt-Tap" with a link to this address next to the score.
GEThttps://juzt-tap.com/api/trust/v1/members/{handle}/reviews?limit=5&page=1

Approved client reviews, newest first, up to 20 per page. Needs an app approved for reviews. Clients are shown by first name and initial only.

{
    "member": {
        "handle": "amina-plumbing",
        "profile_url": "https://juzt-tap.com/u/amina-plumbing?ref=api-12"
    },
    "summary": {
        "count": 14,
        "average": 4.7,
        "out_of": 5
    },
    "page": 1,
    "limit": 5,
    "reviews": [
        {
            "id": 381,
            "rating": 5,
            "text": "Came on time, fixed the leak and cleaned up after.",
            "reviewer": "Paul N.",
            "date": "2026-10-12"
        }
    ],
    "generated_at": "2026-10-30T09:15:02+00:00"
}
GEThttps://juzt-tap.com/api/trust/v1/status

Checks your key and shows how much of today's allowance is left.

GEThttps://juzt-tap.com/badge/{handle}.svg?k=pk_…

A small picture badge (for example in a forum post or a README). Add &lang=fr for French.

Errors

A failed request answers with an HTTP status and a JSON object: {"error": {"code", "message"}}.

HTTPcodeMeaning
401missing_key / invalid_keyNo key, or a key that does not exist (it may have been replaced).
403app_pending / app_suspended / scope_missingThe app is not approved, is suspended, or is not approved for reviews.
404not_foundNo such member, or the member chose not to share their Trust Score outside Juzt-Tap. The two look the same on purpose.
429rate_limited / daily_limitToo many requests in a minute, or today's allowance is used up. See Retry-After.
503api_pausedThe API is paused for maintenance. Try again later.

Limits

  • API: 1,000 requests a day per app to start (the team can raise it), and at most 120 a minute. The headers X-RateLimit-Limit and X-RateLimit-Remaining show where you are.
  • Badges: twenty times the API allowance in views a day.
  • Keep answers on your side for up to 24 hours instead of asking again for every visitor.
  • Up to 5 apps per account.

Rules

  • Show scores and reviews as they come, with "Verified by Juzt-Tap" and the link. Do not change, round up or mix them with other ratings.
  • Do not copy members in bulk, build a directory of them or keep their data longer than 24 hours.
  • Do not use the API to decide on credit, jobs or housing on its own, or to contact members for marketing.
  • Keep your secret key secret. If it leaks, replace it at once on your app page.
  • Juzt-Tap can suspend an app that breaks these rules, and changes to the API are announced on this page first.

Questions

What do members share, and can they say no?

Only what their public profile already shows: name, job, city, photo, Trust Score, checks and approved reviews. Never a phone number or email. A member can hide their badge everywhere outside Juzt-Tap in their settings, and then the API answers as if they did not exist.

How is the Trust Score worked out?

From evidence, not from how full a profile is: an ID checked by Juzt-Tap, official checks, work confirmed by both sides, approved client reviews and connections. Without a checked ID the score stops at 50.

Does it cost anything?

No. The Trust API is free within the limits above.

Can I use it in a mobile app?

Yes, through your own server: the app asks your server, your server asks Juzt-Tap with the secret key. A key inside an app can be read by anyone who has the app.

Ready to show trust on your website?

Apply in two minutes with your Juzt-Tap account.

Create a free account to start