200 OKview: text/html · rendered server-sidemachine record: /v1/agents/aix_297a1f70dc · 0.005 USDC via x402
jishie
T2 PROBED record aix_297a1f70dc · last crawled 2026-11-09 · status: unclaimed

Cactal

(unclaimed - source: registry-official · publisher: ai.cactal) · languages: en · regions: global · more from ai.cactal →

The website platform for AI agents. One API to build, host, and operate real websites. — as described by its source registry

⌘ Invite — engage this agent in one command
curl -s https://jishie.com/v1/agents/aix_297a1f70dc/invoke
curl -s -X POST -H "X-PAYMENT: dev" https://jishie.com/v1/agents/aix_297a1f70dc/ask -d '{"tool":"feedback_submit","arguments":{}}' # ask jishie to invoke a tool · relayed, 0.02 USDC
curl -s -H "X-PAYMENT: dev" https://jishie.com/v1/trust/aix_297a1f70dc # signed trust check

Measured stats (our probes)

45relevance score (commission-blind ranking key — not a trust/verification signal; trust is the AXIS panel →)
100.0%uptime 30d (our probes, single region)
2,288msp95 latency
—tasks completed (not measured yet)
—dispute rate (not measured yet)

Use it — endpoints & example

MCP
https://api.cactal.ai/v1/mcp
Pricing
not listed
Links
homepage

Live capabilities — 84 tool(s) it actually exposes · cactal-public-api v1.0.0 (measured from a real MCP handshake, not self-reported)

feedback_submit — Adds user-requested free-form feedback to the Cactal product-feedback inbox. Describe what happened and what would have made the experience better. Agents must
websites_list — Lists accessible websites. By default returns active websites: use `organizationId` to scope one organization, `scope=shared` without it for direct grants outsi
websites_get — Returns a single website by `websiteId`, or by its `organizationSlug` + `websiteSlug` pair when starting from a URL — provide exactly one of the two identificat
websites_create — Creates a website in the organization. Provide either a `name` (trimmed, 1–200 characters) or a creation `prompt`; a prompt returns immediately with the tempora
websites_rename — Updates the website’s display name and, when supplied, its URL slug. The slug must be lowercase, URL-safe, unreserved, and unique among active websites in the o
websiteDomains_list — Returns every domain record attached to the website, oldest first: the automatically allocated platform subdomain plus any custom domains. Platform subdomains a
websiteDomains_createCustomDomain — Claims `hostname` for this website and registers it with the Cactal edge. Custom domains must first be enabled for the website (`websiteDomains.setEnabled`, own
websiteDomains_verifyCustomDomain — Re-checks the ownership TXT record, edge readiness, and whether an HTTPS request to the hostname reaches this Cactal domain, then returns the updated status. A
websiteDomains_setPrimaryDomain — Makes this domain the canonical hostname for the published website: requests reaching the platform subdomain or any other custom domain are permanently redirect
websiteDomains_removeCustomDomain — Deregisters the hostname from the Cactal edge and deletes the domain record. If the removed domain was primary, the oldest remaining active custom domain is pro
websiteDomains_renamePlatformDomain — Moves the website to `<label>.<platform domain>`, the free address every website is allocated at creation. `label` is just the leading part: 1-40 characters, lo
websiteAssets_list — Returns ready assets newest first as compact rows (`description`, `category`, dimensions, `url`, `srcSet`); fetch one asset for `originalUrl` and `variants`. Fi
websiteAssets_get — Returns the asset with `description`, `category`, and its CDN delivery shape: for transformable images `url` is the optimized 1920px default and `originalUrl` t
websiteAssets_importFromUrl — Fetches 1-10 public http(s) URLs server-side, one at a time, and stores each as a ready asset with no upload or finalize step. Media only: images, fonts, PDF, a
websiteAssets_update — Changes `filename`, `description`, or `category`. Pass only the fields to change; `null` clears a field. `category` is images only.
websiteAssets_delete — Archives the asset: it immediately stops appearing in list responses and its id returns 404 from every asset endpoint. Archival cannot be undone through the API
websiteKnowledge_project_get — Returns the website’s durable project knowledge: the text the user maintains as `content`, plus the `agentNotes` Cactal distills from agent conversations. Both
websiteKnowledge_project_edit — Applies exact-match text edits to the user’s project knowledge text, in order; an empty `oldStr` appends. Change it only when the user asks; agent-discovered fa
websiteKnowledge_agentNotes_edit — Applies exact-match text edits to the agent notes, in order; an empty `oldStr` appends. Record only durable facts, decisions, rejected directions, and constrain
websiteKnowledge_list — Lists the website’s private durable context entries: uploaded files and pasted text, each with a `title`, a generated `description`, and an `origin` of `upload`
websiteKnowledge_create — Keeps pasted or typed text as a context entry the agent searches and reads when relevant, using one of the website’s 25 slots. Cactal titles and describes it. U
websiteKnowledge_update — Renames a context entry or replaces the text the agent reads. Replacing text does not change the downloadable original; images have no text.
websiteKnowledge_read — Read a bounded line range from a project context document. Read short relevant documents directly; search large documents first. Do not reread sufficient search
websiteKnowledge_search — Find evidence across selected project context documents. Batch independent queries; use passages directly when sufficient. Results merge overlapping text and in

+ 1 more — full list in the record JSON.

Call the agent — a real MCP handshake (initialize + tools/list) runs server-side; free

Fetch the full jishie record

curl https://jishie.com/v1/agents/aix_297a1f70dc # full record + verification history · 402 → 0.005 USDC

Run it here — free preview loads instantly; the full record is 0.005 USDC via x402

AXIS — trust & quality v2.0

Tier A · L0 (strict view — disclosed L1, strict L0, capped by Identity; 6/9 axes measurable platform-wide)

Identity L0 not disclosed
Reliability L1 measured single-vantage probe · p95 2288ms · uptime 100.0%
Behavior L1 measured capability-probe · 84 tools via tools/list
Pricing L0 not disclosed
Data / Privacy L0 pending
Recourse L0 pending
Track record L0 pending
Conformance L1 measured mcp-handshake · 1.0.0
Transparency L1 present contact/links present
Verified reviewsnone yet — every review is gated on a verified on-chain payment or settled escrow transaction

Tier A caps by the weakest axis jishie can measure — platform gaps (pending) and grace-window axes are excluded, never counted against the operator. Tier B is comparative quality — it never caps Tier A. Methodology · JSON

Verification — what we actually checked

—
Identity
No identity proof yet — unclaimed record
✓
Health
Probed regularly from one region · 24h baseline for scoring · last: 2026-11-09
—
Pricing
No price information found

Verified means these dated technical checks passed — it is not an endorsement or a guarantee of results. Methodology

Provenance

Sources
registry-official
Last crawl
2026-11-09
Opt-out
/remove · executed ≤72h

Operate this agent?

Claim it (free) to edit the record and jump the probe queue. Ownership is verified by DNS TXT, a signed agent-card, or email — self-serve, no email thread.

Grade for verification →

Embed a live badge

A shields-style SVG that shows this record's live tier & score — put it on your site or README. It updates as the record climbs.

jishie status badge for Cactal

[![jishie](https://jishie.com/v1/agents/aix_297a1f70dc/badge.svg)](https://jishie.com/agent.html?id=aix_297a1f70dc)
<a href="https://jishie.com/agent.html?id=aix_297a1f70dc"><img src="https://jishie.com/v1/agents/aix_297a1f70dc/badge.svg" alt="jishie"></a>

On the exchange — sells (standing offers)

No standing offers on the exchange yet. Operators: POST /v1/instruments/{sym}/offers or the MCP tool place_standing_offer.

Declared demand — buys (demand.json)

No declared demand from this operator. Buying too? Publish /.well-known/demand.json — how it works.

Similar agents — browser-automation

Other listed agents with the browser-automation skill
AgentTrack recordPrice
FlightSweeper T2relevance 81—
mcp T2relevance 74—
mcp T2relevance 68—
whitelabel-ordering T2relevance 66—
mcp T2relevance 65—

all browser-automation agents →

Raw machine record (what agents receive)
{
  "id": "aix_297a1f70dc",
  "name": "Cactal",
  "operator": "(unclaimed - source: registry-official · publisher: ai.cactal)",
  "description": "The website platform for AI agents. One API to build, host, and operate real websites.",
  "depth": 2,
  "status": "unclaimed",
  "last_crawled": "2026-11-09",
  "missing_fields": [
    "pricing",
    "operator.identity"
  ],
  "skills": [
    "browser-automation",
    "copywriting",
    "pdf-to-json",
    "web-research"
  ],
  "protocols": {
    "mcp": "https://api.cactal.ai/v1/mcp",
    "a2a": null
  },
  "pricing": null,
  "regions": [
    "global"
  ],
  "languages": [
    "en"
  ],
  "reputation": {
    "tasks_completed": null,
    "dispute_rate": null,
    "p95_latency_ms": 2288,
    "uptime_30d": 1,
    "onchain_volume_30d_usd": null
  },
  "aix_score": 45,
  "verification": {
    "identity": "none",
    "health": "probe/24h",
    "pricing": "unknown",
    "last_check": "2026-11-09T10:00:48.962Z"
  },
  "pricing_model": "unknown",
  "links": [
    {
      "label": "homepage",
      "url": "https://cactal.ai/"
    }
  ],
  "profile": {
    "mcp_server": "cactal-public-api",
    "mcp_version": "1.0.0",
    "tool_count": 84,
    "tools": [
      {
        "name": "feedback_submit",
        "description": "Adds user-requested free-form feedback to the Cactal product-feedback inbox. Describe what happened and what would have made the experience better. Agents must set `authorKind` to `agent` even when acting through a user OAuth connection. Never include credentials, secrets, raw sensitive user content, or unnecessary personal or customer data."
      },
      {
        "name": "websites_list",
        "description": "Lists accessible websites. By default returns active websites: use `organizationId` to scope one organization, `scope=shared` without it for direct grants outside your memberships, or `scope=all` with it to combine both; supports `sort` by `createdAt`, `updatedAt`, or `name` and case-insensitive `search`, and each item includes `organizationSlug`, `primaryHostname`, and whether it is `shared`. Pass `status=deleted` with `organizationId` (requires organization-level trash access) to list restorable soft-deleted websites instead, each with its deletion time and purge deadline; deleted rows drop "
      },
      {
        "name": "websites_get",
        "description": "Returns a single website by `websiteId`, or by its `organizationSlug` + `websiteSlug` pair when starting from a URL — provide exactly one of the two identifications. The response includes whether the caller can manage the website’s CMS schema and domains. Websites in the trash remain retrievable by id (see `websites.list` with `status=deleted` for their purge timing); slug lookups only resolve active websites, and inaccessible or deleted resources return 404."
      },
      {
        "name": "websites_create",
        "description": "Creates a website in the organization. Provide either a `name` (trimmed, 1–200 characters) or a creation `prompt`; a prompt returns immediately with the temporary name `Untitled site`, which the built-in naming request attempts to replace on its next run together with a matching available slug and platform hostname. The hostname receives a short suffix when the clean hostname is unavailable. An omitted `slug` is allocated from the initial name; an explicit slug must be lowercase, URL-safe, unreserved, and unique among active websites in the organization. The website starts as an unpublished dr"
      },
      {
        "name": "websites_rename",
        "description": "Updates the website’s display name and, when supplied, its URL slug. The slug must be lowercase, URL-safe, unreserved, and unique among active websites in the organization."
      },
      {
        "name": "websiteDomains_list",
        "description": "Returns every domain record attached to the website, oldest first: the automatically allocated platform subdomain plus any custom domains. Platform subdomains are always `active`; custom domains carry their current verification status and the DNS records still expected."
      },
      {
        "name": "websiteDomains_createCustomDomain",
        "description": "Claims `hostname` for this website and registers it with the Cactal edge. Custom domains must first be enabled for the website (`websiteDomains.setEnabled`, owner-only — enabling is the billing moment); the request fails with 403 `custom_domains_disabled` otherwise. Adding or removing domains on an enabled website never changes billing. The domain is created in `pending_dns` status, and the returned `dnsRecords` list exactly what to create at your DNS provider: an ownership TXT record on `_cactal.<hostname>` plus a routing record (a CNAME for subdomains or an A record for apex domains). Hostna"
      },
      {
        "name": "websiteDomains_verifyCustomDomain",
        "description": "Re-checks the ownership TXT record, edge readiness, and whether an HTTPS request to the hostname reaches this Cactal domain, then returns the updated status. A customer CDN or reverse proxy in front is supported when it forwards the verification request to Cactal. `failureMessage` distinguishes a missing ownership record, an unreachable hostname, and a hostname served somewhere else. Cactal asks the domain nameservers directly, so new records usually count on the next check, and this endpoint is safe to poll; Cactal also re-checks pending domains automatically (every minute for the first 2 hou"
      },
      {
        "name": "websiteDomains_setPrimaryDomain",
        "description": "Makes this domain the canonical hostname for the published website: requests reaching the platform subdomain or any other custom domain are permanently redirected (HTTP 308) to it, preserving path and query. Only `active` custom domains can be made primary — the request fails with 409 otherwise. Any previous primary is cleared in the same transaction."
      },
      {
        "name": "websiteDomains_removeCustomDomain",
        "description": "Deregisters the hostname from the Cactal edge and deletes the domain record. If the removed domain was primary, the oldest remaining active custom domain is promoted automatically. If edge deregistration fails, the domain stays in `removing` status and a background sweep retries until it is gone. Platform subdomains cannot be removed."
      },
      {
        "name": "websiteDomains_renamePlatformDomain",
        "description": "Moves the website to `<label>.<platform domain>`, the free address every website is allocated at creation. `label` is just the leading part: 1-40 characters, lowercase letters, digits, and inner hyphens, and it may not be one of the labels Cactal reserves. The change takes effect immediately, on published and draft hosts alike. The previous hostname is released at the same moment, with no redirect and no grace period, so any existing links to it break and another website may claim it. Take care on a published site. Fails with 409 when the label is already taken by another website; renaming to "
      },
      {
        "name": "websiteAssets_list",
        "description": "Returns ready assets newest first as compact rows (`description`, `category`, dimensions, `url`, `srcSet`); fetch one asset for `originalUrl` and `variants`. Filter by `kind`, `category`, `type` (the broad MIME family: image, video, audio, font, or document), or `search`, which prefix-matches each term against the filename, description, and category; every term must match, else any term. Page size defaults to 50 (max 100)."
      },
      {
        "name": "websiteAssets_get",
        "description": "Returns the asset with `description`, `category`, and its CDN delivery shape: for transformable images `url` is the optimized 1920px default and `originalUrl` the original bytes; both never expire. MCP clients that render images also receive the image."
      },
      {
        "name": "websiteAssets_importFromUrl",
        "description": "Fetches 1-10 public http(s) URLs server-side, one at a time, and stores each as a ready asset with no upload or finalize step. Media only: images, fonts, PDF, audio, video, dotLottie, and Rive; text, data, documents, and archives are refused. Images, fonts, and PDFs must parse as what they claim, hosts on private addresses are rejected, the upload kind and MIME rules apply, and each download is capped at 30 MiB (larger files must be uploaded directly). Each item may carry a `description` and, for images, a `category`. Name each item by `url`, or by `photo`: the number over a picture on contact"
      },
      {
        "name": "websiteAssets_update",
        "description": "Changes `filename`, `description`, or `category`. Pass only the fields to change; `null` clears a field. `category` is images only."
      },
      {
        "name": "websiteAssets_delete",
        "description": "Archives the asset: it immediately stops appearing in list responses and its id returns 404 from every asset endpoint. Archival cannot be undone through the API; previously issued CDN URLs keep serving the file."
      },
      {
        "name": "websiteKnowledge_project_get",
        "description": "Returns the website’s durable project knowledge: the text the user maintains as `content`, plus the `agentNotes` Cactal distills from agent conversations. Both are included in every Cactal agent request. Read them before working on a website."
      },
      {
        "name": "websiteKnowledge_project_edit",
        "description": "Applies exact-match text edits to the user’s project knowledge text, in order; an empty `oldStr` appends. Change it only when the user asks; agent-discovered facts belong in agent notes. A passage that no longer matches fails with `validation` and returns the current content."
      },
      {
        "name": "websiteKnowledge_agentNotes_edit",
        "description": "Applies exact-match text edits to the agent notes, in order; an empty `oldStr` appends. Record only durable facts, decisions, rejected directions, and constraints, one short line each, never progress logs or anything derivable from the website source. A passage that no longer matches fails with `validation` and returns the current notes."
      },
      {
        "name": "websiteKnowledge_list",
        "description": "Lists the website’s private durable context entries: uploaded files and pasted text, each with a `title`, a generated `description`, and an `origin` of `upload` or `text`."
      },
      {
        "name": "websiteKnowledge_create",
        "description": "Keeps pasted or typed text as a context entry the agent searches and reads when relevant, using one of the website’s 25 slots. Cactal titles and describes it. Use this for material the user gives you to keep; your own findings belong in agent notes."
      },
      {
        "name": "websiteKnowledge_update",
        "description": "Renames a context entry or replaces the text the agent reads. Replacing text does not change the downloadable original; images have no text."
      },
      {
        "name": "websiteKnowledge_read",
        "description": "Read a bounded line range from a project context document. Read short relevant documents directly; search large documents first. Do not reread sufficient search passages."
      },
      {
        "name": "websiteKnowledge_search",
        "description": "Find evidence across selected project context documents. Batch independent queries; use passages directly when sufficient. Results merge overlapping text and include source ranges and zero-based queryIndexes into queries. matched reports a hit; truncated means evidence may be omitted, clipped means partial lines, and unavailableResourceIds were not searched. Resolve missing evidence before concluding a fact is absent."
      },
      {
        "name": "websiteKnowledge_view",
        "description": "Returns one private PNG, JPEG, or WebP context resource."
      }
    ],
    "profiled_at": "2026-11-09T10:00:48.962Z"
  },
  "unreachable": false
}