snapshot
Blog
  • Welcome to Snapshot docs
  • User guides
    • Spaces
      • What is a space?
      • Create a space
        • Register an ENS domain
        • Alternative way to create a space
      • Settings
      • Sub-spaces
      • Space verification
      • Space hibernation
      • Add a custom domain
      • Add a skin
      • Space roles
      • Space badges
      • Snapshot Pro
      • Space handbook
        • Most common
        • Voting threshold
        • Anti-whale
        • Sybil resistance, scam & spam prevention
        • Liquidity / staking pool
        • Delegation
        • NFT voting
          • Most common: ERC-721
          • Multi-token: ERC-1155
          • POAP - Proof of Attendance
        • Custom calculations
    • Create a proposal
    • Voting
      • Vote on a proposal
      • Delegate your voting power
    • Voting strategies
    • Validation strategies
    • Using Safe multi-sig
    • Delegation
  • Developer Guides
    • Create a voting strategy
    • Create a validation strategy
    • Identify integrator activity
    • Add a network
  • Tools
    • Tools overview
    • Snapshot.js
    • API
      • API Keys
    • Webhooks
    • Subgraphs
    • Mobile notifications
    • Bots
  • Snapshot X
    • Overview
    • User guides
      • Create a space
      • Proposals
      • Voting
      • Safe execution setup
    • Protocol
      • Overview
      • Space actions
      • Space controller actions
      • Authenticators
      • Proposal validations
      • Voting strategies
      • Starknet specifics
      • Execution strategies
      • Audits
    • Services
      • Architecture
      • API
      • SX.js
      • UI
      • Mana
  • V1 interface
    • Email notifications
    • Plugins
      • What is a plugin?
      • Create a plugin
      • oSnap
      • SafeSnap
      • POAP
      • Quorum
      • Domino notifications
      • Galxe
    • Boost
  • Community
    • Help center
    • Discord
    • X (Twitter)
    • GitHub
Powered by GitBook
On this page
  • Limits
  • How can I get an API Key?
  • 1. Apply via the request form
  • 2. Wait 72 hours
  • 3. Generate the API Key
  • How to structure the query with my key?

Was this helpful?

Edit on GitHub
Export as PDF
  1. Tools
  2. API

API Keys

To obtain higher rate limits on the Hub API use, apply for an API Key.

PreviousAPINextWebhooks

Last updated 10 months ago

Was this helpful?

We want to ensure that we limit the risk of API downtime and provide a reliable and continuous service. Therefore we decided to implement API Keys to ensure that the requests come from genuine users.

You can use the same API key for different Snapshot APIs. Limits are counted individually per each API Service.

Limits

๐Ÿ”“ No API Key: 100 requests per minute.

๐Ÿ”‘ With the API Key: 2 million requests per month.

If you are getting close to 2M requests a month contact our support on

How can I get an API Key?

1. Apply via the request form

If you havenโ€™t already please fill in the below form or submit it via .

API Key Request Form

2. Wait 72 hours

We will review your submission and whitelist the address you provided in the form.

3. Generate the API Key

a) Sign the message with keyword generateKey:

b) Copy the signature and run the below curl command.

curl --location 'https://keycard.snapshot.org' \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '{
    "jsonrpc": "2.0",
    "method": "generate_key",
    "params": {
        "sig": "<SIGNATURE_HASH>"
    },
    "id": "123456789"
}'

Make sure to use the signature hash from step 5 in the sig param, do not paste the entire response after signing the message. As an example:

...
    "method": "generate_key",
    "params": {
        "sig": "0x85bcabdeb3b43131364d21b32f8c74124d155009fc9d6d40901b4b725f23e0ac632808ebb00f3569bf875ded07b61ac5163ebe757b0897278ab276cdc982e3001c"
    },
...

You will receive the API Key as a response of the curl request. Make sure to store it securely.

How to structure the query with my key?

The only change you need to make is to add the API Key in the headers of your request:

curl 'https://hub.snapshot.org/graphql?' \
  -H 'content-type: application/json' \
  -H 'x-api-key: <YOUR-API-KEY>' \
  --data-raw '{"query":"\n{\n space(id:\"snapshot.dcl.eth\"){\n  id\n  name\n  members\n}\n}","variables":null}' \
  --compressed

Alternatively, you can use the apiKey param in the query string with your key as a value:

curl 'https://hub.snapshot.org/graphql?apiKey=<YOUR_API_KEY>' \
  -H 'content-type: application/json' \
  --data-raw '{"query":"\n{\n space(id:\"snapshot.dcl.eth\"){\n  id\n  name\n  members\n}\n}","variables":null}' \
  --compressed

If you are using the GraphQL interface you need to provide your key in the headers tab:

After 72 hours have passed you can continue with the next steps. If you get any errors while generating the key, please contact our support on .

After your address has been whitelisted go to and connect your wallet using the account you provided in the submission form above.

Untitled
Help Center
https://app.mycrypto.com/sign-message
Help Center
the direct link