cURL
curl -X POST https://apx.didit.me/auth/v2/programmatic/login/ \
-H "Content-Type: application/json" \
-d '{
"email": "you@yourdomain.com",
"password": "MyStr0ng!Pass"
}'from didit import Didit
# This call needs no API key.
client = Didit()
result = client.account.login(
email="you@yourdomain.com",
password="MyStr0ng!Pass",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// This call needs no API key.
const didit = new Didit();
const result = await didit.account.login({
email: "you@yourdomain.com",
password: "MyStr0ng!Pass",
});
console.log(result);ctx := context.Background()
// This call needs no API key.
client := didit.NewClient()
result, err := client.Account.Login(ctx, didit.LoginRequest{
Email: "you@yourdomain.com",
Password: "MyStr0ng!Pass",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.LoginRequest;
// This call needs no API key.
Didit client = new Didit();
var result = client.account().login(LoginRequest.builder()
.email("you@yourdomain.com")
.password("MyStr0ng!Pass")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// This call needs no API key.
$didit = new DiditClient();
$result = $didit->account->login([
'email' => 'you@yourdomain.com',
'password' => 'MyStr0ng!Pass',
]);
print_r($result->toArray());require "didit"
# This call needs no API key.
didit = Didit::Client.new
result = didit.account.login(
email: "you@yourdomain.com",
password: "MyStr0ng!Pass"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// This call needs no API key.
using var client = new DiditClient();
var result = await client.Account.LoginAsync(new LoginRequest
{
Email = "you@yourdomain.com",
Password = "MyStr0ng!Pass",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 86400,
"message": "Login successful"
}API d'authentification (programmatique)
API de connexion programmatique : jetons d'accès headless
Didit : POST /programmatic/login/ renvoie directement les jetons d’accès, sans 2FA. Pour agents IA et MCP, tarification à l’usage.
POST
/
programmatic
/
login
/
cURL
curl -X POST https://apx.didit.me/auth/v2/programmatic/login/ \
-H "Content-Type: application/json" \
-d '{
"email": "you@yourdomain.com",
"password": "MyStr0ng!Pass"
}'from didit import Didit
# This call needs no API key.
client = Didit()
result = client.account.login(
email="you@yourdomain.com",
password="MyStr0ng!Pass",
)
print(result)import Didit from "@didit-protocol/sdk-node";
// This call needs no API key.
const didit = new Didit();
const result = await didit.account.login({
email: "you@yourdomain.com",
password: "MyStr0ng!Pass",
});
console.log(result);ctx := context.Background()
// This call needs no API key.
client := didit.NewClient()
result, err := client.Account.Login(ctx, didit.LoginRequest{
Email: "you@yourdomain.com",
Password: "MyStr0ng!Pass",
})
if err != nil {
log.Fatal(err)
}
fmt.Printf("%+v\n", result)import me.didit.Didit;
import me.didit.types.LoginRequest;
// This call needs no API key.
Didit client = new Didit();
var result = client.account().login(LoginRequest.builder()
.email("you@yourdomain.com")
.password("MyStr0ng!Pass")
.build());
System.out.println(result);<?php
require 'vendor/autoload.php';
use Didit\DiditClient;
// This call needs no API key.
$didit = new DiditClient();
$result = $didit->account->login([
'email' => 'you@yourdomain.com',
'password' => 'MyStr0ng!Pass',
]);
print_r($result->toArray());require "didit"
# This call needs no API key.
didit = Didit::Client.new
result = didit.account.login(
email: "you@yourdomain.com",
password: "MyStr0ng!Pass"
)
puts result.to_husing System;
using System.Text.Json;
using Didit;
// This call needs no API key.
using var client = new DiditClient();
var result = await client.Account.LoginAsync(new LoginRequest
{
Email = "you@yourdomain.com",
Password = "MyStr0ng!Pass",
});
Console.WriteLine(JsonSerializer.Serialize(result));{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 86400,
"message": "Login successful"
}Corps
application/json
Réponse
Connexion réussie. Renvoie une nouvelle paire de JWT. Utilisez l'access_token comme Authorization: Bearer <token> sur /organizations/me/... pour récupérer l'org_id, l'app_id et l'api_key. Lorsque le compte dispose d'une application d'authentification ou d'une clé d'accès (passkey), la réponse contient 2fa_required: true et un temp_token au lieu des tokens.
Dernière modification le 7 novembre 2026