Skip to main content

Getting Started

Obtaining an API Key

API keys are issued by the Emerald admin team. Contact your account manager or request one through the admin dashboard. Each key is scoped to a single partner organization.

Once you have your key, it will look like this:

sk-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Base URL

EnvironmentURL
Productionhttps://api.emeraldvaults.io
Developmenthttp://localhost:3001

Authentication

Include your API key in the x-api-key header on all partner requests:

curl -H "x-api-key: sk-your-api-key-here" \
https://api.emeraldvaults.io/api/v1/partner/vaults

Public endpoints (under /api/v1/vaults, /api/v1/users, etc.) require no authentication.

Rate Limits

ParameterValue
Default limit100 requests per minute per API key
Maximum configurable10,000 requests per minute
WindowSliding 1-minute window
Exceeded responseHTTP 429 with error code RATE_LIMITED

When you receive a 429 response, implement exponential backoff:

async function fetchWithRetry(url: string, apiKey: string, maxRetries = 3) {
for (let i = 0; i < maxRetries; i++) {
const res = await fetch(url, {
headers: { "x-api-key": apiKey },
});

if (res.status === 429) {
const delay = Math.pow(2, i) * 1000; // 1s, 2s, 4s
await new Promise((r) => setTimeout(r, delay));
continue;
}

return res.json();
}

throw new Error("Rate limit exceeded after retries");
}

Next Steps