> ## Documentation Index
> Fetch the complete documentation index at: https://edgeful.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# build and save a custom report

> create an Edgeful report from a conversation with Claude, review its sample, and save it to my custom reports.

describe the analysis you want in Claude. Edgeful builds and validates it, Claude shows you the methodology and sample, and you can revise it before saving. the saved report opens in Edgeful with ticker, session, and date controls.

## connect and allow writes

1. [connect the Edgeful MCP server](https://edgeful.com/docs/getting-started/set-up-mcp.md) using your active API-enabled Edgeful account.
2. open the [API dashboard](https://www.edgeful.com/api-dashboard). under **build custom reports with Claude**, enable **connected Claude** for native sign-in, or **this API key** if your client uses a key.
3. start a conversation with the Edgeful tools enabled.

these permissions start off and can be revoked from the dashboard. regenerating a key resets its write permission. you can still read standard reports, list saved custom reports, and read stored results with writes off.

## try a report

```text theme={null}
Build a custom report for ES in the New York session. Measure how often the
first 30-minute range breaks upward or downward and whether the session closes
beyond that range. Show the methodology and sample before saving it.
```

Claude calls `build_custom_report` with the brief. if Edgeful needs details, Claude asks the returned question and continues with `revise_custom_report`. builds can take a few minutes.

review the methodology, assumptions, sample, and accepted inputs. ask for changes in the same conversation. when it looks right, say:

```text theme={null}
Save this as "opening range follow-through" in my Edgeful reports.
```

`save_custom_report` publishes the reviewed artifact immediately and returns its `definition_id`. the report appears in **my custom reports** in Edgeful AI, marked **built via API**. its builder conversation is also available in Edgeful AI history.

## choose charts and layout

describe how you want to see the result when you build or revise it. for example:

```text theme={null}
Show the overall follow-through rate first, then a bar chart by weekday,
a short explanation, and the daily detail table.
```

reports can include KPI rows, bar, stacked bar, line, area and pie charts, tables, and explanations in a chosen order. saved runs reproduce that layout from the calculated values without another AI call. reports without a valid layout keep the summary-and-table view.

## run on another selection

ask Claude to run the report on another ticker or date range. `run_custom_report` accepts either a saved `definition_id`, or the `conversation_id` and exact successful `message_id` from a draft. draft runs do not save a report.

optional `controls` contain `ticker`, `market_type`, `session`, `start_date`, and `end_date`. dates use `YYYY-MM-DD`. the report's market and granularity remain locked. session can change unless its methodology requires a fixed session. you can request a date range beyond the builder's sample window, subject to your plan and execution limits.

saved runs are cached for the same inputs and completed data. a new selection shows loading in Edgeful until it finishes. there is no refresh schedule or older-result placeholder. if a tool returns `running`, repeat `run_custom_report` with the same inputs after the suggested wait. for a retryable failure, supply its `run_id` as `retry_of_run_id`.

## find, read, and delete

* `list_custom_reports` returns your saved reports and their methodology. when `has_more` is true, pass `next_offset` as the next call's `offset`.
* `get_custom_report_latest_result` reads the latest successful stored result without computing. check its actual `effective_controls`, `data_through`, and `computed_at`: it may be for a different selection. `no_result` means no saved run has completed yet.
* `delete_custom_report` removes the saved report and its stored runs when you request deletion. the original builder conversation remains.

## usage and results

builds and revisions use your Edgeful AI allowance. runs execute frozen code without an AI call; saved cache hits do not consume a new run. custom report write requests share a limit of 10 per minute and 100 per hour across your connections and keys. uncached executions also use the normal run allowance and concurrency limit. follow the returned wait time when limited.

tool responses include summary data, at most 100 detail rows, a total row count, truncation information, and presentation blocks when available. large responses may contain fewer blocks or rows; open the report from **my custom reports** in Edgeful AI for the complete result. generated code and raw market-data rows are not returned. Edgeful generates the report code from your brief; the tools do not accept executable code from Claude.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.