Unified verification and trust scoring API for the QShield Trust Network
X-API-Key header.qshield_dev_key_sprint1a
Search verified professionals and organizations.
| Param | Type | Description |
|---|---|---|
q | string | Free-text search query |
industry | string | Industry filter |
region | string | City/region filter |
minKLevel | integer | Minimum K-Level (0-4) |
limit | integer | Results per page (default 10, max 100) |
offset | integer | Pagination offset |
curl -H "X-API-Key: qshield_dev_key_sprint1a" \
"http://localhost:3847/api/v2/trust/search?q=cardiologist®ion=san-francisco"
Verify a single identity by QID.
curl -H "X-API-Key: qshield_dev_key_sprint1a" \
"http://localhost:3847/api/v2/trust/verify/qid:person:qshield:abc123"
Batch-verify up to 50 QIDs at once.
curl -X POST -H "X-API-Key: qshield_dev_key_sprint1a" \
-H "Content-Type: application/json" \
-d '{"qids": ["qid:person:qshield:abc123"]}' \
"http://localhost:3847/api/v2/trust/verify/batch"
Look up and verify a user, organization, or agent by QID or email.
| Field | Type | Description | |
|---|---|---|---|
entity_type | string | required | "user", "organization", or "agent" |
identifier | string | required | QID or email address |
curl -X POST -H "X-API-Key: qshield_dev_key_sprint1a" \
-H "Content-Type: application/json" \
-d '{"entity_type": "user", "identifier": "qid:person:qshield:abc123"}' \
"http://localhost:3847/api/v2/verify/identity"
{
"verified": true,
"entity_type": "user",
"trust_level": "B",
"trust_score": 72,
"details": {
"name": "Jane Doe",
"organization": null,
"verification_method": "qid_lookup",
"verified_at": "2025-01-15T10:30:00Z"
},
"request_id": "...",
"processing_time_ms": 12
}
Upload an audio file for voice deepfake detection. Proxies to the QShield Voice Analysis service.
Multipart form upload with an audio field containing the audio file (WAV, MP3, OGG, FLAC, M4A).
curl -X POST -H "X-API-Key: qshield_dev_key_sprint1a" \
-F "audio=@sample.wav" \
"http://localhost:3847/api/v2/verify/voice"
{
"voice_analysis": { ... },
"request_id": "...",
"processing_time_ms": 1500,
"service": "qshield-voice-v1"
}
Analyze text content for AI-generation indicators and optionally verify HMAC-SHA256 integrity.
| Field | Type | Description | |
|---|---|---|---|
content | string | required | Text content to analyze |
signature | string | optional | HMAC-SHA256 hex signature for integrity check |
curl -X POST -H "X-API-Key: qshield_dev_key_sprint1a" \
-H "Content-Type: application/json" \
-d '{"content": "Hello, this is a test message."}' \
"http://localhost:3847/api/v2/verify/message"
{
"origin": "human",
"ai_probability": 0.1,
"integrity": { "provided": false },
"details": {
"avg_sentence_length": 6,
"vocabulary_diversity": 0.833,
"punctuation_density": 0.032,
"bigram_repetition_rate": 0,
"word_count": 6,
"sentence_count": 1
},
"request_id": "...",
"processing_time_ms": 2
}
Get the trust score, tier, contributing factors, and 30-day history for an entity.
curl -H "X-API-Key: qshield_dev_key_sprint1a" \
"http://localhost:3847/api/v2/trust-score/qid:person:qshield:abc123"
{
"entity_id": "qid:person:qshield:abc123",
"score": 72,
"tier": "B",
"factors": {
"k_level": 2,
"verified_emails": 150,
"endorsements": 5,
"anomaly_flags": 0,
"active_days": 90
},
"history": [ ... ],
"request_id": "..."
}
This documentation page.
Register a webhook endpoint for alert delivery.
| Field | Type | Description | |
|---|---|---|---|
url | string | required | Webhook URL to receive alerts |
secret | string | optional | Custom HMAC secret (auto-generated if omitted) |
List all registered webhooks for your organization.
Send a test ping to a registered webhook.
List recent alerts for your organization, with optional severity/category filters.
| Param | Type | Description |
|---|---|---|
page | integer | Page number (default 1) |
limit | integer | Results per page (default 20, max 100) |
severity | string | Filter: critical, high, medium, low |
category | string | Filter: prompt_injection, data_exfiltration, policy_violation, deepfake_detected, behavioral_anomaly |
Get a single alert with its webhook delivery history.
Get the current alert configuration (email, webhook, categories).
Update alert configuration (email recipients, severity threshold, categories).
Verify trust scores for call/meeting participants in real time.
| Field | Type | Description | |
|---|---|---|---|
participants | array | required | Array of {name, email, phone?} |
platform | string | required | zoom, teams, phone, or other |
meeting_id | string | optional | Platform meeting ID |
Analyze email sender trust, message provenance, and header authenticity.
| Field | Type | Description | |
|---|---|---|---|
from | string | required | Sender email address |
to | string[] | required | Recipient email addresses |
subject | string | required | Email subject line |
content | string | required | Email body text |
headers | object | optional | Raw email headers for SPF/DKIM analysis |
Cryptographically sign a message for tamper-proof verification.
| Field | Type | Description | |
|---|---|---|---|
content | string | required | Message content to sign |
sender_id | string | required | Signer identity (QID or user ID) |
Verify a previously signed message has not been tampered with.
| Field | Type | Description | |
|---|---|---|---|
content | string | required | Original message content |
signature | string | required | Signature returned from /sign |
/oauth/*) do not require an API key.
Client management endpoints (/api/v2/oauth/clients) require an X-API-Key.
Start the OAuth 2.0 authorization code flow. Redirects to the client's redirect_uri with an authorization code.
| Param | Type | Description |
|---|---|---|
response_type | string | Must be "code" |
client_id | string | Registered OAuth client ID |
redirect_uri | string | Registered redirect URI |
scope | string | Space-separated scopes (e.g. "verify:message trust:read") |
state | string | CSRF protection state parameter |
Exchange an authorization code, refresh token, or client credentials for access tokens.
| Grant Type | Description |
|---|---|
authorization_code | Exchange auth code for tokens |
refresh_token | Refresh an expired access token |
client_credentials | Server-to-server authentication |
Revoke an access token or refresh token (RFC 7009).
Register a new OAuth client application. Requires API key.
| Field | Type | Description | |
|---|---|---|---|
name | string | required | Application name |
redirect_uris | string[] | required | Allowed redirect URIs |
List all OAuth clients for your organization. Requires API key.
{
"error": {
"code": "MISSING_API_KEY",
"message": "X-API-Key header is required"
},
"request_id": "uuid-v4"
}
| Tier | Limit |
|---|---|
| Default (with API key) | 100 req/min |
| Without API key | 10 req/min |
Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset
QShield Trust Network — API v2 — Sprint 2