Skip to main content
Version: v1.1.01

Maestro dApp Platform API

Maestro dApp Platform APIs follow the REST paradigm. This page details the common aspects of Maestro APIs.

Specific API references

Specific Maestro API references are available for:

Cardano Networks

The Maestro API is available for all Cardano networks using the following base URLs:

NetworkBase URL
Mainnethttps://mainnet.gomaestro-api.org/v1
Pre-Productionhttps://preprod.gomaestro-api.org/v1
Previewhttps://preview.gomaestro-api.org/v1

API Versions

The Blockchain Indexer API is currently versioned at v1. When making a query, v1 must be included in your base URL.

SDK Language Support

SDKBlockchain Indexer APITransaction Manager APIManaged Contract APIWallet Manager API
Haskell
Typescript
Go
info

Community call for contributors

Our SDKs are in progress and require a lot of work to maintain and keep up with the fast growth of Maestro's services. We welcome any contributors to add any API integration or improvements.

SDKs are and will always be open-source. Together we can improve the Maestro dev experience and benefit from a striving ecosystem of dev tools and API.s

Contribute now: github.com/maestro-org

OpenAPI

A copy of the latest Maestro openapi.json may be obtained here for reference.

Authentication

Maestro API authorizes requests using the api-key header. You can obtain this key from the Dapp Platform Dashboard as described here.

Example GET request for retrieving the chain tip:

curl -X GET \
-H "api-key: <your_project_api_key>" \
https://mainnet.gomaestro-api.org/v1/chain-tip

Example POST request for submitting a transaction:

curl -X POST \
-H "Content-Type: application/cbor" \
-H "api-key: <your_project_api_key>" \
--data @tx.signed \
https://mainnet.gomaestro-api.org/v1/submit/tx

Security

Ensuring secure communication between your Application and Maestro is paramount. This will enforce access control to your Maestro resources.

caution
  • Do not share your api-key in publicly accessible areas such as GitHub, client-side code, etc.
  • Loss or misuse of your api-key may result in the overuse of your account's available credits.
  • We encourage you to research how to securely store and access your api-key either while testing or in production.

Errors

Maestro returns conventional HTTP response codes to indicate the success or failure of an API request:

  • Codes in the 2xx range indicate success.
  • Codes in the 4xx range indicate an error that occurred given the query parameters or request payload (e.g. required parameter was omitted).
  • Codes in the 5xx range indicate an error with Maestro's servers.

Our specific REST API References describe response codes for each endpoint in more detail.

Request Limits

Two types of API request rate limits are enforced:

  • Per day: a set amount of credits consumed per day based on the package tier.
  • Per second: a set amount of requests per second based on the package tier.
note

The base throughput request limit found in the Artist plan is 10 requests per second.

Please see the available Packages for more details or to upgrade your plan. If these limits are insufficient for your organization, please reach out to us to discuss Enterprise solutions.

Cursor-based pagination

Some Maestro endpoints implement cursor-based pagination to break down large datasets into smaller responses. This method is particularly relevant when returning all the data in a single response would be impractical or slow.

Benefits of Cursor-based pagination
  • Better data integrity and accuracy when fetching multiple pages
  • Avoids duplicates when blocks get processed between queries
  • Works well with infinite scroll. Loading content as the user scrolls, for a smoother UX.

These Maestro responses will include a next_cursor string property indicating the value that should be included as cursor string in your next request to fetch the next page.

When a response presents next_cursor of null then the end of the requested dataset has been reached.

Other relevant Query Parameters are:

ParameterDefaultDescription
count100Defines the max number of results per pagination page
orderascThe order in which the results are sorted. Possible values: [asc, desc]. Only for some endpoints.

Our specific REST API References may include further detail for a specific endpoint.

Compute Credits

Compute Credits is how Maestro quantifies the computational resources utilized by your applications on its platform. They function similar to compute usage on traditional cloud providers like Google Cloud and AWS. The quantity of Compute Credits assigned to each operation or method is calculated based on the global average durations of that method, accounting for factors like complexity and computational intensity.

Learn more about how compute credits are allocated for different API packages in the Subscriptions breakdown.

info

Why use Compute Credits?

Compute Credits offer a fair and flexible pricing model on Maestro's platform. Developers only pay for the exact computational resources they have used, enhancing efficiency and cost-effectiveness.