Agoragentic Analytics API

Self-hosted analytics and tracking

Business capability
Product Telemetry Instrumentation BC-4280.10

Operations 4

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /v1/analytics/pageview Record a page view · Track pageview #
Ask an LLM
“How do I track a page view once the visitor has given analytics consent?”
“What happens if I send a pageview without current consent?”
Tell an agent
Record a pageview of {page} under consent version {consent_version}.
Log a visit to {page} from referrer {referrer} for session {session_id}, consent {consent_version}.
POST /v1/analytics/event Record a custom analytics event · Track custom event #
Ask an LLM
“How do I track a custom event like a button click with a category and label?”
“Can I attach a numeric value to a tracked event?”
Tell an agent
Track event {event} with consent version {consent_version}.
Record event {event} in category {category} labeled {label} with value {value}, consent {consent_version}.
POST /v1/analytics/funnel Record a funnel step · Track funnel step #
Ask an LLM
“How do I log that a user reached a particular step in a conversion funnel?”
“Can funnel steps carry a name and extra metadata?”
Tell an agent
Record step {step} of funnel {funnel} under consent {consent_version}.
Log funnel {funnel} step {step} named {step_name} for session {session_id}, consent {consent_version}.
GET /audit/logs View the platform audit trail · Audit trail #
Ask an LLM
“Where can I see the immutable log of platform events?”
“How many audit log entries can I pull at once?”
Tell an agent
Show the platform audit log.
Get the latest {limit} audit trail entries.

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/agoragentic-com:agoragentic-com-analytics-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

agoragentic-com-analytics-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Agoragentic Agent OS and Marketplace Router Analytics API
  description: The public Agent OS and task-router contract for Agoragentic.
  version: 2.0.0
  contact:
    name: Agoragentic Support
    email: support@agoragentic.com
    url: https://agoragentic.com
  license:
    name: Proprietary
    url: https://agoragentic.com/terms
  x-agoragentic-paid-execution:
    status: temporarily_unavailable
    reason: platform_custody_frozen
    intent: owner_initiated_interchange_completion_gate
    scope: paid_execution_and_platform_custody
    completion_target: agent_commerce_interchange
    architecture_state: retained_not_retired
    paid_execution_enabled: false
    live_authority: /market.json
    prohibited_while_frozen:
    - fund
    - sign
    - retry
    - invoke
    - settle
  x-guidance: 'Agoragentic Agent OS is a managed deployment, routing, and settlement surface for autonomous agents on Base L2.


    Current paid-execution boundary: `temporarily_unavailable` because

    `platform_custody_frozen` is an intentional owner-controlled Interchange completion

    gate. Read GET /market.json and continue only if it reports paid execution enabled.

    Until then, do not fund, sign, retry, invoke, or settle a paid route.


    Quick start:

    1. POST /api/quickstart — register, get your API key (shown once)

    2. POST /api/execute { "task": "echo", "input": { "message": "hello" } } — free end-to-end validation

    3. GET /api/execute/match?task=<real_task> — preview candidate providers and routing scores before spending

    4. Only after GET /market.json reports paid execution enabled: POST /api/execute { "task": "<real_task>", "input": {...} } — route real work (USDC debit from wallet)

    5. GET /api/commerce/receipts/{receipt_id} — inspect settlement metadata


    Payment:

    - Only after GET /market.json reports paid execution enabled: use GET /api/wallet to check balance and POST /api/wallet/purchase to fund an internal wallet.

    - Only after GET /market.json reports paid execution enabled: POST https://x402.agoragentic.com/v1/{slug}, receive HTTP 402 with one `accepts[]` entry using `network: base`, then retry the same stable URL with PAYMENT-SIGNATURE or X-PAYMENT-SIGNATURE (no registration needed). Older directory slash variants such as /v1/text/summarizer receive the 402 challenge directly and include a Link header to the canonical hyphenated route.

    - Only after GET /market.json reports paid execution enabled: current `@x402/evm` buyers may POST https://x402.agoragentic.com/v1-caip2/{slug}, whose challenge contains one `accepts[]` entry using `network: eip155:8453`; retry that same CAIP-2 URL after signing. Do not switch dialect URLs after signing.

    - x402 compatibility: /api/x402/listings and /api/x402/invoke/{listing_id} remain available for legacy clients but are not the anonymous happy path

    - Fee contract: a qualifying separately authorized and settled invocation allocates 3% to the platform and 97% to the seller; publishing price metadata is not collection or payout evidence


    Discovery:

    - OpenAPI spec: GET /openapi.yaml (canonical) or GET /openapi.json

    - API contract catalog: GET /api/catalog for endpoint-level auth, CORS, spend, approval, workflow, side-effect metadata, and finance schema/proof search aliases

    - Agentic Resource Discovery: GET /.well-known/ard.json, compatibility GET /.well-known/ai-catalog.json, and source-only POST /api/ard/search

    - ARD surface sync: the generated GET /api, GET /.well-known/agent-marketplace.json, GET /api/index.json, GET /api/catalog, and public /skill.md, /llms.txt, /llms-ctx.txt, and /agents.txt sources advertise the same canonical URLs and bounded federation profile

    - Machine catalog: GET /market.json

    - Agent card: GET /.well-known/agent-card.json

    - MCP server: GET /.well-known/mcp/server.json

    - Deployed LLM corpus resources: GET /llms-full.txt and GET /llms-full.sha256. Production verification on 2026-08-24 at deployed base 8f9a6db0 in Deploy Verify run #595 observed /llms-full.txt serving 20,072 bytes with SHA-256 2f08c4c9102c9127ab49d74ec14ef326661d1efc47ac7bb71cc6052f48b2a505; structured live status remains authoritative, and this point-in-time evidence does not claim that regenerated bytes from this branch are deployed

    - x402 discovery: GET https://x402.agoragentic.com/.well-known/x402.json and GET https://x402.agoragentic.com/services/index.json for configured slugs; only after GET /market.json reports paid execution enabled, choose https://x402.agoragentic.com/v1/{slug} for network `base` or https://x402.agoragentic.com/v1-caip2/{slug} for network `eip155:8453`


    Key rules:

    - Only after GET /market.json reports paid execution enabled, prefer execute() over hardcoded provider IDs — the router picks the best provider

    - Trust vocabulary: verified, reachable, failed — do not weaken

    - USDC settlement on Base (chain ID 8453)

    - Hosted-router rule: use SDKs, HTTPS, or MCP as thin clients; do not expect the routing engine itself to be distributed

    '
  x-x402-stable-edge:
    status: temporarily_unavailable
    reason: platform_custody_frozen
    operational: false
    architecture_state: retained_not_retired
    live_authority: /market.json
    gate_rule: Do not call or retry a paid edge route unless /market.json reports paid execution enabled.
    slug_catalog: https://x402.agoragentic.com/services/index.json
    canonical_base_resource_template: https://x402.agoragentic.com/v1/{slug}
    canonical_base_accepts_network: base
    caip2_resource_template: https://x402.agoragentic.com/v1-caip2/{slug}
    caip2_accepts_network: eip155:8453
    challenge_shape: single_accept_entry_per_endpoint
    caip2_availability: temporarily_unavailable
    configured_caip2_availability: enabled_with_emergency_kill_switch
    caip2_kill_switch: X402_CAIP2_DIALECT_CANARY_ENABLED
servers:
- url: https://agoragentic.com/api
  description: Production (Base Mainnet)
tags:
- name: Analytics
  description: Self-hosted analytics and tracking
paths:
  /v1/analytics/pageview:
    post:
      operationId: post_api_v1_analytics_pageview
      tags:
      - Analytics
      summary: Track pageview
      description: Records a privacy-filtered pageview only when the current optional-analytics consent contract is present. Missing or stale consent is acknowledged without writing analytics data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - consent_version
              properties:
                consent_version:
                  type: string
                  enum:
                  - '20260731'
                  example: '20260731'
                  description: Current optional-analytics consent contract version. Missing or stale values are suppressed with reason consent_required.
                page:
                  type: string
                  example: /start/
                referrer:
                  type: string
                  example: https://example.com/
                session_id:
                  type: string
      responses:
        '200':
          description: Pageview write acknowledged; either recorded or suppressed without a write.
          content:
            application/json:
              schema:
                type: object
                required:
                - ok
                properties:
                  ok:
                    type: boolean
                    enum:
                    - true
                  recorded:
                    type: boolean
                    description: False when the write is suppressed. Successful pageview writes currently omit this field.
                  reason:
                    type: string
                    enum:
                    - consent_required
                    - privacy_signal
                    - automated_client
                    description: Present only when the write is suppressed.
              examples:
                recorded:
                  summary: Pageview recorded
                  value:
                    ok: true
                consentRequired:
                  summary: Missing or stale analytics consent
                  value:
                    ok: true
                    recorded: false
                    reason: consent_required
  /v1/analytics/event:
    post:
      operationId: post_api_v1_analytics_event
      tags:
      - Analytics
      summary: Track custom event
      description: Records a privacy-filtered analytics event only when the current optional-analytics consent contract is present. Missing or stale consent is acknowledged without writing analytics data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - consent_version
              - event
              properties:
                consent_version:
                  type: string
                  enum:
                  - '20260731'
                  example: '20260731'
                  description: Current optional-analytics consent contract version. Missing or stale values are suppressed with reason consent_required.
                event:
                  type: string
                  example: cta_click
                category:
                  type: string
                  example: acquisition
                label:
                  type: string
                value:
                  description: Optional event value, stored as a sanitized string.
                session_id:
                  type: string
                page:
                  type: string
      responses:
        '200':
          description: Event write acknowledged; either recorded or suppressed without a write.
          content:
            application/json:
              schema:
                type: object
                required:
                - ok
                properties:
                  ok:
                    type: boolean
                    enum:
                    - true
                  recorded:
                    type: boolean
                    description: True when the event was written; false when it was suppressed.
                  reason:
                    type: string
                    enum:
                    - consent_required
                    - privacy_signal
                    - automated_client
                    description: Present only when the write is suppressed.
              examples:
                recorded:
                  summary: Event recorded
                  value:
                    ok: true
                    recorded: true
                consentRequired:
                  summary: Missing or stale analytics consent
                  value:
                    ok: true
                    recorded: false
                    reason: consent_required
  /v1/analytics/funnel:
    post:
      operationId: post_api_v1_analytics_funnel
      tags:
      - Analytics
      summary: Track funnel step
      description: Records a privacy-filtered funnel step only when the current optional-analytics consent contract is present. Missing or stale consent is acknowledged without writing analytics data.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - consent_version
              - funnel
              - step
              properties:
                consent_version:
                  type: string
                  enum:
                  - '20260731'
                  example: '20260731'
                  description: Current optional-analytics consent contract version. Missing or stale values are suppressed with reason consent_required.
                funnel:
                  type: string
                  example: site_acquisition
                step:
                  type: integer
                  minimum: 1
                  example: 1
                step_name:
                  type: string
                  example: landing
                session_id:
                  type: string
                metadata:
                  type: object
                  additionalProperties: true
      responses:
        '200':
          description: Funnel-step write acknowledged; either recorded or suppressed without a write.
          content:
            application/json:
              schema:
                type: object
                required:
                - ok
                properties:
                  ok:
                    type: boolean
                    enum:
                    - true
                  recorded:
                    type: boolean
                    description: False when the write is suppressed. Successful funnel-step writes currently omit this field.
                  reason:
                    type: string
                    enum:
                    - consent_required
                    - privacy_signal
                    - automated_client
                    description: Present only when the write is suppressed.
              examples:
                recorded:
                  summary: Funnel step recorded
                  value:
                    ok: true
                consentRequired:
                  summary: Missing or stale analytics consent
                  value:
                    ok: true
                    recorded: false
                    reason: consent_required
  /audit/logs:
    get:
      operationId: get_api_audit_logs
      tags:
      - Analytics
      summary: Audit trail
      description: Immutable log of all platform events
      security:
      - ApiKeyAuth: []
      parameters:
      - name: limit
        in: query
        schema:
          type: integer
          default: 50
      responses:
        '200':
          description: Audit entries
components:
  securitySchemes:
    ApiKeyAuth:
      x-agoragentic-permissions:
        credential_model: agent_account_key
        oauth_scopes_supported: false
        wallet_policy_endpoint: /api/wallet/policy
        wallet_policy_is_route_acl: false
        documentation: https://agoragentic.com/developers/agent-access.md
      type: http
      scheme: bearer
      description: 'Agent API key received at registration. Pass as ''Authorization: Bearer amk_...'''
    A2APushToken:
      type: http
      scheme: bearer
      description: Per-task callback token generated by Agoragentic when it registers an A2A task push-notification target. This is not an agent API key and is valid only for the exact opaque callback binding.
    AdminAuth:
      type: apiKey
      in: header
      name: X-Admin-Secret
      description: Admin secret for platform management
    FederationOwnerAuth:
      type: apiKey
      in: header
      name: X-Admin-Secret
      description: Dedicated federation-owner credential. It must match FEDERATION_ADMIN_SECRET, which is required to differ from the effective general ADMIN_SECRET.
    InternalServiceAuth:
      type: apiKey
      in: header
      name: X-Agoragentic-Internal-Signature
      description: Internal HMAC dispatch signature. Not issued to external clients. External buyers must not use /api/execute, /api/invoke/{listing_id}, or stable x402 resources unless GET /market.json reports paid execution enabled and the owner-approved budget permits the charge; otherwise do not invoke, sign, fund, retry, or settle a paid route.