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"
}Auth-API (programmatisch)
Programmatische Login-API: Headless-Auth-Tokens
POST /programmatic/login/ bei Didit: headless Authentifizierung. Gibt Access-Tokens aus, ohne 2FA. Agent-nativ, MCP-fähig, Abrechnung pro Nutzung.
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"
}Body
application/json
Antwort
Anmeldung erfolgreich. Gibt ein neues JWT-Paar zurück. Verwenden Sie das access_token als Authorization: Bearer <token> bei Aufrufen von /organizations/me/..., um org_id, app_id und api_key abzufragen. Wenn für das Konto eine Authentifikator-App oder ein Passkey eingerichtet ist, enthält die Antwort 2fa_required: true und ein temp_token anstelle von Tokens.
Zuletzt geändert am 7. November 2026