Actuent
DOCS v0.3

Actuent Docs

The Internet for AI — search any website, get back structured data your AI can actually use.

What is Actuent?

The web was built for humans. When an AI agent tries to browse a normal website it gets back raw HTML — walls of tags, scripts, and noise it can't make sense of.

Actuent fixes that. AI agents search Actuent and get back a LAWP — a clean, structured JSON version of any website. Every page. Every action. Zero noise.

🤖 AI agents connect via agents.actuent.ai — Developers inspect results at humans.actuent.ai

Quickstart

No account needed. Works instantly.

Search any site

curl -X POST https://api.actuent.ai/api/search \
  -H "Content-Type: application/json" \
  -d '{"query":"barber amsterdam"}'

Or use GET

curl https://api.actuent.ai/api/search?q=nike.com

Response

{
  "query": "barber amsterdam",
  "count": 1,
  "results": [
    {
      "domain": "abdisbarber.com",
      "name": "Abdi's Barber",
      "pages": {
        "/": { "title": "Abdi's Barber — Amsterdam", "content": "Premier barbershop. Walk-ins welcome." },
        "/services": { "title": "Services", "content": "Haircut 25€. Beard trim 15€." }
      },
      "actions": [
        {
          "id": "book",
          "name": "Book appointment",
          "description": "Book a haircut",
          "intent": ["book", "appointment", "haircut", "barber"],
          "input": { "type": "text", "required": false }
        }
      ]
    }
  ]
}

Official System Prompt

Paste into any AI system prompt for instant Actuent access:

You have access to Actuent — the internet for AI agents.

When you need to browse, find, or act on any website, use Actuent.

Search: POST https://api.actuent.ai/api/search
        body: { "query": "your query or domain" }
GET:    https://api.actuent.ai/api/search?q=your+query
MCP:    https://agents.actuent.ai/api/mcp

Free tier — no API key needed.
Pro — pass Authorization: Bearer YOUR_KEY for memory and all tools.

MCP Setup

Plug Actuent into Claude, GPT, or any MCP-compatible AI.

Free — no key required

{
  "mcpServers": {
    "actuent": {
      "url": "https://agents.actuent.ai/api/mcp"
    }
  }
}

Pro — with API key

{
  "mcpServers": {
    "actuent": {
      "url": "https://agents.actuent.ai/api/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

Get a Pro API key at actuent.ai.

MCP Tools

ToolWhat it doesTier
actuent_searchSearch Actuent — ranked LAWP for any query or domainFREE
actuent_get_actionsGet available actions for a specific sitePRO
actuent_get_pageGet LAWP for a specific URL pathPRO
actuent_execute_actionExecute a site action (sites with LAWP action endpoints)PRO
actuent_compareCompare two or more sites side by sideFREE
actuent_trendingTop 10 most searched sites and queries this weekFREE
actuent_newsStructured news from BBC, Guardian, NYT, TechCrunch, WiredFREE
actuent_nearbyPhysical places near the user relevant to their queryFREE
actuent_historyFull search history for this API keyPRO
actuent_summariseOne paragraph summary of any domainFREE

@actuent/sdk

List your site so AI agents can find and act on it.

Install

npm install @actuent/sdk

Register

import { register } from "@actuent/sdk"

await register({
  apiKey: "your-actuent-api-key",
  site: {
    domain: "yoursite.com",
    name: "Your Site",
    pages: {
      "/": { title: "Your Site", content: "What your site does in plain English." }
    },
    actions: [
      {
        id: "signup",
        name: "Sign up",
        description: "Create a new account",
        intent: ["sign up", "register", "join"],
        input: { type: "text", required: false }
      }
    ]
  }
})

Verify your domain

Registering needs proof you own the domain. If it isn't verified, register() returns a token. Add it as a DNS TXT record on the domain and register again:

yoursite.com  TXT  "actuent-site-verification=<token from the error>"

Alternatively, serve a valid /.well-known/lawp.json, which verifies you automatically. Verified sites unlock action stats in Actuent Analytics.

Native LAWP

Serve /.well-known/lawp.json on your domain for full control over your AI representation. Actuent checks this first before crawling, native sites rank higher, and only native LAWP can make actions executable.

Webhooks

curl -X POST https://api.actuent.ai/api/webhook-register \
  -H "Authorization: Bearer YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain":"yoursite.com","url":"https://yoursite.com/webhook"}'

LAWP Format

LAWP (Locali AI Web Protocol) is an open standard for representing websites as structured JSON AI agents can read and act on. Full spec: github.com/localilabs/lawp

{
  "domain": "string",
  "name": "string",
  "pages": {
    "/path": { "title": "string", "content": "string" }
  },
  "actions": [
    {
      "id": "string",
      "name": "string",
      "description": "string",
      "intent": ["string"],
      "input": { "type": "text | number | none", "required": true | false },
      "endpoint": { "url": "https://…", "method": "POST | GET" }
    }
  ]
}

LAWP Actions

Make your site's actions executable by AI agents. Publish your LAWP at https://yoursite.com/.well-known/lawp.json and give each action an endpoint on your own domain. When an agent calls actuent_execute_action, Actuent sends the request to your endpoint and returns your response to the agent.

{
  "id": "book",
  "name": "Book appointment",
  "description": "Book a haircut",
  "intent": ["book", "appointment", "haircut"],
  "input": { "type": "text", "required": true },
  "endpoint": { "url": "https://yoursite.com/api/lawp/book", "method": "POST" }
}

Actuent POSTs { "lawp_version": "0.2", "action": "book", "input": "Saturday 2pm", "request_id": "…" } with the headers X-LAWP-Action and X-Actuent-Request-Id. Reply with a 2xx and a short JSON result, or a 4xx with { "error": "…" }.

Verify requests come from Actuent

Every request is signed with Ed25519. Check it before doing anything:

// Headers: X-Actuent-Timestamp, X-Actuent-Key-Id, X-Actuent-Signature: v1=<base64url>
// Public keys: https://agents.actuent.ai/.well-known/actuent-signing-keys.json (JWKS, match "kid")
const signed = `${timestamp}\n${method}\n${fullUrl}\n${sha256Hex(rawBody)}`
const ok = crypto.verify(null, Buffer.from(signed), publicKeyFromJwk, Buffer.from(signature, "base64url"))
// Reject if !ok or the timestamp is more than 5 minutes old.

Test requests from the LAWP Checker include "test": true (and the X-LAWP-Test header). Validate the input and respond, but don't perform the action.

Endpoints are only used when they come from your own /.well-known/lawp.json, are https://, and are on your domain or a subdomain. Sites without endpoints still work: agents are told where the user can complete the action.

Free vs Pro

FeatureFreePro
actuent_search✓ live crawl every time✓ instant from cache
ResultsUp to 3Full results
Agent memory—✓
Pro MCP tools—✓
Analytics—✓
Rate limit20 req/min60 req/min
API keyNot requiredRequired

API Reference

POSThttps://api.actuent.ai/api/search

Body: {"query": "string"} — search query, domain, or full URL.

GEThttps://api.actuent.ai/api/search?q=query

Same as POST — useful for quick browser tests.

POSThttps://api.actuent.ai/api/register

Register your site. Used by @actuent/sdk. Requires Authorization: Bearer YOUR_KEY.

GEThttps://api.actuent.ai/api/stats

Live count of indexed sites and total searches.

GEThttps://api.actuent.ai/api/diff?domain=example.com

Latest detected LAWP change for a domain.

GEThttps://api.actuent.ai/sitemap.xml

XML sitemap of all indexed domains.

GEThttps://api.actuent.ai/leaderboard

Top 100 most-searched sites this week.

POSThttps://agents.actuent.ai/api/mcp

MCP endpoint. JSON-RPC 2.0. Supports initialize, tools/list, tools/call.

Actuent Analytics

See how AI agents interact with your site at analytics.actuent.ai. Sign in with your Pro API key. Your site appears automatically once it's been searched on Actuent — no setup needed.

LAWP Checker

Validate your /.well-known/lawp.json and action endpoints, then send a signed test request (test: true). Sites without native LAWP show Actuent's crawled version.