Free & Open

    No API key or signup needed. Completely free to use.

    Edge-Deployed

    Globally distributed. Sub-100ms response times.

    Deterministic

    Pass a seed parameter for reproducible results every time.

    Overview

    The Star Wars Name Generator API is a free REST API that generates lore-friendly Star Wars character names. It supports 15 species (see our naming glossary for conventions), 6 style presets, gender filtering, era-specific naming conventions, and fine-grained control over phonetics via syllable count and harshness parameters. Learn more about the linguistic research behind it on our methodology page.

    The API is stateless — no data is stored, no accounts are required, and every request is independent. It uses a seeded random number generator, so passing the same seed will always return the same names.

    • Generate up to 50 unique names per request
    • CORS enabled — works from any frontend, mobile app, or server
    • JSON request and response format
    • No API key, no authentication, no signup

    Base URL

    All API requests should be made to the following base URL:

    https://vqcjvexnwxnwvaoeofka.supabase.co/functions/v1/generate-names

    The API is served over HTTPS only. HTTP requests will not be accepted.

    OpenAPI 3.1 Specification

    Import the machine-readable spec into Postman, Insomnia, Swagger UI, or your code generator of choice.

    Authentication

    No Authentication Required

    This API is completely free and open. No API key, bearer token, or any form of authentication is needed to make requests.

    Simply send your request to the endpoint — no headers beyond Content-Type: application/json are required for POST requests.

    Available Endpoints

    POST/generate-names

    Generate Star Wars character names based on the provided parameters. Send a JSON body with your configuration.

    Content-Type: application/json

    Request Body: JSON object with optional parameters (see Parameters section)

    Response: JSON object with names array and meta object

    GET/generate-names

    Returns API documentation in JSON format, including available parameters, valid options, and endpoint descriptions. Useful for programmatic discovery.

    Response: JSON object describing the API schema, parameter options, and available species list

    Request Parameters

    All parameters are optional. If omitted, defaults are applied. Send as a JSON body with a POST request.

    ParameterTypeRequiredDefaultDescription
    speciesstringNo"human"The species type. Options: human, twilek, wookiee, zabrak, mandalorian, droid, sith, jedi, hutt, rodian, moncalamari, chiss, togruta, gamorrean, planet
    presetstringNo"classic"Name style preset. Options: classic, dark, heroic, droid, ancient, pirate
    countnumberNo5Number of names to generate (1–50)
    genderstringNo"neutral"Gender influence on name phonetics. Options: male, female, neutral
    erastringNo"imperial"Star Wars era for naming conventions. Options: old-republic, clone-wars, imperial, new-republic
    syllableCountnumberNo3Number of syllables per name (2–5)
    harshnessnumberNo50Phonetic harshness: 0 (soft/melodic) to 100 (harsh/guttural)
    seedstringNoRandom UUIDSeed for deterministic output. Same seed = same names

    Available Species

    humantwilekwookieezabrakmandaloriandroidsithjedihuttrodianmoncalamarichisstogrutagamorreanplanet

    Response Format

    Successful responses return a JSON object with two keys:

    Success Response (200 OK)

    {
      "names": [
        "Darth Vadious",
        "Lord Revanus",
        "Dark Nihilix",
        "Darth Malak",
        "Lord Sidias"
      ],
      "meta": {
        "species": "sith",
        "preset": "dark",
        "gender": "neutral",
        "era": "imperial",
        "syllableCount": 3,
        "harshness": 50,
        "count": 5,
        "seed": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }
    FieldTypeDescription
    namesstring[]Array of generated Star Wars names
    metaobjectEcho of the parameters used, including the auto-generated seed if none was provided
    meta.seedstringThe seed used — save this to reproduce the exact same names later

    Error Handling

    Errors return a JSON object with an error field describing the issue.

    Status CodeMeaningWhen It Occurs
    200OKRequest successful — names generated
    400Bad RequestInvalid species, invalid preset, or malformed JSON body
    405Method Not AllowedUsing a method other than GET or POST (e.g., PUT, DELETE)

    Error Response Examples

    Invalid species:

    {
      "error": "Unknown species \"ewok\". Valid: human, twilek, wookiee, zabrak, mandalorian, droid, sith, jedi, hutt, rodian, moncalamari, chiss, togruta, gamorrean, planet"
    }

    Invalid preset:

    {
      "error": "Unknown preset \"steampunk\". Valid: classic, dark, heroic, droid, ancient, pirate"
    }

    Malformed JSON:

    {
      "error": "Invalid request body. Send JSON."
    }

    Wrong HTTP method:

    {
      "error": "Method not allowed. Use POST."
    }

    Rate Limits

    No Hard Rate Limits

    There are currently no enforced rate limits. The API is free for reasonable use.

    However, please follow these guidelines for fair usage:

    • Avoid sending more than 60 requests per minute from a single client
    • Use the count parameter (up to 50) to batch names in a single request instead of making many small requests
    • Cache results on your end when possible — use the seed parameter for deterministic results
    • Excessive abuse may result in temporary IP-based throttling

    If you're building an application that requires guaranteed uptime or higher throughput, contact us to discuss dedicated access.

    Interactive Playground

    Configure parameters below and hit Send Request to test the API live.

    Parameters

    Request Body

    {
      "species": "sith",
      "preset": "dark",
      "count": 5,
      "gender": "neutral",
      "era": "imperial",
      "syllableCount": 3,
      "harshness": 50
    }

    Response

    // Click "Send Request" to see the response

    Code Examples

    Copy-paste examples for common languages. Parameters update dynamically based on your playground selections above.

    curl -X POST https://vqcjvexnwxnwvaoeofka.supabase.co/functions/v1/generate-names \
      -H "Content-Type: application/json" \
      -d '{"species":"sith","preset":"dark","count":5,"gender":"neutral","era":"imperial"}'