Backend SDKs
- Written for
- + Written for
- Deprecated
- + Deprecated
- Applies to
- + Applies to
AdminUpdated Sep 11, 2026
Backend SDKs
Backend SDKs do two jobs: manage your instance over the secret-key BAPI, and verify session JWTs locally against JWKS. The base URL defaults to https://api.atlas.dev and is overridable.
Node — @atlas/backend
npm install @atlas/backendimport { createAtlasClient, AtlasBackend, paginate } from '@atlas/backend';
// Management
const atlas = createAtlasClient({ secretKey: process.env.ATLAS_SECRET_KEY! });
const user = await atlas.users.create({ email_address: 'ada@example.com' }, 'signup-ada-001');
for await (const org of paginate(atlas.organizations.list)) console.log(org.name);
// Verification
const backend = new AtlasBackend({
jwksUrl: 'https://accounts.yourapp.com/.well-known/jwks.json',
issuer: 'https://accounts.yourapp.com',
});
const auth = await backend.authenticateRequest(req);
if (auth.ok) auth.protect({ permission: 'org:billing:manage' });Python — atlas-backend
Sync AtlasClient and async AsyncAtlasClient.
pip install atlas-backendfrom atlas_backend import AtlasClient, AtlasError, paginate
atlas = AtlasClient("sk_live_...", base_url="https://api.atlas.dev")
user = atlas.users.create(
{"email_address": "ada@example.com", "first_name": "Ada"},
idempotency_key="signup-ada-001",
)
page = atlas.organizations.list(limit=20)
print(page["data"], page["has_more"], page["next_cursor"])Go — atlas-go
Idiomatic, stdlib-only client plus local JWT verification via AtlasBackend.
go get github.com/atlas-auth/atlas-gopackage main
import (
"context"
"fmt"
"log"
atlas "github.com/atlas-auth/atlas-go"
)
func main() {
c := atlas.New("sk_live_...", atlas.WithBaseURL("https://api.atlas.dev"))
user, err := c.Users.Create(context.Background(), atlas.CreateUserParams{
EmailAddress: "ada@example.com",
FirstName: "Ada",
})
if err != nil {
log.Fatal(err)
}
fmt.Println("created", user.ID)
}Token verification: atlas.NewAtlasBackend(...) then backend.Verify(ctx, token).
Ruby — atlas-auth
Ruby 3.0+.
# Gemfile
gem "atlas-auth"require "atlas"
atlas = Atlas::Client.new(ENV.fetch("ATLAS_SECRET_KEY")) # "sk_live_..."
user = atlas.users.create(email_address: "ada@example.com", password: "•••••••")
page = atlas.users.list(limit: 20)
Atlas.paginate(atlas.organizations).each { |org| puts org["name"] }PHP — atlas-auth/atlas-php
PSR-18/PSR-17 (Guzzle default) plus a local SessionVerifier. PHP 8.1+.
composer require atlas-auth/atlas-phpuse Atlas\Client;
$atlas = new Client('sk_live_…');
$user = $atlas->users->get('user_123');
$page = $atlas->users->list(['limit' => 50]);
foreach ($page['data'] as $u) { /* … */ }Java — net.atlasauth:atlas-java
Typed AtlasClient plus a local SessionVerifier. Java 17+.
// Gradle
implementation("net.atlasauth:atlas-java:1.0.0")<!-- Maven -->
<dependency>
<groupId>net.atlasauth</groupId>
<artifactId>atlas-java</artifactId>
<version>1.0.0</version>
</dependency>import net.atlasauth.atlas.AtlasClient;
import net.atlasauth.atlas.models.User;
AtlasClient atlas = AtlasClient.builder()
.secretKey(System.getenv("ATLAS_SECRET_KEY"))
.build();
User user = atlas.users().get("usr_123");.NET — Atlas.Sdk
AtlasClient (management) and AtlasBackend (local JWT verification). Targets netstandard2.1 and net8.0.
dotnet add package Atlas.Sdkusing Atlas;
using Atlas.Resources;
using var atlas = new AtlasClient("sk_live_...");
User user = await atlas.Users.GetAsync("user_123");
User created = await atlas.Users.CreateAsync(
new CreateUserBody { EmailAddress = "ada@example.com" },
idempotencyKey: "signup-8f3c");Was this page helpful?