curl -X POST 'https://verification.didit.me/v3/events/sdk-token/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vendor_data": "user-42",
"allowed_event_categories": ["auth", "session", "gameplay"],
"ttl_seconds": 900,
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.monitoring_events.create_sdk_token(
vendor_data="user-42",
allowed_event_categories=["auth", "session", "gameplay"],
ttl_seconds=900,
max_uses=1000,
bind_to_origin="https://app.example.com",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.monitoringEvents.createSdkToken({
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.MonitoringEvents.CreateSDKToken(ctx, didit.MonitoringEventsCreateSDKTokenParams{
VendorData: "user-42",
AllowedEventCategories: didit.Some([]didit.MonitoringEventsCreateSDKTokenParamsAllowedEventCategories{"auth", "session", "gameplay"}),
TTLSeconds: didit.Int(900),
MaxUses: didit.Int(1000),
BindToOrigin: didit.String("https://app.example.com"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.MonitoringEventsCreateSdkTokenParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.monitoringEvents().createSdkToken(MonitoringEventsCreateSdkTokenParams.builder()
.vendorData("user-42")
.allowedEventCategories(List.of(MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("auth"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("session"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("gameplay")))
.ttlSeconds(900L)
.maxUses(1000L)
.bindToOrigin("https://app.example.com")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->monitoringEvents->createSdkToken([
'vendor_data' => 'user-42',
'allowed_event_categories' => ['auth', 'session', 'gameplay'],
'ttl_seconds' => 900,
'max_uses' => 1000,
'bind_to_origin' => 'https://app.example.com',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.monitoring_events.create_sdk_token(
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.MonitoringEvents.CreateSdkTokenAsync(new MonitoringEventsCreateSdkTokenParams
{
VendorData = "user-42",
AllowedEventCategories = new MonitoringEventsCreateSdkTokenParamsAllowedEventCategories[] { "auth", "session", "gameplay" },
TtlSeconds = 900,
MaxUses = 1000,
BindToOrigin = "https://app.example.com",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"monitoring_token": "q7ZtR2xKp9VbN4mWc8LdH1sYfJ3gT6uEaQ0oPiXzBkC",
"expires_at": "2026-10-17T09:30:02.481000Z",
"allowed_event_categories": [
"auth",
"session",
"gameplay"
],
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}Token SDK per il monitoraggio: creazione tramite API
Genera un token di breve durata legato a un soggetto per inviare eventi di monitoraggio con Didit, senza esporre la chiave API.
curl -X POST 'https://verification.didit.me/v3/events/sdk-token/' \
-H 'x-api-key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vendor_data": "user-42",
"allowed_event_categories": ["auth", "session", "gameplay"],
"ttl_seconds": 900,
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}'from didit import Didit
# Reads DIDIT_API_KEY.
client = Didit()
result = client.monitoring_events.create_sdk_token(
vendor_data="user-42",
allowed_event_categories=["auth", "session", "gameplay"],
ttl_seconds=900,
max_uses=1000,
bind_to_origin="https://app.example.com",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// Reads DIDIT_API_KEY.
const didit = new Didit();
const result = await didit.monitoringEvents.createSdkToken({
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com",
});
console.log(result);ctx := context.Background()
// Reads DIDIT_API_KEY.
client := didit.NewClient()
result, err := client.MonitoringEvents.CreateSDKToken(ctx, didit.MonitoringEventsCreateSDKTokenParams{
VendorData: "user-42",
AllowedEventCategories: didit.Some([]didit.MonitoringEventsCreateSDKTokenParamsAllowedEventCategories{"auth", "session", "gameplay"}),
TTLSeconds: didit.Int(900),
MaxUses: didit.Int(1000),
BindToOrigin: didit.String("https://app.example.com"),
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import java.util.List;
import me.didit.Didit;
import me.didit.types.MonitoringEventsCreateSdkTokenParams;
// Reads DIDIT_API_KEY.
Didit client = new Didit();
var result = client.monitoringEvents().createSdkToken(MonitoringEventsCreateSdkTokenParams.builder()
.vendorData("user-42")
.allowedEventCategories(List.of(MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("auth"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("session"), MonitoringEventsCreateSdkTokenParams.AllowedEventCategories.of("gameplay")))
.ttlSeconds(900L)
.maxUses(1000L)
.bindToOrigin("https://app.example.com")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// Reads DIDIT_API_KEY.
$didit = new DiditClient();
$result = $didit->monitoringEvents->createSdkToken([
'vendor_data' => 'user-42',
'allowed_event_categories' => ['auth', 'session', 'gameplay'],
'ttl_seconds' => 900,
'max_uses' => 1000,
'bind_to_origin' => 'https://app.example.com',
]);
print_r($result->toArray());require "didit"
# Reads DIDIT_API_KEY.
didit = Didit::Client.new
result = didit.monitoring_events.create_sdk_token(
vendor_data: "user-42",
allowed_event_categories: ["auth", "session", "gameplay"],
ttl_seconds: 900,
max_uses: 1000,
bind_to_origin: "https://app.example.com"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// Reads DIDIT_API_KEY.
using var client = new DiditClient();
var result = await client.MonitoringEvents.CreateSdkTokenAsync(new MonitoringEventsCreateSdkTokenParams
{
VendorData = "user-42",
AllowedEventCategories = new MonitoringEventsCreateSdkTokenParamsAllowedEventCategories[] { "auth", "session", "gameplay" },
TtlSeconds = 900,
MaxUses = 1000,
BindToOrigin = "https://app.example.com",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"monitoring_token": "q7ZtR2xKp9VbN4mWc8LdH1sYfJ3gT6uEaQ0oPiXzBkC",
"expires_at": "2026-10-17T09:30:02.481000Z",
"allowed_event_categories": [
"auth",
"session",
"gameplay"
],
"max_uses": 1000,
"bind_to_origin": "https://app.example.com"
}Autorizzazioni
La chiave API della tua applicazione, da Developers -> API keys nella Business Console. La chiave primaria ha accesso completo. Una chiave con nome può avere un ambito definito: nessuno, lettura o scrittura per risorsa, limitata ad alcuni workflow o a sessioni approvate, a un elenco di indirizzi IP e a una data di scadenza. 401 indica che la chiave è errata, revocata o scaduta; 403 indica che non è stata inviata alcuna chiave, che la chiave non ha accesso a questa risorsa o azione, oppure che la richiesta proviene da un indirizzo non incluso nel suo elenco IP; 404 su una route di sessione indica che la sessione non rientra nei workflow o negli stati previsti dalla chiave. Una chiave senza accesso ai media riceve gli URL di immagini, video e PDF come null, e una chiave senza permessi di scrittura sulle sessioni riceve link e token di sessione come null. Consulta https://docs.didit.me/console/api-keys.
Corpo
Sono accettati gli alias camelCase: vendorData, entityType, allowedEventCategories, ttlSeconds, maxUses, bindToOrigin.
Il tuo ID per il soggetto a cui appartiene ogni evento inviato con questa credenziale.
1 - 255company associa un soggetto aziendale; qualsiasi altro valore (predefinito individual) associa una persona fisica.
32Categorie che la credenziale può inviare. Omettilo o invia [] per consentire ogni categoria.
auth, session, gameplay, bonus, affiliate, payment, dispute, security, responsible_gambling, custom Durata della credenziale in secondi.
60 <= x <= 86400Numero di eventi che la credenziale può inviare (un batch consuma un utilizzo per evento). Invia null per nessun limite massimo entro la durata di validità.
x >= 1Se impostato, l'intestazione del browser Origin di ogni richiesta del dispositivo deve corrispondere esattamente a questo valore; una richiesta senza Origin viene rifiutata.
255Risposta
La credenziale è stata generata. Fornisci monitoring_token all'app e consideralo segreto fino a expires_at.
La credenziale del dispositivo (un token URL-safe di 43 caratteri). Inviala nell'intestazione X-Monitoring-Token.
Data e ora in cui la credenziale smette di essere accettata.
Categorie che la credenziale può inviare; [] indica ogni categoria.
auth, session, gameplay, bonus, affiliate, payment, dispute, security, responsible_gambling, custom Budget di eventi della credenziale; null indica nessun limite massimo.
Origine a cui è associata la credenziale, oppure null.