Home · Skills · Development
Tako Knowledge Search & Visualization
Search and visualize the world's data - get charts, insights, and embeddable knowledge cards for finance, economics, demographics, sports, and more
How to use it
- Hit Copy the whole skill.
- Claude: ⋯ → Download .md, then Customize → Skills → Add → Upload skill.
ChatGPT: make a Project and paste it into Instructions.
Neither? Paste it at the top of a new chat — it works for that chat. - Describe your job in plain words. The AI follows the skill from there.
npx degit gooseworks-ai/goose-skills/skills/design/capabilities/data-charts-tako#main ~/.claude/skills/data-charts-takoFor one project only, change the path to .claude/skills/data-charts-tako.
Not working?
- Check which app you pasted it into — the steps above name the right one.
- Some skills need the paid tier of Claude or ChatGPT.
Paste into Claude, ChatGPT or Cursor.
Show the full text245 lines
Tako Knowledge Search & Visualization
Setup
Read your credentials from ~/.gooseworks/credentials.json:
export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])")
export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))")
If ~/.gooseworks/credentials.json does not exist, tell the user to run: npx gooseworks login
All endpoints use Bearer auth: -H "Authorization: Bearer $GOOSEWORKS_API_KEY"
Search for data with natural language and get interactive charts, AI-generated insights, and embeddable knowledge cards. Covers finance, economics, demographics, sports, politics, climate, and health from sources like S&P Global, World Bank, and more.
When to Use
- User asks a data question ("What's NVIDIA's revenue?", "US GDP growth?")
- User wants to compare metrics ("Tesla vs Ford market cap")
- User needs a chart or visualization for a report
- User wants to turn their own data into a chart
- User asks for insights or analysis on a data trend
Usage
Search for Data
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"NVIDIA vs AMD revenue since 2018"}}}'
With search effort and source options:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"US inflation rate 2020-2025","search_effort":"deep"},"source_indexes":["tako","web"]}}'
With dark mode chart images:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"Bitcoin price history"},"output_settings":{"knowledge_card_settings":{"image_dark_mode":true}}}}'
Get Chart Insights
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/beta/chart_insights","query":{"card_id":"sXQPVnixcDUf2Iw35Via"}}'
Visualize Your Own Data
Provide data as CSV strings. Tako picks the best chart type automatically.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/beta/visualize"}'
Q1 2024,100
Q2 2024,150
Q3 2024,220
Q4 2024,310"], "query": "Show quarterly revenue as a bar chart"}'
Request a specific chart type:
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/beta/visualize"}'
US,500
EU,300
Asia,250"], "query": "Sales by region", "viz_component_type": "pie"}'
Create a Custom Chart
Build charts from scratch with full control over components and layout.
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/thin_viz/create/","body":{"components":[{"component_type":"header","config":{"title":"Sales by Region"}},{"component_type":"categorical_bar","config":{"datasets":[{"label":"Revenue (M)","data":[{"x":"US","y":500},{"x":"EU","y":300},{"x":"Asia","y":250}]}]}}],"title":"Sales by Region","source":"Internal Data"}}'
List Available Chart Types
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/thin_viz/default_schema/"}'
Get Tako Tool Descriptions
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/tako_tools_description"}'
Parameters
Knowledge Search (POST /v1/knowledge_search)
Body:
- inputs.text (string, required) - Natural language query (e.g. "Tesla vs Ford market cap")
- inputs.search_effort (string) - "fast", "medium", "deep", or "auto"
- source_indexes (array) - Priority order: "tako", "web", "tako_deep_v2". Default: ["tako"]
- country_code (string) - ISO 3166-1 alpha-2 (e.g. "US", "GB"). Default: "US"
- locale (string) - e.g. "en-US", "de-DE". Default: "en-US"
- output_settings (object) -
{"knowledge_card_settings": {"image_dark_mode": true}}for dark mode
Chart Insights (GET /v1/beta/chart_insights)
- card_id (string, required) - Card ID from Knowledge Search or Create Card response
Visualize Datasets (POST /v1/beta/visualize)
Body:
- csv (array of strings, required) - CSV data with headers in first row. Example:
["name,value Apple,3.7 NVIDIA,3.4"] - query (string) - How to visualize (e.g. "Show as a bar chart")
- viz_component_type (string) - Force chart type: bar, grouped_bar, stacked_bar, timeseries, pie, choropleth, scatter, boxplot, heatmap, waterfall, histogram, table, treemap
Create Card (POST /v1/thin_viz/create/)
Body:
- components (array, required) - Each needs
component_type(header, categorical_bar, pie, scatter, table, choropleth, heatmap, histogram, boxplot, treemap, waterfall, bubble, etc.) andconfig(type-specific data) - title (string) - Card title
- description (string) - Card description
- source (string) - Data source attribution for footer
List Default Schemas (GET /v1/thin_viz/default_schema/)
No parameters.
Tool Descriptions (GET /v1/tako_tools_description)
- index_ids (string) - Comma-separated index IDs to filter
Response
Knowledge Search — data.outputs.knowledge_cards[]
- card_id - Unique ID (use for Chart Insights or embed URLs)
- title - Chart title
- description - Text description of the data and trends
- card_type - "chart", "table", "company", or "text"
- webpage_url - Interactive card page on Tako
- image_url - Static chart image (embed in messages, reports)
- embed_url - Embeddable iframe URL
- relevance - "High", "Medium", or "Low"
- sources - Data sources with name and description
- visualization_data - Raw chart data points
Chart Insights — data
- insights - Array of AI-generated observations
- description - Chart description
Create Card — data
- card_id, title, webpage_url, image_url, embed_url
Examples
# What's the US unemployment rate?
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"US unemployment rate"}}}'
# Compare company revenues
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"Apple vs Microsoft vs Google revenue","search_effort":"deep"}}}'
# Get insights on a chart
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/beta/chart_insights","query":{"card_id":"sXQPVnixcDUf2Iw35Via"}}'
# Visualize your own CSV data
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/beta/visualize"}'
North America,500
Europe,300
Asia,250
LatAm,100"], "query": "Show sales by region"}'
# Create a custom bar chart
curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \
-H "Authorization: Bearer $GOOSEWORKS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"api":"tako","path":"/v1/thin_viz/create/","body":{"components":[{"component_type":"categorical_bar","config":{"datasets":[{"label":"Revenue","data":[{"x":"Q1","y":100},{"x":"Q2","y":200}]}]}}],"title":"Quarterly Revenue"}}'
Tips
- Knowledge Search is the main endpoint — start here for any data question
- Use image_url to display charts in Slack, Discord, or other channels
- embed_url gives an interactive iframe for web pages
- Call List Default Schemas before Create Card to see available chart types
- Set
search_effort: "deep"for complex multi-metric comparisons - Data coverage: stock prices, revenue, GDP, unemployment, population, sports stats, weather, health, and more
Error Handling
- 400 - Invalid body or missing required fields
- 401 - Invalid API key
- 404 - Card not found (Chart Insights) or no results found (Knowledge Search)
- Empty
knowledge_cardsarray — try rephrasing or usingsource_indexes: ["tako", "web"]
| 1 | |
| 2 | name data-charts-tako |
| 3 | description Search and visualize the world's data - get charts, insights, and embeddable knowledge cards for finance, economics, demographics, sports, and more |
| 4 | source orthogonal |
| 5 | |
| 6 | |
| 7 | |
| 8 | # Tako Knowledge Search & Visualization |
| 9 | |
| 10 | ## Setup |
| 11 | |
| 12 | Read your credentials from ~/.gooseworks/credentials.json: |
| 13 | |
| 14 | export GOOSEWORKS_API_KEY=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json'))['api_key'])") |
| 15 | export GOOSEWORKS_API_BASE=$(python3 -c "import json;print(json.load(open('$HOME/.gooseworks/credentials.json')).get('api_base','https://api.gooseworks.ai'))") |
| 16 | |
| 17 | |
| 18 | If ~/.gooseworks/credentials.json does not exist, tell the user to run: `npx gooseworks login` |
| 19 | |
| 20 | All endpoints use Bearer auth: `-H "Authorization: Bearer $GOOSEWORKS_API_KEY"` |
| 21 | |
| 22 | |
| 23 | Search for data with natural language and get interactive charts, AI-generated insights, and embeddable knowledge cards. Covers finance, economics, demographics, sports, politics, climate, and health from sources like S&P Global, World Bank, and more. |
| 24 | |
| 25 | ## When to Use |
| 26 | |
| 27 | User asks a data question ("What's NVIDIA's revenue?", "US GDP growth?") |
| 28 | User wants to compare metrics ("Tesla vs Ford market cap") |
| 29 | User needs a chart or visualization for a report |
| 30 | User wants to turn their own data into a chart |
| 31 | User asks for insights or analysis on a data trend |
| 32 | |
| 33 | ## Usage |
| 34 | |
| 35 | ### Search for Data |
| 36 | |
| 37 | |
| 38 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 39 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 40 | -H "Content-Type: application/json" \ |
| 41 | -d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"NVIDIA vs AMD revenue since 2018"}}}' |
| 42 | |
| 43 | |
| 44 | With search effort and source options: |
| 45 | |
| 46 | |
| 47 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 48 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 49 | -H "Content-Type: application/json" \ |
| 50 | -d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"US inflation rate 2020-2025","search_effort":"deep"},"source_indexes":["tako","web"]}}' |
| 51 | |
| 52 | |
| 53 | With dark mode chart images: |
| 54 | |
| 55 | |
| 56 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 57 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 58 | -H "Content-Type: application/json" \ |
| 59 | -d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"Bitcoin price history"},"output_settings":{"knowledge_card_settings":{"image_dark_mode":true}}}}' |
| 60 | |
| 61 | |
| 62 | ### Get Chart Insights |
| 63 | |
| 64 | |
| 65 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 66 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 67 | -H "Content-Type: application/json" \ |
| 68 | -d '{"api":"tako","path":"/v1/beta/chart_insights","query":{"card_id":"sXQPVnixcDUf2Iw35Via"}}' |
| 69 | |
| 70 | |
| 71 | ### Visualize Your Own Data |
| 72 | |
| 73 | Provide data as CSV strings. Tako picks the best chart type automatically. |
| 74 | |
| 75 | |
| 76 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 77 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 78 | -H "Content-Type: application/json" \ |
| 79 | -d '{"api":"tako","path":"/v1/beta/visualize"}' |
| 80 | Q1 2024,100 |
| 81 | Q2 2024,150 |
| 82 | Q3 2024,220 |
| 83 | Q4 2024,310"], "query": "Show quarterly revenue as a bar chart"}' |
| 84 | |
| 85 | |
| 86 | Request a specific chart type: |
| 87 | |
| 88 | |
| 89 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 90 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 91 | -H "Content-Type: application/json" \ |
| 92 | -d '{"api":"tako","path":"/v1/beta/visualize"}' |
| 93 | US,500 |
| 94 | EU,300 |
| 95 | Asia,250"], "query": "Sales by region", "viz_component_type": "pie"}' |
| 96 | |
| 97 | |
| 98 | ### Create a Custom Chart |
| 99 | |
| 100 | Build charts from scratch with full control over components and layout. |
| 101 | |
| 102 | |
| 103 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 104 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 105 | -H "Content-Type: application/json" \ |
| 106 | -d '{"api":"tako","path":"/v1/thin_viz/create/","body":{"components":[{"component_type":"header","config":{"title":"Sales by Region"}},{"component_type":"categorical_bar","config":{"datasets":[{"label":"Revenue (M)","data":[{"x":"US","y":500},{"x":"EU","y":300},{"x":"Asia","y":250}]}]}}],"title":"Sales by Region","source":"Internal Data"}}' |
| 107 | |
| 108 | |
| 109 | ### List Available Chart Types |
| 110 | |
| 111 | |
| 112 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 113 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 114 | -H "Content-Type: application/json" \ |
| 115 | -d '{"api":"tako","path":"/v1/thin_viz/default_schema/"}' |
| 116 | |
| 117 | |
| 118 | ### Get Tako Tool Descriptions |
| 119 | |
| 120 | |
| 121 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 122 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 123 | -H "Content-Type: application/json" \ |
| 124 | -d '{"api":"tako","path":"/v1/tako_tools_description"}' |
| 125 | |
| 126 | |
| 127 | ## Parameters |
| 128 | |
| 129 | ### Knowledge Search (POST /v1/knowledge_search) |
| 130 | |
| 131 | Body: |
| 132 | **inputs.text** (string, required) - Natural language query (e.g. "Tesla vs Ford market cap") |
| 133 | **inputs.search_effort** (string) - "fast", "medium", "deep", or "auto" |
| 134 | **source_indexes** (array) - Priority order: "tako", "web", "tako_deep_v2". Default: ["tako"] |
| 135 | **country_code** (string) - ISO 3166-1 alpha-2 (e.g. "US", "GB"). Default: "US" |
| 136 | **locale** (string) - e.g. "en-US", "de-DE". Default: "en-US" |
| 137 | **output_settings** (object) - `{"knowledge_card_settings": {"image_dark_mode": true}}` for dark mode |
| 138 | |
| 139 | ### Chart Insights (GET /v1/beta/chart_insights) |
| 140 | |
| 141 | **card_id** (string, required) - Card ID from Knowledge Search or Create Card response |
| 142 | |
| 143 | ### Visualize Datasets (POST /v1/beta/visualize) |
| 144 | |
| 145 | Body: |
| 146 | **csv** (array of strings, required) - CSV data with headers in first row. Example: `["name,value |
| 147 | Apple,3.7 |
| 148 | NVIDIA,3.4"]` |
| 149 | **query** (string) - How to visualize (e.g. "Show as a bar chart") |
| 150 | **viz_component_type** (string) - Force chart type: bar, grouped_bar, stacked_bar, timeseries, pie, choropleth, scatter, boxplot, heatmap, waterfall, histogram, table, treemap |
| 151 | |
| 152 | ### Create Card (POST /v1/thin_viz/create/) |
| 153 | |
| 154 | Body: |
| 155 | **components** (array, required) - Each needs `component_type` (header, categorical_bar, pie, scatter, table, choropleth, heatmap, histogram, boxplot, treemap, waterfall, bubble, etc.) and `config` (type-specific data) |
| 156 | **title** (string) - Card title |
| 157 | **description** (string) - Card description |
| 158 | **source** (string) - Data source attribution for footer |
| 159 | |
| 160 | ### List Default Schemas (GET /v1/thin_viz/default_schema/) |
| 161 | |
| 162 | No parameters. |
| 163 | |
| 164 | ### Tool Descriptions (GET /v1/tako_tools_description) |
| 165 | |
| 166 | **index_ids** (string) - Comma-separated index IDs to filter |
| 167 | |
| 168 | ## Response |
| 169 | |
| 170 | ### Knowledge Search — `data.outputs.knowledge_cards[]` |
| 171 | |
| 172 | **card_id** - Unique ID (use for Chart Insights or embed URLs) |
| 173 | **title** - Chart title |
| 174 | **description** - Text description of the data and trends |
| 175 | **card_type** - "chart", "table", "company", or "text" |
| 176 | **webpage_url** - Interactive card page on Tako |
| 177 | **image_url** - Static chart image (embed in messages, reports) |
| 178 | **embed_url** - Embeddable iframe URL |
| 179 | **relevance** - "High", "Medium", or "Low" |
| 180 | **sources** - Data sources with name and description |
| 181 | **visualization_data** - Raw chart data points |
| 182 | |
| 183 | ### Chart Insights — `data` |
| 184 | |
| 185 | **insights** - Array of AI-generated observations |
| 186 | **description** - Chart description |
| 187 | |
| 188 | ### Create Card — `data` |
| 189 | |
| 190 | **card_id**, **title**, **webpage_url**, **image_url**, **embed_url** |
| 191 | |
| 192 | ## Examples |
| 193 | |
| 194 | |
| 195 | # What's the US unemployment rate? |
| 196 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 197 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 198 | -H "Content-Type: application/json" \ |
| 199 | -d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"US unemployment rate"}}}' |
| 200 | |
| 201 | # Compare company revenues |
| 202 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 203 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 204 | -H "Content-Type: application/json" \ |
| 205 | -d '{"api":"tako","path":"/v1/knowledge_search","body":{"inputs":{"text":"Apple vs Microsoft vs Google revenue","search_effort":"deep"}}}' |
| 206 | |
| 207 | # Get insights on a chart |
| 208 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 209 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 210 | -H "Content-Type: application/json" \ |
| 211 | -d '{"api":"tako","path":"/v1/beta/chart_insights","query":{"card_id":"sXQPVnixcDUf2Iw35Via"}}' |
| 212 | |
| 213 | # Visualize your own CSV data |
| 214 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 215 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 216 | -H "Content-Type: application/json" \ |
| 217 | -d '{"api":"tako","path":"/v1/beta/visualize"}' |
| 218 | North America,500 |
| 219 | Europe,300 |
| 220 | Asia,250 |
| 221 | LatAm,100"], "query": "Show sales by region"}' |
| 222 | |
| 223 | # Create a custom bar chart |
| 224 | curl -s -X POST $GOOSEWORKS_API_BASE/v1/proxy/orthogonal/run \ |
| 225 | -H "Authorization: Bearer $GOOSEWORKS_API_KEY" \ |
| 226 | -H "Content-Type: application/json" \ |
| 227 | -d '{"api":"tako","path":"/v1/thin_viz/create/","body":{"components":[{"component_type":"categorical_bar","config":{"datasets":[{"label":"Revenue","data":[{"x":"Q1","y":100},{"x":"Q2","y":200}]}]}}],"title":"Quarterly Revenue"}}' |
| 228 | |
| 229 | |
| 230 | ## Tips |
| 231 | |
| 232 | **Knowledge Search** is the main endpoint — start here for any data question |
| 233 | Use **image_url** to display charts in Slack, Discord, or other channels |
| 234 | **embed_url** gives an interactive iframe for web pages |
| 235 | Call **List Default Schemas** before Create Card to see available chart types |
| 236 | Set `search_effort: "deep"` for complex multi-metric comparisons |
| 237 | Data coverage: stock prices, revenue, GDP, unemployment, population, sports stats, weather, health, and more |
| 238 | |
| 239 | ## Error Handling |
| 240 | |
| 241 | **400** - Invalid body or missing required fields |
| 242 | **401** - Invalid API key |
| 243 | **404** - Card not found (Chart Insights) or no results found (Knowledge Search) |
| 244 | Empty `knowledge_cards` array — try rephrasing or using `source_indexes: ["tako", "web"]` |
| 245 |