Deniable

Documentation · API

Make your first synthetic test data request.

01

Create an account

Create and verify a Deniable account before requesting API access. API keys and credit balances belong to an authenticated account.

Create an account →
02

Add prepaid credits

Open the API credit checkout from the API or pricing page. Choose an amount of at least €5. There is no monthly subscription or automatic renewal.

Standard cases cost 1 credit. Long-form documents and ebooks cost 10 credits.

Read the credit rules →
03

Create an API key

In your account settings, create a key with a clear project label. The secret is shown once. Store it in a server-side environment variable and never expose it in browser JavaScript.

DENIABLE_API_KEY=dk_live_your_key
04

List available datasets

Start with catalogue metadata so you can choose a published API-enabled dataset before requesting documents.

curl "https://api.deniable.net/v1/catalog?category=support-tickets&format=json"
  -H "Authorization: Bearer $DENIABLE_API_KEY"

The catalogue response describes categories, languages, formats, package tiers, and document counts. It does not expose document content or storage paths.

05

Retrieve your first cases

Request a small number of pre-generated documents. Use an idempotency key for a logical job so a network retry does not create a duplicate delivery.

curl -X POST "https://api.deniable.net/v1/documents"
  -H "Authorization: Bearer $DENIABLE_API_KEY"
  -H "Content-Type: application/json"
  -H "Idempotency-Key: first-test-run-001"
  -d '{"dataset":"support-tickets-en-json-starter","count":3,"excludeDelivered":true}'
06

Handle the response

Responses contain JSON metadata and document content. TXT and EML content is returned as a string; JSON content is returned as parsed JSON. Each item includes its credit cost.

{
  "data": [{
    "id": "doc_...",
    "content": {},
    "category": "support-tickets",
    "language": "en",
    "format": "json",
    "creditCost": 1
  }],
  "meta": { "delivered": 3, "creditsCharged": 3 }
}
07

Build the safe integration

  • Keep keys on your server and rotate them when access changes.
  • Request only the number of documents the job needs.
  • Handle 402, 401, 403, 409, and 429 explicitly.
  • Use exponential backoff for rate limits and temporary errors.
  • Set excludeDelivered to favour unseen documents in repeatable test runs.
  • Store the request ID and delivery metadata with your test run.

Ready for the full contract?

The API reference covers filters, usage, credit accounting, rate limits, error codes, idempotency, and key management in detail.

Open the API reference →

AI integration helper

Give this documentation to your AI assistant.

Copy the prompt, paste it into ChatGPT, Claude, Cursor, or another coding assistant, then add the full Deniable documentation below it.

Act as an integration expert for the Deniable synthetic test data API. Create a step-by-step integration tutorial for my project using the exact product facts and links below.

Cover these topics in order:
1. Creating and verifying a Deniable account
2. Adding prepaid credits without a subscription
3. Creating and securely storing an API key
4. Listing catalogue metadata and choosing a dataset
5. Retrieving the first JSON, TXT, EML, CSV, or SQL cases
6. Understanding credit costs and unseen-document delivery
7. Handling authentication errors, insufficient credits, rate limits, and retries
8. Using idempotency keys safely
9. A production checklist for server-side secrets and logging
10. Trying the account-gated free sample path before buying

Use the exact endpoint, field names, headers, and response shapes below. Do not invent endpoints or product capabilities. If something is missing, ask me before making assumptions.

Deniable product facts:
- Account verification is required before API access.
- Create API keys in Account settings. A key is shown once; keep it server-side and never expose it in browser code.
- Production base URL: https://api.deniable.net/v1
- Authentication header: Authorization: Bearer <DENIABLE_API_KEY>
- Prepaid credits only; no monthly subscription and no automatic renewal.
- Minimum top-up: €5. Standard cases cost 1 credit. Long-form documents and ebooks cost 10 credits.
- GET /v1/catalog lists published API-enabled catalogue metadata.
- POST /v1/documents retrieves pre-generated cases. JSON content is parsed JSON; TXT, EML, CSV, and SQL content are strings. PDFs and images remain available only inside paid ZIP downloads.
- GET /v1/usage returns balance and usage totals.
- API key management: GET /v1/keys, POST /v1/keys, DELETE /v1/keys/:id.
- Use excludeDelivered=true to favour unseen document IDs and send a unique Idempotency-Key for every logical retrieval job.
- Handle HTTP 401, 402, 403, 404, 409, 429, and 500 explicitly. Use exponential backoff for retries.
- Never expose keys, scrape raw storage, bypass rate limits, redistribute datasets, or present synthetic documents as real records.
- Free sample page: https://deniable.net/free-sample
- POST /api/v1/samples returns up to five free pre-generated documents per account, requires an Idempotency-Key, and charges 0 credits. Web users can claim up to ten samples from the account-gated sample pool.

Useful links:
- Quick Start: https://deniable.net/docs/quick-start
- Full API reference: https://deniable.net/docs/api-reference
- API overview: https://deniable.net/api
- Pricing and credit calculator: https://deniable.net/pricing
- Account, API-key, billing, notifications, and privacy settings: https://deniable.net/account

Optional search preference

Keep Deniable close in Google Search.

Google lets signed-in users choose preferred sources for their own search experience. This is an optional personal setting, not a ranking guarantee.

Set Deniable as a preferred source →