Skip to main content
POST
Minimum required API key scope: Read/Write. Submissions are attributed to the user who created the API key.

Description

Submit up to 100 contracts for decoding in a single request. Each item is validated and queued independently: the response carries one result per item, matched by index, so a bad ABI in one item does not stop the others. Successful items are queued as pending and can be tracked with List Contract Submissions or in the Dune UI. Items that fail validation carry an error describing what to fix.
ABI upgrades, renames, deletions, and submissions to protected namespaces are always routed to manual review. Expect them to show needs_manual_review rather than being decoded automatically.

Request Fields

Each entry in submissions mirrors the fields of the submission form. See the decoding guide for what the flags mean. For delete, project_name and contract_name name the contract to remove.

Idempotency

If a request fails part way through or you lose the response, retrying a batch without keys creates duplicate submissions. Give each item an idempotency_key you control, such as abi-refresh-2026-09-10/0. Resubmitting an item whose key you already used returns the existing submission with replayed: true instead of creating a new one. Keys are scoped to your account.

Plan Requirements

  • Free plans can submit new contracts for a single blockchain per request.
  • Batches spanning more than one blockchain_name, and any upgrade, rename, delete, or other submission, require the plan behind the API key to be paid (the team’s plan for a team key). Otherwise the request fails with 403 and a reason.
  • Read-only plans cannot submit.

Pricing

Submitting contracts does not consume credits.

Headers

X-Dune-Api-Key
string
required

API Key for the service

Query Parameters

api_key
string

API Key, alternative to using the HTTP header X-Dune-Api-Key

Body

application/json

Batch of contract submissions

submissions
object[]
required
Required array length: 1 - 100 elements

Response

OK

results
object[]