# Zephyr: Full Customization

- [Introduction](https://docs.mercurydata.app/zephyr-full-customization/introduction.md): Introduction to Mercury's Cloud Execution Environment
- [General concepts](https://docs.mercurydata.app/zephyr-full-customization/general-concepts.md): General Mercury Cloud Concepts
- [Zephyr Programs](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/zephyr-programs.md)
- [Accessing the Ledger: Contract Entries](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/accessing-the-ledger-contract-entries.md)
- [Accessing the Ledger Meta: Contract Events](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/accessing-the-ledger-meta-contract-events.md)
- [Database Interactions](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/database-interactions.md)
- [Create Custom Callable APIs: Serverless Functions](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/create-custom-callable-apis-serverless-functions.md)
- [Catchups](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/catchups.md)
- [Using Soroban inside Zephyr](https://docs.mercurydata.app/zephyr-full-customization/general-concepts/using-soroban-inside-zephyr.md)
- [Quickstart](https://docs.mercurydata.app/zephyr-full-customization/quickstart.md): Get started with Zephyr
- [Learn](https://docs.mercurydata.app/zephyr-full-customization/learn.md): Learn all-things Zephyr
- [Introduction to Mercury's Cloud and the Zephyr Stack](https://docs.mercurydata.app/zephyr-full-customization/learn/introduction-to-mercurys-cloud-and-the-zephyr-stack.md): Learn how the Zephyr stack works.
- [Get Started: Set Up and Manage the Project](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project.md)
- [Create the Project](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/create-the-project.md)
- [Writing the Program](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/writing-the-program.md)
- [Local Testing](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/local-testing.md): Learn how to locally test Zephyr programs.
- [Deploy](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/deploy.md)
- [Data catchups/backfill](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/data-catchups-backfill.md)
- [Monitor Execution](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/monitor-execution.md)
- [Querying](https://docs.mercurydata.app/zephyr-full-customization/learn/get-started-set-up-and-manage-the-project/querying.md)
- [Database Interactions](https://docs.mercurydata.app/zephyr-full-customization/learn/database-interactions.md): Learn more about how your Zephyr program connects to the Mercury database.
- [Zephyr.toml: Define the Tables Structure](https://docs.mercurydata.app/zephyr-full-customization/learn/database-interactions/zephyr.toml-define-the-tables-structure.md)
- [Understanding Database Interactions](https://docs.mercurydata.app/zephyr-full-customization/learn/database-interactions/understanding-database-interactions.md): Now that our tables are defined, let's learn how to interact with those form a Zephyr program.
- [Database Operations](https://docs.mercurydata.app/zephyr-full-customization/learn/database-interactions/database-operations.md): Learn about Zephyr's database operations.
- [Accessing the Ledger](https://docs.mercurydata.app/zephyr-full-customization/learn/accessing-the-ledger.md): Learn how you can directly access the Stellar ledger from a Zephyr program.
- [Accessing Ledger Transition: Soroban Events](https://docs.mercurydata.app/zephyr-full-customization/learn/accessing-ledger-transition-soroban-events.md): Learn how you can retrieve and use Contract Events in your program.
- [Working with Contract Custom Types](https://docs.mercurydata.app/zephyr-full-customization/learn/working-with-contract-custom-types.md): Use directly your custom contract types inside a Zephyr program.
- [Working with Soroban SDK Types](https://docs.mercurydata.app/zephyr-full-customization/learn/working-with-soroban-sdk-types.md): Learn about how you can use the very Soroban SDK inside Zephyr
- [Web Requests, Automation and Alerts.](https://docs.mercurydata.app/zephyr-full-customization/learn/web-requests-automation-and-alerts..md): Learn how to send web requests from a Zephyr program.
- [Zephyr.toml Extensions: Indexes And Dashboard](https://docs.mercurydata.app/zephyr-full-customization/learn/zephyr.toml-extensions-indexes-and-dashboard.md): Learn how to declare zephyr.toml extension to publish indexes and dashboards to the community.
- [Reading From Indexes/External Tables](https://docs.mercurydata.app/zephyr-full-customization/learn/reading-from-indexes-external-tables.md): Learn how Zephyr programs can access publicly indexed data.
- [Custom APIs - Serverless Functions](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-apis-serverless-functions.md): Learn about Mercury's API-callable functions
- [General Concepts](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-apis-serverless-functions/general-concepts.md): What are server-less functions and how they look like.
- [Custom RPC-alike Endpoints](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-apis-serverless-functions/custom-rpc-alike-endpoints.md): Learn how you can set from your program a RPC-alike endpoint for ledger entries retrieval and contract call simulation.
- [Querying APIs for Composable Data](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-apis-serverless-functions/querying-apis-for-composable-data.md): Create fully custom callable APIs with access to stored and ledger data.
- [Data Catchups/Backfill](https://docs.mercurydata.app/zephyr-full-customization/learn/data-catchups-backfill.md): Learn how you can backfill older data into your program.
- [Custom Dashboards](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-dashboards.md): Learn how to create custom dashboards with Zephyr
- [Creating the Dashboard](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-dashboards/creating-the-dashboard.md): Practically learn how to create your own dashboards.
- [Plotting: Simple](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-dashboards/plotting-simple.md): Learn how to easily plot dashboard data directly from your Mercury program.
- [Complex Plotting](https://docs.mercurydata.app/zephyr-full-customization/learn/custom-dashboards/complex-plotting.md): Learn how to create more complex plots
- [Support](https://docs.mercurydata.app/zephyr-full-customization/support.md): Get support from the Mercury team.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mercurydata.app/zephyr-full-customization.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
