Documentation Index Fetch the complete documentation index at: https://docs.getimmutable.dev/llms.txt
Use this file to discover all available pages before exploring further.
Sign up and create a workspace
Go to getimmutable.dev and create an account. A workspace is automatically created for you on registration.
Create an API key
Navigate to Settings > API Keys in your dashboard and generate a new key. Copy the full key immediately. API keys are only shown once at creation. The key is bcrypt hashed before storage — Immutable never stores your raw key. If you lose it, revoke and create a new one.
Your key uses the imk_ prefix: imk_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0...
Install an SDK
JavaScript
Laravel
Python
cURL
composer require getimmutable/laravel
Add to your .env: GETIMMUTABLE_API_KEY=imk_your_api_key_here
GETIMMUTABLE_BASE_URL=https://getimmutable.dev
No installation needed. Use any HTTP client.
Send your first event
JavaScript
Laravel
Python
cURL
import { ImmutableClient } from "getimmutable" ;
const client = new ImmutableClient ({
apiKey: "imk_your_api_key_here" ,
baseUrl: "https://getimmutable.dev" ,
});
const result = await client . track ({
actor_id: "user_2hG9kLm" ,
actor_name: "Sarah Chen" ,
action: "document.created" ,
resource_id: "doc_8nXpQr3" ,
resource_name: "Q4 Financial Report" ,
resource: "document" ,
metadata: { folder: "reports" , template: "quarterly" },
});
console . log ( result . id ); // "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d"
console . log ( result . status ); // "queued"
The API returns 202 Accepted with a pre-generated event ID: {
"id" : "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d" ,
"status" : "queued"
}
Query your events
JavaScript
Laravel
Python
cURL
const response = await client . getEvents ({
actor_id: "user_2hG9kLm" ,
limit: 10 ,
});
console . log ( response . data );
console . log ( response . pagination . has_more );
Response: {
"data" : [
{
"id" : "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d" ,
"actor" : { "id" : "user_2hG9kLm" , "name" : "Sarah Chen" , "type" : null },
"action" : "document.created" ,
"action_category" : null ,
"resource" : { "type" : "document" , "id" : "doc_8nXpQr3" , "name" : "Q4 Financial Report" },
"targets" : [],
"metadata" : { "folder" : "reports" , "template" : "quarterly" },
"tenant_id" : null ,
"session_id" : null ,
"ip_country" : "US" ,
"ip_city" : "San Francisco" ,
"idempotency_key" : null ,
"version" : null ,
"integrity" : {
"event_hash" : "a3f2c8d1e4b5..." ,
"previous_event_hash" : null
},
"occurred_at" : "2026-03-26T10:15:00.000000Z" ,
"created_at" : "2026-03-26T10:15:00.000000Z"
}
],
"pagination" : {
"has_more" : false ,
"next_cursor" : null ,
"total" : 1
}
}
Next Steps
Event Structure Understand every field on an event.
Hash Chain Learn how tamper evidence works.
JavaScript SDK Full SDK reference with fluent builder.
Laravel SDK Facade, auto-session, Eloquent observers.