santosautomation-com Agent Readiness API

The Agent Readiness API from santosautomation-com — 2 operation(s) for agent readiness.

Operations 2

GET /api/agent-readiness Assess public agent-facing interfaces ($0.075 USDC via x402) #
POST /api/audit/remediate Generate llms.txt and Organization JSON-LD for failed AI Readiness layers… #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/santosautomation-com:santosautomation-com-agent-readiness-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

santosautomation-com-agent-readiness-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Santos Website Intelligence Agent Readiness API
  version: 2.18.0
  description: 'AI Website Intelligence for determining whether public websites can be discovered, understood, trusted, and used by agents. Twelve paid capabilities use USDC on Base mainnet (eip155:8453) via x402 v2 with no account or traditional API key. QUICK INTELLIGENCE (GET /api/audit, $0.015, synchronous): lightweight single-page fetch-and-parse audit. AGENT READINESS (GET /api/agent-readiness, $0.075, synchronous): bounded passive discovery and applicability-aware assessment of agent-facing interfaces. DEEP WEBSITE INTELLIGENCE (POST /v1/audits, $0.225, asynchronous): real Chromium via Playwright, Lighthouse, rendered axe-core, browser evidence, screenshots, and passive security checks. The other eight paid capabilities — SAFE FETCH (GET /v1/fetch, $0.002), CONTENT EXTRACTION (POST /v1/extract, $0.005), FEED PARSER (GET /v1/feed, $0.003), LINK MAP (GET /v1/links, $0.003), SUMMARIZER (POST /v1/summarize, $0.033), SCREENSHOT & PDF RENDER (GET /v1/screenshot, $0.01), STRUCTURED EXTRACTION (POST /v1/extract/structured, $0.08), and BATCH QUICK INTELLIGENCE (POST /api/audit/batch, $0.50 flat for up to 50 URLs) — are documented per-path below. Quick and Agent Readiness payments settle only on a successful response; Deep payment purchases a bounded compute reservation and settles when the job is accepted.'
  contact:
    name: Santos Automation
    email: info@santosautomation.com
    url: https://www.santosautomation.com
servers:
- url: https://api.santosautomation.com
tags:
- name: Agent Readiness
paths:
  /api/agent-readiness:
    get:
      operationId: auditAgentReadiness
      tags:
      - Agent Readiness
      summary: Assess public agent-facing interfaces ($0.075 USDC via x402)
      description: 'Requires $0.075 USDC through x402 v2 and settles only after a successful audit response. Classifies the target before scoring and evaluates only applicable surfaces: discovery/docs, structured identity, APIs, MCP, operational trust, and machine commerce. For paid surfaces it normalizes public pricing claims and compares only claims scoped to the same paid resource against an unsigned x402 challenge. The quick pass performs at most eight additional bounded public requests. It never authenticates, creates accounts, submits forms, signs target payments, transfers funds to the target, or invokes advertised MCP/business tools. llms.txt is treated as a proposal and the MCP Registry as preview infrastructure.'
      parameters:
      - name: url
        in: query
        required: true
        schema:
          type: string
          format: uri
        description: Publicly reachable HTTP or HTTPS website URL. Bare domains are accepted (https:// is assumed). Localhost, private-network, and cloud-metadata addresses are rejected.
        example: https://example.com
      - name: depth
        in: query
        required: false
        schema:
          type: string
          enum:
          - quick
          default: quick
      - name: public
        in: query
        required: false
        schema:
          type: string
          enum:
          - '1'
          - 'true'
          - 'yes'
          - 'on'
          - '0'
          - 'false'
        description: 'Opt in to the public leaderboard: the signed report replaces this domain''s listing at https://www.santosautomation.com/reports/{domain}. Off by default. The outcome is reported in the X-Santos-Public-Listing response header (not-requested | listed; url=… | failed); the signed body is unchanged. A published Agent Readiness report no longer unlocks free remediation.'
      responses:
        '200':
          description: Versioned Agent Readiness result with additive Website Intelligence presentation fields.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentReadinessResult'
        '400':
          description: Invalid or blocked target URL.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '402':
          description: Payment required. PAYMENT-REQUIRED contains x402 v2 terms for $0.075 USDC (75000 atomic units) on eip155:8453.
        '502':
          description: Target or required public interface was unreachable.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '504':
          description: Bounded audit timed out.
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
  /api/audit/remediate:
    post:
      operationId: remediateAiReadiness
      tags:
      - Agent Readiness
      summary: Generate llms.txt and Organization JSON-LD for failed AI Readiness layers…
      description: 'Pure generation: the target domain is never fetched. llms.txt is returned when discoverable or callable failed, Organization JSON-LD when understandable failed. Access: include `report` (a signed, never-published /api/agent-readiness report for the same domain) for free use, 5 uses per report and 30 report attempts per IP per hour; otherwise x402 v2 payment (base64 PAYMENT-REQUIRED challenge header; retry with PAYMENT-SIGNATURE), settled only on a successful response. Unpaid requests always receive the 402 challenge before validation.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - domain
              - siteDescription
              - failedLayers
              properties:
                domain:
                  type: string
                  maxLength: 253
                  description: Bare domain or origin (https://example.com). IPs, paths and credentials are rejected.
                siteDescription:
                  type: string
                  minLength: 1
                  maxLength: 1000
                failedLayers:
                  type: array
                  minItems: 1
                  items:
                    type: string
                    enum:
                    - discoverable
                    - understandable
                    - callable
                existingEndpoints:
                  type: array
                  maxItems: 100
                  items:
                    type: object
                    required:
                    - path
                    - method
                    - desc
                    properties:
                      path:
                        type: string
                        maxLength: 512
                        description: Absolute path starting with /; no query, fragment, spaces or brackets.
                      method:
                        type: string
                        enum:
                        - GET
                        - POST
                      desc:
                        type: string
                        maxLength: 300
                report:
                  type: object
                  description: Optional signed, unpublished /api/agent-readiness report for the same domain.
      responses:
        '200':
          description: Remediation generated. On the x402 path the PAYMENT-RESPONSE header carries the settlement receipt.
          content:
            application/json:
              schema:
                type: object
                properties:
                  domain:
                    type: string
                  origin:
                    type: string
                  failedLayers:
                    type: array
                    items:
                      type: string
                  artifacts:
                    type: object
                    properties:
                      llmsTxt:
                        type:
                        - object
                        - 'null'
                        properties:
                          addresses:
                            type: array
                            items:
                              type: string
                          path:
                            type: string
                            const: /llms.txt
                          contentType:
                            type: string
                          content:
                            type: string
                      jsonLd:
                        type:
                        - object
                        - 'null'
                        properties:
                          addresses:
                            type: array
                            items:
                              type: string
                          placement:
                            type: string
                            const: head
                          content:
                            type: string
                          data:
                            type: object
                  warnings:
                    type: array
                    items:
                      type: string
                  access:
                    type: object
                    properties:
                      mode:
                        type: string
                        enum:
                        - x402
                        - report
        '400':
          description: Invalid JSON or request (INVALID_JSON, INVALID_REQUEST with per-field details).
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '402':
          description: Payment required. PAYMENT-REQUIRED contains x402 v2 terms for $0.02 USDC on eip155:8453.
        '403':
          description: 'Report rejected: INVALID_REPORT, REPORT_DOMAIN_MISMATCH, REPORT_PUBLISHED, or REPORT_ALLOWANCE_USED.'
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '413':
          description: Body over 1 MB (BODY_TOO_LARGE).
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '415':
          description: Content-Type must be application/json (UNSUPPORTED_MEDIA_TYPE).
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '429':
          description: Report path limited to 30 attempts per IP per hour (RATE_LIMITED).
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
        '503':
          description: Report check unavailable (REPORT_CHECK_UNAVAILABLE) or route not enabled (SERVICE_UNAVAILABLE).
          content:
            application/json:
              schema:
                type: object
                required:
                - error
                properties:
                  error:
                    type: string
                    description: Human-readable explanation.
                  code:
                    type: string
                    description: Stable machine-readable error code.
                    enum:
                    - INVALID_URL
                    - UNSUPPORTED_SCHEME
                    - PRIVATE_ADDRESS_BLOCKED
                    - RATE_LIMITED
                    - FREE_TIER_RETIRED
                    - AUDIT_TIMEOUT
                    - TARGET_UNREACHABLE
                    - AUDIT_FAILED
                    - INVALID_EXTRACTION_SCHEMA
                    - STRUCTURED_OUTPUT_INVALID
components:
  schemas:
    AgentReadinessResult:
      $schema: https://json-schema.org/draft/2020-12/schema
      $id: https://api.santosautomation.com/schemas/agent-readiness-result-1.0.0.json
      title: AgentReadinessResult
      type: object
      required:
      - schema_version
      - target
      - profile
      - readiness_level
      - score
      - grade
      - confidence
      - tested_coverage_percent
      - applicability
      - subscores
      - interfaces
      - findings
      - recommended_actions
      - limitations
      properties:
        schema_version:
          type: string
          const: 1.0.0
        website_intelligence_score:
          type:
          - integer
          - 'null'
          minimum: 0
          maximum: 100
        website_intelligence:
          type: object
          description: Additive AI Website Intelligence presentation with four dimensions, coverage, confidence, and prioritized fixes.
          properties:
            schema_version:
              type: string
              const: 1.0.0
            score:
              type:
              - integer
              - 'null'
              minimum: 0
              maximum: 100
            dimensions:
              type: object
              properties:
                discoverable:
                  type:
                  - integer
                  - 'null'
                  minimum: 0
                  maximum: 100
                understandable:
                  type:
                  - integer
                  - 'null'
                  minimum: 0
                  maximum: 100
                callable:
                  type:
                  - integer
                  - 'null'
                  minimum: 0
                  maximum: 100
                trustworthy:
                  type:
                  - integer
                  - 'null'
                  minimum: 0
                  maximum: 100
        target:
          type: object
          required:
          - requested_url
          - canonical_origin
          - final_url
          properties:
            requested_url:
              type: string
            canonical_origin:
              type: string
              format: uri
            final_url:
              type: string
              format: uri
          additionalProperties: false
        profile:
          type: string
          enum:
          - general_website
          - documentation_site
          - api_provider
          - mcp_provider
          - agent_commerce_provider
        readiness_level:
          type: object
          required:
          - level
          - name
          properties:
            level:
              type: integer
              minimum: 0
              maximum: 4
            name:
              type: string
          additionalProperties: false
        score:
          type: integer
          minimum: 0
          maximum: 100
        grade:
          type: string
          enum:
          - A
          - B
          - C
          - D
          - F
        confidence:
          type: number
          minimum: 0
          maximum: 1
        tested_coverage_percent:
          type: integer
          minimum: 0
          maximum: 100
        applicability:
          type: object
          additionalProperties:
            type: string
            enum:
            - tested
            - not_applicable
            - unknown
        subscores:
          type: object
          additionalProperties:
            type: integer
            minimum: 0
            maximum: 100
        interfaces:
          type: object
        findings:
          type: array
          items:
            type: object
            required:
            - id
            - category
            - severity
            - confidence
            - status
            - title
            - recommendation
            properties:
              id:
                type: string
              category:
                type: string
              severity:
                type: string
                enum:
                - info
                - low
                - moderate
                - high
              confidence:
                type: string
                enum:
                - low
                - medium
                - high
              status:
                type: string
                enum:
                - pass
                - fail
                - unknown
                - not_applicable
              title:
                type: string
              evidence:
                type: object
              recommendation:
                type: string
        recommended_actions:
          type: array
          items:
            type: object
        limitations:
          type: array
          items:
            type: string
        fetch_budget:
          type: object