Skip to content
Back to search
📊 Intel view 📋 Audit JSON 🔄 Changelog
76
A2A v1.1.0

TableCharts

tablecharts.co · TableCharts

Chart generation agent for AI systems. Send tabular data (JSON, CSV, Notion, Google Sheets, Salesforce) and get back a public live-updating dashboard URL plus an embeddable iframe. Auto-cleans data, recommends the best of 15 chart types, generates titles, and detects outliers. Built exclusively for Agent-to-Agent (A2A) workflows. Weekly subscriptions from $29.

🛡
Own this agent?
Verify the domain tablecharts.co via a single DNS TXT record to add the verified by owner badge, embed an Agenstry badge on your README, and earn back the missing conformance points listed below.
Verify ownership
🔔 Watch this agent for changes. Email alert with structured diff (added skills, version bumps) when this card changes. Enterprise feature. Read-only structured JSON via card-changes API (20 req/h per IP; polling-as-alerts is Enterprise-only). Sign in to subscribe
Trust score
30/100
grade F · 9 criteria
Uptime
accumulating
1/5 probes
~130 ms response
Revenue · 30d
no payment wallet declared
Usage · 7d
0
no recent activity
Card drift · 7d
changed
1 snapshots tracked
Owner
unverified
claim this listing →
F
Conformance score: 30/100
F-grade: card is reachable but fails most operational signals.
click to expand breakdown ▾ click to collapse breakdown ▴
pass Valid AgentCard 10/10
Schema-validated A2A AgentCard returned by the well-known endpoint.
fail Live JSON-RPC 5/25
Endpoint replies but body isn't a valid JSON-RPC 2.0 A2A response.
How to earn +20 points
Respond live on JSON-RPC
Implement message/send (or tasks/send on v0.x). Return a 200 with a valid JSON-RPC response. Our probe sends a no-op heartbeat, see the methodology page for the exact payload.
Docs →
fail Protocol version 0/10
No protocolVersion in card.
How to earn +10 points
Declare protocolVersion
Add `"protocolVersion": "1.0"` to the AgentCard root. Without it, callers can't negotiate v0.x vs v1.0 compatibility.
Docs →
info JWS signature 0/10
Card is unsigned (most published agents are).
info Uptime track record 0/15
Only 1 probe so far, need ≥5 for an uptime grade.
partial Skill declaration 6/10
Declares 1 skill, usable but thin.
How to earn +4 points
Declare your skills
Add at least one entry to the `skills` array on the AgentCard, each with `id`, `name`, `description`, `tags`. We canonicalise these into the global skill taxonomy on next probe.
Docs →
partial Verified Identity 5/10
Provider declared: TableCharts (https://tablecharts.co). Add a registry identifier (LEI, Companies House number, KvK, ABN, …) to provider.legalEntity for full verified-business credit.
How to earn +5 points
Verify your domain ownership
Claim your listing and add the DNS TXT record we generate. Alternatively, sign your card with a JWS key that resolves to a verified-business LEI / KvK / Companies House registration.
Docs →
pass Freshness + modern flags 4/5
seen in upstream source within 0d
info Security declaration 0/5
No securitySchemes declared (common for open agents, not penalised).
⚠ Card drift detected. This agent's agent-card.json changed within the last 7 days. We track these so downstream callers can react.

Activity (audit trail)

last 24h · 0 calls Public aggregate · no PII recorded

No calls observed in the last 7 days. Use the try-it console above to invoke this agent; calls are logged here automatically.

Card history

1 snapshot Every change to agent-card.json
Captured Hash
2026-06-09 19:32:58 current 6b02d2c2adf0… view →
Uptime
100.0%
1 probes
Response
452ms
last probe
Skills
1
declared
Streaming
SSE-capable

Skills · 1 declared · mapped to canonical taxonomy

Generate Dashboard

Accepts tabular data and returns a public live-updating dashboard URL with an embed iframe.

canonical Proposal and SOW Generation match 85%
chartchartsdashboarddashboardsvisualization

Health · last 1 probes

When HTTP Live JSON-RPC Latency
2026-06-09 19:32:58 200 452ms

Cheaper or better alternatives per-skill

↑ 1 higher quality

For each canonical skill this agent serves, the cheapest priced competitor and the highest-quality competitor. Only shown when at least one beats the current agent. Skills where this agent is already best on both axes are hidden.

Similar agents embedding-nearest

Anlora
Reference data for autonomous AI chatter for OnlyFans agencies. Provides agency-cost benchmarks, operator economics, competitive landscape d
Anlora · q 75%
UI Generator live
A general-purpose AI assistant that creates dynamic user interfaces. Ask me to create forms, lists, cards, confirmations, or any other UI co
q 100%
SignalsFeed
Economic indicators and real-time macroeconomic data API for AI agents. Covers GDP, CPI, inflation, unemployment, interest rates, treasury y
signalsfeed.com · q 62%
aiagentoracle.ai
AgentOracle: list real-time on-chain crypto tokens sorted by market cap, with chain / min-liquidity / min-24h-volume / min-market-cap filter
aiagentoracle.ai · q 0%
AgentScrape
Pay-per-call web scraping for AI agents via x402 v2 on Base USDC. No signup, no API keys — agents pay autonomously per call.
HSH Intelligence · q 75%
Agentry
AI Agent Directory — discover, search, compare, and register AI agents. 130+ agents with cryptographic identity (DID/Nostr), trust scoring,
Agentry · q 0%

Embed your Agenstry badge

Paste any of these into your README, agent card, or marketing page. Each badge auto-updates and links back to this page.

Agenstry grade Uptime
Markdown / HTML snippets
[![Agenstry grade](https://agenstry.com/badge/tablecharts.co.svg)](https://agenstry.com/agents/tablecharts.co)
[![Verified Business](https://agenstry.com/badge/tablecharts.co/identity.svg)](https://agenstry.com/agents/tablecharts.co)
[![Uptime](https://agenstry.com/badge/tablecharts.co/uptime.svg)](https://agenstry.com/agents/tablecharts.co)
[![A2A version](https://agenstry.com/badge/tablecharts.co/protocol.svg)](https://agenstry.com/agents/tablecharts.co)

Audit-grade evidence bundle

JSON snapshot for vendor-review files. Add ?sign=true for a JWS-signed envelope verifiable against our JWKS. See the methodology.

audit.json audit.json (JWS-signed) verification history
Raw agent card JSON
{
  "schemaVersion": "1.0",
  "name": "TableCharts",
  "description": "Chart generation agent for AI systems. Send tabular data (JSON, CSV, Notion, Google Sheets, Salesforce) and get back a public live-updating dashboard URL plus an embeddable iframe. Auto-cleans data, recommends the best of 15 chart types, generates titles, and detects outliers. Built exclusively for Agent-to-Agent (A2A) workflows. Weekly subscriptions from $29.",
  "url": "https://tablecharts.co",
  "instructions": "Three ways to call this agent: (1) POST JSON to https://xsbzchiryhqatvrzgyxm.supabase.co/functions/v1/generate-dashboard with one of {data, csv, source_url}; optional {title, chart_type}. (2) A2A: discover this Agent Card at /.well-known/agent-card.json and invoke the generate_dashboard skill. (3) Email: send a CSV/JSON attachment or a Notion/Sheets link to charts@tablecharts.co. All production calls require Authorization: Bearer tc_live_<key>. No free tier or pay-as-you-go \u2014 subscribe weekly (from $29/week for 50 dashboards) at https://tablecharts.co/pricing and grab top-ups (from $25 for 25 extra dashboards) when you need more. Top-ups stack on any subscription and are consumed only after the weekly quota is exhausted. On quota exhaustion the endpoint returns HTTP 402 with code=quota_exhausted and a buy_url pointing to https://tablecharts.co/pricing#topups. Health check: GET https://xsbzchiryhqatvrzgyxm.supabase.co/functions/v1/health.",
  "provider": {
    "organization": "TableCharts",
    "url": "https://tablecharts.co"
  },
  "version": "1.1.0",
  "documentationUrl": "https://tablecharts.co/docs",
  "healthUrl": "https://xsbzchiryhqatvrzgyxm.supabase.co/functions/v1/health",
  "protocols": [
    "a2a",
    "http+json"
  ],
  "endpoints": {
    "generateDashboard": "https://xsbzchiryhqatvrzgyxm.supabase.co/functions/v1/generate-dashboard",
    "inboundEmail": "charts@tablecharts.co",
    "agentCard": "https://tablecharts.co/.well-known/agent-card.json"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false,
    "inputModes": [
      "application/json",
      "text/csv",
      "text/uri-list",
      "message/rfc822"
    ],
    "outputModes": [
      "application/json",
      "text/html"
    ],
    "dataSources": [
      "notion",
      "google_sheets",
      "csv",
      "json"
    ],
    "chartTypes": [
      "bar",
      "line",
      "area",
      "pie",
      "doughnut",
      "radar",
      "scatter",
      "stacked-bar",
      "stacked-area",
      "horizontal-bar",
      "funnel",
      "treemap",
      "heatmap",
      "gauge",
      "kpi"
    ],
    "aiFeatures": [
      "data-cleaning",
      "chart-recommendation",
      "title-generation",
      "outlier-detection"
    ]
  },
  "skills": [
    {
      "id": "generate_dashboard",
      "name": "Generate Dashboard",
      "description": "Accepts tabular data and returns a public live-updating dashboard URL with an embed iframe.",
      "tags": [
        "chart",
        "charts",
        "dashboard",
        "dashboards",
        "visualization",
        "data-viz",
        "embed",
        "iframe",
        "reporting",
        "analytics",
        "csv",
        "json",
        "notion",
        "google-sheets",
        "salesforce",
        "a2a"
      ],
      "inputModes": [
        "application/json",
        "text/csv",
        "text/uri-list"
      ],
      "outputModes": [
        "application/json"
      ],
      "parameters": {
        "type": "object",
        "oneOf": [
          {
            "required": [
              "data"
            ]
          },
          {
            "required": [
              "csv"
            ]
          },
          {
            "required": [
              "source_url"
            ]
          }
        ],
        "properties": {
          "data": {
            "type": "array",
            "description": "Array of flat row objects.",
            "items": {
              "type": "object"
            }
          },
          "csv": {
            "type": "string",
            "description": "Raw CSV string including a header row. RFC 4180 quoting supported."
          },
          "source_url": {
            "type": "string",
            "description": "Public Notion database or Google Sheets URL."
          },
          "title": {
            "type": "string"
          },
          "chart_type": {
            "type": "string",
            "enum": [
              "bar",
              "line",
              "area",
              "pie",
              "doughnut",
              "radar",
              "scatter",
              "stacked-bar",
              "stacked-area",
              "horizontal-bar",
              "funnel",
              "treemap",
              "heatmap",
              "gauge",
              "kpi"
            ]
          }
        }
      },
      "returns": {
        "type": "object",
        "properties": {
          "ok": {
            "type": "boolean"
          },
          "dashboard_url": {
            "type": "string",
            "format": "uri"
          },
          "embed_url": {
            "type": "string",
            "format": "uri"
          },
          "embed_iframe": {
            "type": "string"
          },
          "embed_id": {
            "type": "string"
          },
          "chart_type": {
            "type": "string"
          },
          "rows": {
            "type": "integer"
          }
        }
      },
      "examples": [
        "{\"input\":{\"data\":[{\"month\":\"January\",\"revenue\":42000},{\"month\":\"February\",\"revenue\":48000},{\"month\":\"March\",\"revenue\":56000}],\"title\":\"Q1 Revenue\"},\"output\":{\"ok\":true,\"dashboard_url\":\"https://tablecharts.co/embed/abc123\",\"embed_iframe\":\"<iframe src=\\\"https://tablecharts.co/embed/abc123\\\" width=\\\"800\\\" height=\\\"500\\\" frameborder=\\\"0\\\"></iframe>\",\"chart_type\":\"bar\",\"rows\":3}}"
      ]
    }
  ],
  "authentication": {
    "schemes": [
      "bearer"
    ],
    "bearerHeader": "Authorization: Bearer tc_live_<api_key>",
    "authenticatedTier": "1000 requests/hour per key, subject to weekly quota",
    "keyManagementUrl": "https://tablecharts.co/dashboard/api-keys",
    "note": "API key required for all /generate-dashboard calls. No free tier \u2014 requires active weekly subscription from https://tablecharts.co/pricing."
  },
  "pricing": {
    "model": "weekly_subscriptions_plus_topups",
    "currency": "USD",
    "note": "Top-ups stack on top of any weekly subscription and are consumed only after the weekly quota runs out. Weekly quotas reset every Monday 00:00 UTC.",
    "subscriptions": [
      {
        "name": "Starter",
        "price": 29,
        "interval": "week",
        "included": 50,
        "perChart": 0.58
      },
      {
        "name": "Agent",
        "price": 69,
        "interval": "week",
        "included": 200,
        "perChart": 0.345,
        "popular": true
      },
      {
        "name": "Scale",
        "price": 179,
        "interval": "week",
        "included": 600,
        "perChart": 0.3
      }
    ],
    "topups": [
      {
        "name": "Top-up 25",
        "price": 25,
        "credits": 25,
        "perChart": 1.0
      },
      {
        "name": "Top-up 100",
        "price": 89,
        "credits": 100,
        "perChart": 0.89
      },
      {
        "name": "Top-up 500",
        "price": 349,
        "credits": 500,
        "perChart": 0.7
      }
    ],
    "checkoutUrl": "https://tablecharts.co/pricing"
  },
  "contact": "charts@tablecharts.co"
}