Explorer
Syncing—

Pretty ChartsService

pretty-charts

Pretty Charts renders a chart from inline data and returns it as static SVG, or a complete HTML document, inside a JSON object. POST /v1/chart with data (csv, tsv, json, or values) plus either a full Vega-Lite v6 spec or the shorthand form (type, x, y, color, size, shape, theta, ranges, colors, theme). Every data mark carries a native <title> tooltip, so no script is returned or required. Remote data URLs are refused; all inputs live in the request body. Output is deterministic for identical input on the same version. Limits (1 MiB body, 50k rows, 10k marks by default) are reported by GET /v1/capabilities.

Active Suppliers
53
of 53 ever configured
Service Info
Service ID
pretty-charts
Compute Units / Relay
10,000
Active Applications
2
Relay Mining EMA
1 relays
Service Metadata Cardsource: on-chain metadata (LCD)
{10 items
"schema":"pocket-service-card/v1"
"description":"Pretty Charts renders a chart from inline data and returns it as static SVG, or a complete HTML document, inside a JSON object. POST /v1/chart with data (csv, t..."
"rpc_types":[1 item
0:{4 items
"type":"REST"
"intent":"expected"
"backend_hint":"pretty-charts container on :8080; mount at /"
"notes":"POST /v1/chart, GET /v1/version, GET /healthz, GET /v1/capabilities, and GET /v1/openapi.json are expected. Every response is a JSON object; the SVG or HTML rid..."
}
]
"apis":[2 items
0:"pretty-charts-api"
1:"vega-lite-svg"
]
"specs":[1 item
0:{5 items
"kind":"openapi"
"api":"pretty-charts-api"
"url":"https://agentdata.network/pretty-charts/openapi/v1/openapi.json"
"sha256":"c924152346b8a83d175dc9660f0d12132e156c1f588c755a4886773a65273ebd"
"notes":"The same document is served by the backend at GET /v1/openapi.json."
}
]
"access":"public"
"results":"deterministic"
"serving":{7 items
"backend":"The pretty-charts container (Node 22, Vega 6, Vega-Lite 6; built from github.com/TheFeloniousMonk/portal-services, pretty-charts/backend) behind the HA RelayMin..."
"implementations":[1 item
0:"pretty-charts >= 1.0"
]
"docs":"https://agentdata.network/pretty-charts/operators"
"min_disk_gb":1
"min_ram_gb":1
"healthcheck":[3 items
0:{4 items
"rpc_type":"REST"
"request":{2 items
"path":"/v1/version"
"method":"GET"
}
"expect":{2 items
"json_path":"$.service"
"matches":"^pretty-charts$"
}
"notes":"Identity probe: pins the backend to this service so a wrong backend cannot be staked under this id."
}
1:{4 items
"rpc_type":"REST"
"request":{2 items
"path":"/healthz"
"method":"GET"
}
"expect":{2 items
"json_path":"$.status"
"matches":"^ok$"
}
"notes":"Readiness probe: 200 only once a render worker is up."
}
2:{4 items
"rpc_type":"REST"
"request":{3 items
"path":"/v1/chart"
"method":"POST"
"body":{2 items
"data":{1 item
"values":[1 item
0:{2 items
"a":"A"
"b":1
}
]
}
"chart":{4 items
"type":"bar"
"x":"a"
"y":"b"
"tooltip":false
}
}
}
"expect":{2 items
"json_path":"$.marks"
"matches":"^1$"
}
"notes":"Functional probe: renders one bar and reports one data mark. Cheap and deterministic."
}
]
"notes":"Every request is a POST JSON body to /v1/chart; typical renders finish in well under a second. No rate limits to disable. SAGE operators: type generic (its name..."
}
"docs":"https://agentdata.network/pretty-charts/"
"updated":"2026-10-17"
}