veil

Leggi un account API titolare

Leggi limiti condivisi, saldi delle quote, uso, chiavi e attività privata.

GET/v1/developer/accounts/{n}
Accesso
Richiesta firmata
Client
Client locale o server

Parametri#

NomePosizioneSignificato
nObbligatorioPercorsoNumero permanente della persona o organizzazione titolare della quota.

Manda le intestazioni comuni di firma, inclusi X-Nonce e X-Timestamp. Una GET firmata non ha corpo JSON. Firma delle richieste

Esempi di richiesta#

cURL
curl -fsS \
  -H "X-Public-Key: $PUBLIC_KEY" -H "X-Signature: $REQUEST_SIGNATURE" \
  -H "X-Nonce: $NONCE" -H "X-Timestamp: $TIMESTAMP" \
  "https://veil.rip/v1/developer/accounts/1"

Risposta#

HTTP 200application/json

owner, suspended, limits, quota, usage, history, keys, next, audit e permissions. La storia copre gli ultimi 31 giorni. La prima pagina ha al massimo 50 chiavi e 20 eventi di attività.

CampoTipoSignificato
ownerintegerNumero permanente della scheda titolare.
suspendedbooleanIndica se l’intero account API è sospeso.
limitsobjectrequestsPerMinute, verificationPerMinute ed eventuale dailyLimit.
quotaQuotaDisponibilità correnti delle quote condivise e aggiuntive.
usageUsageUso nel giorno UTC corrente.
historyarray<Usage>Righe giornaliere degli ultimi 31 giorni.
keysarray<ApiKey>Prima pagina con al massimo 50 righe di metadati delle chiavi.
nextinteger | nullPassalo come before all’endpoint delle chiavi per le precedenti.
auditAuditPageRicevute private più recenti, inizialmente al massimo 20.
permissionsarray<string>Azioni consentite a chi ha firmato la richiesta.

Apri un oggetto annidato per leggerne i campi. I tipi con null ammettono un valore null; i campi optional possono essere assenti. Gli altri campi sono presenti nell’oggetto.

Metadati della chiave API ApiKey
CampoTipoSignificato
idstringID pubblico di gestione della chiave, non il segreto Bearer.
ownerintegerNumero permanente della scheda titolare.
labelstringEtichetta dell’integrazione scelta dal titolare.
prefixstringPrefisso visualizzato non segreto.
scopesarray<string>read e/o verify.
statestringactive, expired, suspended o revoked. La sospensione dell’account è indicata separatamente.
createdAtstringData e ora di creazione in ISO 8601 UTC.
expiresAtstringScadenza in ISO 8601 UTC.
revokedAtstring | nullData e ora della revoca permanente.
suspendedbooleanIndica se questa chiave è sospesa.
requestsPerMinuteinteger | nullLimite aggiuntivo della chiave, oppure null.
lastUsedAtstring | nullUltimo uso ammesso, oppure null se mai usata.
requestsintegerRichieste ammesse durante la vita della chiave.
Quote condivise e aggiuntive Quota
CampoTipoSignificato
requestsBucketQuota di richieste condivisa dal titolare.
verificationBucketQuota di verifica condivisa aggiuntiva. Una verifica consuma entrambe le quote.
dailyBucket | nullLimite giornaliero aggiuntivo, se impostato.
keyBucket | nullLimite aggiuntivo della singola chiave, se impostato.
Quota Bucket
CampoTipoSignificato
limitintegerCapacità della quota, oppure limite del giorno UTC per la quota giornaliera.
remainingintegerRichieste intere disponibili al momento.
resetAtintegerSecondi Unix in cui la quota sarà piena, oppure la prossima mezzanotte UTC per il limite giornaliero.
Uso nel giorno UTC Usage
CampoTipoSignificato
daystringData UTC nel formato YYYY-MM-DD.
requestsintegerRichieste ammesse durante il giorno.
verificationsintegerVerifiche ammesse, già incluse in requests.
rejectedintegerRichieste rifiutate per quota durante il giorno.
Pagina delle ricevute private AuditPage
CampoTipoSignificato
ownerintegerNumero della scheda titolare.
eventsarray<AuditEvent>Ricevute dalla più recente.
nextinteger | nullPassalo come before per leggere le ricevute precedenti. Null indica la fine.
Ricevuta privata di gestione AuditEvent
CampoTipoSignificato
idintegerCursore della ricevuta.
ownerintegerNumero permanente della scheda titolare.
keyIdstring | nullChiave interessata, oppure null per una modifica dell’account.
actorintegerScheda che ha firmato la richiesta di gestione.
actionstringAzione di gestione, per esempio create, revoke o account_limits.
reasonstringMotivo dello staff, oppure stringa vuota per un’azione del titolare.
detailsobjectMetadati dell’azione, inclusi i valori prima e dopo per i limiti. Non contiene il segreto Bearer.
proofobjectmethod, path, body, key pubblica, alg e signature esatti della richiesta firmata.
createdAtstringData e ora della ricevuta in ISO 8601 UTC.

Intestazioni della risposta#

IntestazioneValoreSignificato
Content-Typeapplication/jsonUsa il tipo dichiarato per scegliere come leggere il corpo.
DateHTTP dateOra del server. Confrontala con il tuo orologio per firmare le richieste.
Cache-Controlno-storeNon conservare le risposte private o temporanee in una cache condivisa.
Retry-Afterinteger seconds, on rate_limited or busyAttendi almeno questo intervallo prima di riprovare. Altri codici 429/503 non lo includono necessariamente.

Note d’uso#

  • Il titolare firma con una chiave di dispositivo attiva. Per l’organizzazione serve un proprietario con appartenenza accettata. Le chiavi API Bearer non autorizzano questa chiamata.
  • La risposta è privata e usa Cache-Control no-store.
  • Le scritture di gestione accettano al massimo 8 KiB e rifiutano i campi sconosciuti. nonce e timestamp sono i campi comuni della firma.

Errori#

Gli errori API restituiscono un oggetto error. Usa error.code nella logica del programma; error.message è un testo inglese per le persone e può cambiare. Guida a risposte ed errori

HTTPCodiceSignificato e cosa fare
400invalid_parameter

Un campo del percorso, della query o del corpo manca, è malformato o fuori intervallo.

Correggi il campo indicato in error.message prima di inviare di nuovo.

403identity_banned

La scheda che agisce è sospesa dallo staff di Veil.

Attendi la fine della restrizione o chiedi allo staff di riesaminarla.

403key_mismatch

La chiave di firma non è autorizzata per questa scheda o operazione.

Usa una chiave di dispositivo attiva con il ruolo di titolare o membro richiesto.

404not_found

La scheda, la chiave, l’alias, il codice o la risorsa richiesti non sono stati trovati.

Controlla l’identificatore. Codici e anteprime temporanei potrebbero essere scaduti o già usati.

Errori comuni delle richieste
HTTPCodiceSignificato e cosa fare
400invalid_nonce

Il nonce della richiesta firmata ha un formato errato.

Genera un nuovo nonce da 16 a 128 caratteri usando lettere, cifre, _ o -.

400invalid_signature_alg

X-Signature-Alg non è supportato.

Usa un algoritmo di firma supportato e la codifica corretta per chiave e firma.

400invalid_timestamp

Il timestamp della richiesta firmata non è espresso in millisecondi Unix.

Usa un timestamp Unix intero in millisecondi e firma la richiesta corretta.

401invalid_signature

La firma della richiesta HTTP non è valida.

Firma metodo, percorso e byte del corpo esatti, senza modificarli dopo.

401missing_signature

La richiesta richiede una firma del dispositivo e le intestazioni mancano o non sono leggibili.

Invia X-Public-Key, X-Signature e i metadati della richiesta firmata. Una chiave API non sostituisce la firma del dispositivo.

401stale_timestamp

Il timestamp firmato è fuori dalla finestra temporale ammessa.

Confronta l’intestazione Date del server con il tuo orologio, poi genera nuovi nonce, timestamp e firma.

403key_banned

La chiave del dispositivo che firma è sospesa dallo staff di Veil.

Usa una chiave attiva autorizzata o chiedi allo staff di riesaminare la restrizione.

409replayed_nonce

La chiave di firma ha già usato questo nonce.

Controlla se la richiesta precedente è riuscita prima di crearne una nuova firmata.

429rate_limited

È stato superato un limite anonimo, delle richieste firmate o della chiave API.

Attendi almeno i secondi indicati da Retry-After. Condividi coda e budget dei tentativi tra i tuoi processi.

500internal_error

Si è verificato un errore imprevisto del server. I dettagli interni non vengono restituiti.

Riprova le letture con attese crescenti e un limite. Controlla l’esito delle scritture prima di inviare una nuova operazione firmata.

503busy

L’applicazione ha raggiunto un limite temporaneo di concorrenza o del database.

Attendi i secondi indicati da Retry-After e riprova con attese crescenti e un limite.