Back to generator

API Documentation

Quick Start

Generate a Bitwarden vault with 50 login items:

curl -X POST /api/vault/generate \
  -H "Content-Type: application/json" \
  -d '{"format": "bitwarden", "loginCount": 50}'

Endpoints

GET/api/vault

API overview. Returns supported formats, endpoint info, and rate limit details.

GET/api/vault/formats

Detailed format capabilities. Returns each format's supported vault types, item types, organizational features, and output format.

POST/api/vault/generate

Generate vault data. Accepts JSON body with generation parameters. Returns the vault file as a download (JSON, CSV, or XML depending on format).

GET/api/config

Application configuration. Returns hosting provider info.

Generation Parameters

All parameters for POST /api/vault/generate. Only format is required.

Core

ParameterTypeDefaultDescription
formatstringrequiredOne of: bitwarden, lastpass, keeper, edge, keepassx, keepass2, password-depot
vaultTypestring"individual""individual" or "org" (org is Bitwarden only)
loginCountnumber50Number of login items (0 - 10,000)
secureNoteCountnumber0Number of secure notes (Bitwarden only, 0 - 10,000)
creditCardCountnumber0Number of credit cards (Bitwarden only, 0 - 10,000)
identityCountnumber0Number of identity items (Bitwarden only, 0 - 10,000)
languagestring"en"Locale for generated data (see Supported Languages)

URL Options

ParameterTypeDefaultDescription
useRealUrlsbooleanfalseUse real website URLs instead of generated ones
useEnterpriseUrlsbooleanfalseUse enterprise/corporate URLs
enterpriseUrlsstring[]-Custom list of enterprise URLs to use

Password Options

ParameterTypeDefaultDescription
useWeakPasswordsbooleanfalseInclude weak/common passwords in generated data
weakPasswordPercentagenumber20Percentage of passwords that are weak (0 - 100)
reusePasswordsbooleanfalseSimulate password reuse across entries
passwordReusePercentagenumber10Percentage of passwords that are reused (0 - 100)

Collection Options (Bitwarden org vaults only)

ParameterTypeDefaultDescription
useCollectionsbooleanfalseEnable collections in the vault
collectionCountnumber5Number of flat collections (max 100)
distributeItemsbooleantrueDistribute items across collections
useNestedCollectionsbooleanfalseEnable hierarchical nested collections
topLevelCollectionCountnumber5Number of top-level collections when nested
collectionNestingDepthnumber3Maximum nesting depth (max 10)
totalCollectionCountnumber15Total number of collections when nested (max 100)

Format Capabilities

FormatOutputVault TypesItem TypesFeatures
bitwardenJSONindividual, orglogin, secureNote, creditCard, identityFolders, collections, nested collections
lastpassCSVindividuallogin-
keeperCSVindividualloginFolders
edgeCSVindividuallogin-
keepassxCSVindividuallogin-
keepass2XMLindividualloginPredefined groups
password-depotCSVindividuallogin-

Rate Limits & Constraints

Rate Limits

EndpointLimit
POST /api/vault/generate10 requests per minute
All other endpoints (GET)60 requests per minute

Rate limit headers are included in all responses:

Item Constraints

Collection Constraints

Request Constraints

Supported Languages

The language parameter controls the locale used for generating names, addresses, and other fake data.

CodeLanguage
enEnglish
esSpanish
deGerman
frFrench
itItalian
ptPortuguese
ruRussian
jaJapanese
zhChinese

Examples

Basic Bitwarden vault

curl -X POST /api/vault/generate \
  -H "Content-Type: application/json" \
  -d '{
    "format": "bitwarden",
    "loginCount": 100,
    "secureNoteCount": 10,
    "creditCardCount": 5,
    "identityCount": 5
  }'

LastPass CSV export

curl -X POST /api/vault/generate \
  -H "Content-Type: application/json" \
  -d '{
    "format": "lastpass",
    "loginCount": 200,
    "useRealUrls": true
  }' -o lastpass_export.csv

Bitwarden org vault with nested collections

curl -X POST /api/vault/generate \
  -H "Content-Type: application/json" \
  -d '{
    "format": "bitwarden",
    "vaultType": "org",
    "loginCount": 500,
    "secureNoteCount": 50,
    "useCollections": true,
    "useNestedCollections": true,
    "topLevelCollectionCount": 5,
    "collectionNestingDepth": 3,
    "totalCollectionCount": 30,
    "distributeItems": true,
    "useWeakPasswords": true,
    "weakPasswordPercentage": 15,
    "reusePasswords": true,
    "passwordReusePercentage": 25,
    "language": "de"
  }'

Error Handling

Errors are returned as JSON with an error field:

{
  "error": "Description of what went wrong"
}

HTTP Status Codes

StatusMeaning
200Success – vault data returned
400Validation error – invalid parameters, unsupported format, or constraint violation
429Rate limit exceeded – wait and retry
500Internal server error – unexpected failure during generation