Documentazione

API pubblica

Consulta gli account 2FA di un team e recupera i loro codici TOTP dai tuoi strumenti, con un token dedicato.

L’API permette a un client autorizzato di consultare gli account 2FA di un team e di recuperarne i codici TOTP.

export API_URL="https://app.shareauth.net"
export API_TOKEN="1|il-tuo-token-sanctum"

In produzione usa esclusivamente HTTPS. Richieste e risposte sono in formato JSON.

Autenticazione

Crea un token Sanctum:

curl -X POST "$API_URL/api/tokens/create" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -d '{
    "email":"[email protected]",
    "password":"password",
    "device_name":"il-mio-connettore",
    "code":"123456"
  }'

Il campo code è richiesto solo se l’account protegge il proprio accesso con la 2FA. recovery_code può sostituirlo.

Risposta:

{
  "token": "1|abcdefghijklmnopqrstuvwxyz",
  "user": {
    "id": 12,
    "name": "Alice",
    "email": "[email protected]"
  }
}

Conserva questo token come un segreto e trasmettilo poi nell’intestazione:

Authorization: Bearer 1|abcdefghijklmnopqrstuvwxyz
Accept: application/json

Team attivo

I codici restituiti appartengono sempre al team attivo dell’utente.

Elencare i team accessibili:

curl "$API_URL/api/v1/teams" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Cambiare team attivo:

curl -X POST "$API_URL/api/v1/teams/42/switch" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Elencare gli account 2FA

curl "$API_URL/api/v1/secrets" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Risposta abbreviata:

{
  "data": [
    {
      "id": 7,
      "name": "GitHub production",
      "issuer": "GitHub",
      "digits": 6,
      "period": 30
    }
  ],
  "meta": {
    "total": 1,
    "limit": 10,
    "remaining": 9
  }
}

Il seed TOTP non è mai incluso nelle risposte.

Recuperare un codice

Usa l’identificativo restituito dall’elenco:

curl -X POST "$API_URL/api/v1/secrets/7/generate" \
  -H "Authorization: Bearer $API_TOKEN" \
  -H "Accept: application/json"

Risposta:

{
  "data": {
    "secret_name": "GitHub production",
    "code": "123456",
    "next_code": "654321",
    "time_remaining": 18,
    "period": 30,
    "expires_at": "2026-08-13T12:00:30.000000Z"
  }
}

Ogni generazione viene registrata nel registro degli accessi del team. Non registrare il codice lato client.

Errori

Stato Significato
401 token assente o non valido
403 accesso negato o segreto fuori dal team attivo
404 risorsa non trovata
422 dati non validi, team assente o codice impossibile da generare
429 limite di 60 richieste al minuto superato

Un errore di validazione segue generalmente questo formato:

{
  "message": "The given data was invalid.",
  "errors": {
    "email": ["The email field is required."]
  }
}

Connettore MCP

Il connettore pronto all’uso per ChatGPT, Codex, Claude e altri client MCP è documentato in mcp-server/README.md, nel repository del progetto.