HubVibe Audit API

The Audit API from HubVibe — 5 operation(s) for audit.

GitHub OpenAPI

Operations 5

POST /audit/wcag Audit Wcag #
POST /audit/seo Audit Seo #
POST /audit/security Audit Security #
POST /audit/performance Audit Performance #
POST /audit/bundle Audit Bundle #

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/hubvibe-io-com:hubvibe-io-com-audit-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

hubvibe-io-com-audit-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 'HubVibe: Pay-per-Call Agent Tools: Web Search, Email…'
  description: 'Pay-per-call tools for AI agents under /work -- web search and cited research, email verification, company enrichment, contact and sanctions screening, non-government ownership and public identity intelligence, phone/IP/DNS lookups, stock prices, SEC filings and insider trades, crypto prices and prediction-market odds, news in any language, economic and open data, US real-estate data, flight status, places and weather, web scraping, LLM completion and extraction, BigQuery SQL and forecasting, a deterministic probability engine, image/speech/video generation and sandboxed Python -- plus five deterministic site audits: accessibility (axe-core), SEO, security headers, performance, and the $0.15 bundle, at $0.05 per single audit. Every /work route declares its request schema and a typed 200 response schema with an example; every delivered job has a receipt at /work/receipts/{id}.


    Built for agent-to-agent use: every paid route answers an unauthenticated request with HTTP 402 carrying a machine-readable payment challenge, so a paying agent can discover the price and settle without a human in the loop. The challenge names the rails this deployment can actually settle; see /.well-known/agent.json.


    Every result is a rule-based check against the actual page. Nothing here is an LLM judging quality, and a check that could not run is reported as an error, never as a passing result.


    Discovery: /.well-known/agent.json, /.well-known/ard.json, /llms.txt, /mcp.json, /openapi.json, and GET /discover?q= (or POST /discover/semantic with {"query": ...}) -- a free ranked search over the capabilities this node sells right now; /discover/health says which methods are live.'
  termsOfService: https://hubvibe-io.com/terms
  contact:
    name: HubVibe
    url: https://hubvibe-io.com/
    email: Hubvibe@hubvibe-io.com
  version: 1.35.0
  x-guidance: 'HubVibe sells 75 tools to AI agents, one POST route each, priced per call in USD ($0.05 to $20.00; each operation''s x-payment-info.price). No account and no subscription.

    To buy: POST the JSON body the operation''s requestBody schema describes (every operation carries an example). Unpaid, the route answers HTTP 402 with the price and a payment challenge for each rail its x-payment-info.protocols lists. Rails: x402 (USDC; sign an EIP-3009 authorization for the amount to the 402''s payTo and send it as PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1)); MPP tempo (USDC on Tempo; send Authorization: Payment); MPP evm (USDC on Base; send Authorization: Payment); MPP stripe (card; send Authorization: Payment). Pay with any one and resend the same request with the credential. A /work 200 also carries a receipt id (GET /work/receipts/{receipt_id}). A /work job still running at 22 s answers 202 with collect_url (GET /work/jobs/{job_id}, free); its payment is taken only when it delivers.

    Not billed: a 429 (the rate limit is checked before payment), a call that produced no result (an MPP tempo or evm credential from one can be presented again while its challenge is valid), or a /work result that fails its published 200 schema (HTTP 502, contract_mismatch).

    Before paying, GET /contracts/{capability} returns the exact terms under a contract_hash (GET /contracts lists all); send it as X-HubVibe-Contract and the node refuses payment if the terms changed.

    Prepaid: a USDC transfer on Solana buys an X-API-Key (POST /pay/solana/challenge, then /pay/solana/redeem).

    The same tools are MCP tools at /mcp (x402 over MCP) and A2A skills at /a2a. Request examples: each operation here, /.well-known/agent.json and /contracts/{capability}. Catalog: GET /work and /llms.txt.'
servers:
- url: https://hubvibe-io.com
  description: Production
tags:
- name: Audit
paths:
  /audit/wcag:
    post:
      summary: Audit Wcag
      description: 'Website accessibility audit (a11y, WCAG compliance check): WCAG 2.1 level A and AA conformance of any live URL or raw HTML, tested with axe-core in a real headless browser. Returns every violation with rule id, impact, help text and affected node count. Deterministic rules; a check that cannot run returns an error, never a pass.'
      operationId: audit_wcag_audit_wcag_post
      parameters:
      - $ref: '#/components/parameters/XApiKey'
      - $ref: '#/components/parameters/XPayment'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuditRequest'
            example:
              url: https://example.com
      responses:
        '200':
          description: The audit result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Wcag'
              example:
                status: ok
                pass: false
                engine: axe-core
                ruleset: wcag2a, wcag2aa, wcag21a, wcag21aa
                violations:
                - id: image-alt
                  impact: critical
                  help: Images must have alternative text
                  help_url: https://dequeuniversity.com/rules/axe/4.12/image-alt
                  nodes_affected: 3
                - id: color-contrast
                  impact: serious
                  help: Elements must meet minimum color contrast ratio thresholds
                  help_url: https://dequeuniversity.com/rules/axe/4.12/color-contrast
                  nodes_affected: 7
                coverage:
                  frames_audited: 2
                  frames_unreachable: 0
                  frames_not_loaded: 1
                  page_finished_loading: true
        '422':
          $ref: '#/components/responses/ValidationError422'
        '402':
          description: Payment Required
      x-payment-info:
        offers:
        - amount: '50000'
          currency: '0x20C000000000000000000000b9537d11c60E8b50'
          intent: charge
          method: tempo
        - amount: '50000'
          currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          intent: charge
          method: evm
        - method: x402
          scheme: exact
          network: eip155:8453
          asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          amount: '50000'
          currency: USDC
          payTo: '0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd'
          x402Versions:
          - 1
          - 2
        protocols:
        - x402: {}
        - mpp:
            method: tempo
            intent: charge
            currency: '0x20C000000000000000000000b9537d11c60E8b50'
        - mpp:
            method: evm
            intent: charge
            currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      tags:
      - Audit
  /audit/seo:
    post:
      summary: Audit Seo
      operationId: audit_seo_audit_seo_post
      parameters:
      - $ref: '#/components/parameters/XApiKey'
      - $ref: '#/components/parameters/XPayment'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuditRequest'
            example:
              url: https://example.com
      responses:
        '200':
          description: The audit result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response200_d506ad1e'
              example:
                status: ok
                pass: false
                findings:
                - id: missing-meta-description
                  severity: critical
                  detail: No meta description found
                - id: missing-canonical
                  severity: minor
                  detail: No canonical link found
        '422':
          $ref: '#/components/responses/ValidationError422'
        '402':
          description: Payment Required
      x-payment-info:
        offers:
        - amount: '50000'
          currency: '0x20C000000000000000000000b9537d11c60E8b50'
          intent: charge
          method: tempo
        - amount: '50000'
          currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          intent: charge
          method: evm
        - method: x402
          scheme: exact
          network: eip155:8453
          asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          amount: '50000'
          currency: USDC
          payTo: '0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd'
          x402Versions:
          - 1
          - 2
        protocols:
        - x402: {}
        - mpp:
            method: tempo
            intent: charge
            currency: '0x20C000000000000000000000b9537d11c60E8b50'
        - mpp:
            method: evm
            intent: charge
            currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      description: 'SEO audit of a web page (on-page SEO check) for any live URL or raw HTML: title tag, meta description, H1 heading structure, canonical link, OpenGraph and social tags, JSON-LD structured data, html lang attribute. Rule-by-rule findings with severity and what is missing or malformed.'
      tags:
      - Audit
  /audit/security:
    post:
      summary: Audit Security
      operationId: audit_security_audit_security_post
      parameters:
      - $ref: '#/components/parameters/XApiKey'
      - $ref: '#/components/parameters/XPayment'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UrlAuditRequest'
            example:
              url: https://example.com
      responses:
        '200':
          description: The audit result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response200_d506ad1e'
              example:
                status: ok
                pass: false
                findings:
                - id: missing-hsts
                  severity: serious
                  detail: No Strict-Transport-Security header
                - id: missing-csp
                  severity: moderate
                  detail: No Content-Security-Policy header
        '422':
          $ref: '#/components/responses/ValidationError422'
        '402':
          description: Payment Required
      x-payment-info:
        offers:
        - amount: '50000'
          currency: '0x20C000000000000000000000b9537d11c60E8b50'
          intent: charge
          method: tempo
        - amount: '50000'
          currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          intent: charge
          method: evm
        - method: x402
          scheme: exact
          network: eip155:8453
          asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          amount: '50000'
          currency: USDC
          payTo: '0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd'
          x402Versions:
          - 1
          - 2
        protocols:
        - x402: {}
        - mpp:
            method: tempo
            intent: charge
            currency: '0x20C000000000000000000000b9537d11c60E8b50'
        - mpp:
            method: evm
            intent: charge
            currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      description: 'Security headers check for a website: audits HTTPS, HSTS, Content- Security-Policy (CSP), X-Content-Type-Options, X-Frame-Options / clickjacking protection, Referrer-Policy and CORS from the real HTTP response of any live URL. Findings with severity for what is missing. Header posture only, not a penetration test.'
      tags:
      - Audit
  /audit/performance:
    post:
      summary: Audit Performance
      operationId: audit_performance_audit_performance_post
      parameters:
      - $ref: '#/components/parameters/XApiKey'
      - $ref: '#/components/parameters/XPayment'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UrlAuditRequest'
            example:
              url: https://example.com
      responses:
        '200':
          description: The audit result.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response200'
              example:
                status: ok
                pass: false
                metrics:
                  dom_node_count: 2097
                  total_bytes_transferred: 3412000
                  request_count: 118
                  unmeasured_responses: 0
                findings:
                - id: high-dom-complexity
                  severity: moderate
                  detail: 2097 DOM nodes (recommended <= 1500)
                - id: heavy-page-weight
                  severity: moderate
                  detail: 3.4 MB transferred (recommended <= 3 MB)
                - id: high-request-count
                  severity: minor
                  detail: 118 network requests (recommended <= 100)
                disclosure: Single-page-load measurement, not a full Lighthouse-style audit.
        '422':
          $ref: '#/components/responses/ValidationError422'
        '402':
          description: Payment Required
      x-payment-info:
        offers:
        - amount: '50000'
          currency: '0x20C000000000000000000000b9537d11c60E8b50'
          intent: charge
          method: tempo
        - amount: '50000'
          currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          intent: charge
          method: evm
        - method: x402
          scheme: exact
          network: eip155:8453
          asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          amount: '50000'
          currency: USDC
          payTo: '0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd'
          x402Versions:
          - 1
          - 2
        protocols:
        - x402: {}
        - mpp:
            method: tempo
            intent: charge
            currency: '0x20C000000000000000000000b9537d11c60E8b50'
        - mpp:
            method: evm
            intent: charge
            currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      description: 'Page speed and page weight audit of a web page from one real browser load: total bytes transferred, HTTP request count and DOM node count, measured rather than estimated, with findings when the page is heavy. Page-weight signals, not Core Web Vitals.'
      tags:
      - Audit
  /audit/bundle:
    post:
      summary: Audit Bundle
      description: 'Full website audit in one call: accessibility (WCAG 2.1 A/AA via axe-core), on-page SEO, HTTP security headers and page speed / page weight, from a single browser load of one URL. Cheaper than four separate calls; if any part cannot run, nothing is billed. Use a single audit route when you need only one of the four.'
      operationId: audit_bundle_audit_bundle_post
      parameters:
      - $ref: '#/components/parameters/XApiKey'
      - $ref: '#/components/parameters/XPayment'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UrlAuditRequest'
            example:
              url: https://example.com
      responses:
        '200':
          description: The audit result.
          content:
            application/json:
              schema:
                $schema: https://json-schema.org/draft/2020-12/schema
                type: object
                properties:
                  status:
                    type: string
                    const: ok
                    description: Present only on a completed audit.
                  pass:
                    type: boolean
                    description: Whether every rule in this dimension passed.
                  wcag:
                    $ref: '#/components/schemas/Wcag'
                  seo:
                    $ref: '#/components/schemas/Response200_d506ad1e'
                  security:
                    $ref: '#/components/schemas/Response200_d506ad1e'
                  performance:
                    $ref: '#/components/schemas/Response200'
                required:
                - pass
              example:
                status: ok
                pass: false
                wcag:
                  status: ok
                  pass: false
                  engine: axe-core
                  ruleset: wcag2a, wcag2aa, wcag21a, wcag21aa
                  violations:
                  - id: image-alt
                    impact: critical
                    help: Images must have alternative text
                    help_url: https://dequeuniversity.com/rules/axe/4.12/image-alt
                    nodes_affected: 3
                  coverage:
                    frames_audited: 2
                    frames_unreachable: 0
                    frames_not_loaded: 1
                    page_finished_loading: true
                seo:
                  status: ok
                  pass: false
                  findings:
                  - id: missing-meta-description
                    severity: critical
                    detail: No meta description found
                security:
                  status: ok
                  pass: false
                  findings:
                  - id: missing-hsts
                    severity: serious
                    detail: No Strict-Transport-Security header
                performance:
                  status: ok
                  pass: false
                  metrics:
                    dom_node_count: 2097
                    total_bytes_transferred: 3412000
                    request_count: 118
                    unmeasured_responses: 0
                  findings:
                  - id: high-dom-complexity
                    severity: moderate
                    detail: 2097 DOM nodes (recommended <= 1500)
                  disclosure: Single-page-load measurement, not a full Lighthouse-style audit.
        '422':
          $ref: '#/components/responses/ValidationError422'
        '402':
          description: Payment Required
      x-payment-info:
        offers:
        - amount: '150000'
          currency: '0x20C000000000000000000000b9537d11c60E8b50'
          intent: charge
          method: tempo
        - amount: '150000'
          currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          intent: charge
          method: evm
        - method: x402
          scheme: exact
          network: eip155:8453
          asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
          amount: '150000'
          currency: USDC
          payTo: '0x837C40E2B4e976f43Ffb4451eE281A00fA9477dd'
          x402Versions:
          - 1
          - 2
        protocols:
        - x402: {}
        - mpp:
            method: tempo
            intent: charge
            currency: '0x20C000000000000000000000b9537d11c60E8b50'
        - mpp:
            method: evm
            intent: charge
            currency: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        price:
          mode: fixed
          currency: USD
          amount: '0.15'
      tags:
      - Audit
components:
  responses:
    ValidationError422:
      description: Validation Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HTTPValidationError'
  parameters:
    Authorization:
      name: authorization
      in: header
      required: false
      schema:
        anyOf:
        - type: string
        - type: 'null'
        title: Authorization
    XApiKey:
      name: x-api-key
      in: header
      required: false
      schema:
        anyOf:
        - type: string
        - type: 'null'
        title: X-Api-Key
    XPayment:
      name: x-payment
      in: header
      required: false
      schema:
        anyOf:
        - type: string
        - type: 'null'
        title: X-Payment
  schemas:
    Response200_d506ad1e:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        status:
          type: string
          const: ok
          description: Present only on a completed audit.
        pass:
          type: boolean
          description: Whether every rule in this dimension passed.
        findings:
          $ref: '#/components/schemas/Findings'
      required:
      - pass
    UrlAuditRequest:
      properties:
        url:
          type: string
          title: Url
        language:
          $ref: '#/components/schemas/Language_25963fa1'
      type: object
      required:
      - url
      title: UrlAuditRequest
      description: 'For audit routes that need a live, fetchable URL -- security and

        performance checks inspect real HTTP responses and real network

        behavior, so raw HTML alone (no server to talk to) isn''t enough.'
    Language_25963fa1:
      anyOf:
      - type: string
        maxLength: 35
      - type: 'null'
      title: Language
      description: 'Optional BCP-47 language tag (en, ja, ko, pt-BR): the human-readable text of the findings is returned in this language; rule ids, severities, URLs and numbers are untouched. Default: English.'
    Findings:
      type: array
      description: One entry per rule that did not pass. Empty when the check is clean.
      items:
        type: object
        properties:
          id:
            type: string
            description: Stable rule identifier.
          severity:
            type: string
            description: Rule severity.
          detail:
            type: string
            description: What failed and where.
        required:
        - id
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Wcag:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        status:
          type: string
          const: ok
          description: Present only on a completed audit.
        pass:
          type: boolean
          description: Whether every rule in this dimension passed.
        engine:
          type: string
          const: axe-core
        violations:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: axe-core rule id.
              impact:
                type:
                - string
                - 'null'
                description: axe-core impact level.
              help:
                type:
                - string
                - 'null'
              help_url:
                type: string
                format: uri
              nodes_affected:
                type: integer
                minimum: 0
            required:
            - id
      required:
      - pass
    AuditRequest:
      properties:
        html:
          anyOf:
          - type: string
            maxLength: 2097152
          - type: 'null'
          title: Html
          description: Raw HTML source to audit
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
          description: Live URL to audit instead of raw HTML
        language:
          $ref: '#/components/schemas/Language_25963fa1'
      type: object
      title: AuditRequest
    Response200:
      $schema: https://json-schema.org/draft/2020-12/schema
      type: object
      properties:
        status:
          type: string
          const: ok
          description: Present only on a completed audit.
        pass:
          type: boolean
          description: Whether every rule in this dimension passed.
        metrics:
          type: object
          properties:
            dom_node_count:
              type: integer
              minimum: 0
            total_bytes_transferred:
              type: integer
              minimum: 0
            request_count:
              type: integer
              minimum: 0
        findings:
          $ref: '#/components/schemas/Findings'
      required:
      - pass
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
x-service-info:
  categories:
  - data
  - search
  - ai
  - web
  - blockchain
  docs:
    apiReference: /docs
    homepage: /
    llms: /llms.txt
    agent: /.well-known/agent.json
    ard: /.well-known/ard.json