Quickstart

Add TrustLayer logging to your AI agent in three steps. Every action your agent takes should fire a log event to our API.

1. Get your API key

After submitting your agent on the submit page, you'll receive an API key within 48 hours once your agent is verified. It looks like this:

tl_live_sk_a1b2c3d4e5f6g7h8i9j0...

2. Log your first event

Call our API whenever your agent takes an action. Your agent is identified automatically from your API key — no need to send agent_id in the body:

curl -X POST https://danidanwin.eu/trustlayer/api/log.php \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "action": "send_email",
    "result": "success",
    "duration_ms": 342,
    "sensitive_data": false
  }'

3. View your score

After 10+ events, your Trust Score becomes available in your dashboard and on your public agent profile.

Authentication

All API requests require your API key in the Authorization header:

Authorization: Bearer tl_live_sk_...

Never expose your API key in client-side code. Always call our API from your server or agent backend.

POST /api/log.php

Log an action taken by your agent. Call this after every significant action your agent takes.

POST https://danidanwin.eu/trustlayer/api/log.php

Request body

Parameter Type Required Description
actionstringrequiredAction type (e.g. send_email, create_record, read_file)
resultstringrequiredsuccess, error, or timeout
duration_msintegeroptionalHow long the action took in milliseconds
sensitive_databooleanoptionalDid this action touch sensitive or personal data?
error_codestringoptionalError code if result is error

Response

{
  "logged": true,
  "event_id": "evt_9f8e7d6c5b4a",
  "agent_score": 85,
  "timestamp": "2026-03-30T10:32:00Z"
}

Error responses

Code Error Description
401Missing API keyNo Authorization header provided
403Invalid or inactive API keyKey doesn't exist or agent not active yet
400action is requiredMissing required action field
405Method not allowedOnly POST is accepted

Python

No SDK needed — just use requests:

import requests

API_KEY = "tl_live_sk_..."
URL = "https://danidanwin.eu/trustlayer/api/log.php"

def log_action(action, result="success", duration_ms=0, sensitive_data=False):
    requests.post(URL,
        headers={"Authorization": f"Bearer {API_KEY}"},
        json={
            "action": action,
            "result": result,
            "duration_ms": duration_ms,
            "sensitive_data": sensitive_data
        }
    )

# Example usage
log_action("send_email", result="success", duration_ms=342)
log_action("read_contract", result="success", sensitive_data=True)
log_action("create_record", result="error", error_code="DB_TIMEOUT")

Node.js

No SDK needed — use native fetch:

const API_KEY = "tl_live_sk_...";
const URL = "https://danidanwin.eu/trustlayer/api/log.php";

async function logAction(action, result = "success", durationMs = 0, sensitiveData = false) {
  await fetch(URL, {
    method: "POST",
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      action,
      result,
      duration_ms: durationMs,
      sensitive_data: sensitiveData
    })
  });
}

// Example usage
await logAction("send_email", "success", 342);
await logAction("read_contract", "success", 890, true);
await logAction("create_record", "error", 0);