{
  "opencollection": "1.0.0",
  "info": {
    "name": "LOVO AI Genny API",
    "version": "1.0",
    "description": "REST API for LOVO AI's Genny text-to-speech and voice generation platform. Base URL https://api.genny.lovo.ai. Authenticated with the X-API-KEY header. API access requires an active subscription; rate limit 20 requests/min; text capped at 500 characters per conversion; audio URLs valid 24 hours."
  },
  "request": {
    "auth": {
      "type": "apikey",
      "apikey": {
        "key": "X-API-KEY",
        "value": "{{apiKey}}",
        "in": "header"
      }
    }
  },
  "items": [
    {
      "info": { "name": "Text-to-Speech", "type": "folder" },
      "items": [
        {
          "info": { "name": "Async TTS", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.genny.lovo.ai/api/v1/tts",
            "body": { "type": "json", "data": "{\n  \"speaker\": \"640f477d2babeb0024be422b\",\n  \"text\": \"Welcome to Genny!\",\n  \"speed\": 1\n}" }
          },
          "docs": "Submit an asynchronous text-to-speech job. Returns a job with an id to poll via GET /tts/{jobId}. Optional callbackUrls (max 4) receive a POST webhook on completion."
        },
        {
          "info": { "name": "Sync TTS", "type": "http" },
          "http": {
            "method": "POST",
            "url": "https://api.genny.lovo.ai/api/v1/tts/sync",
            "body": { "type": "json", "data": "{\n  \"speaker\": \"640f477d2babeb0024be422b\",\n  \"text\": \"Welcome to Genny!\",\n  \"speed\": 1\n}" }
          },
          "docs": "Convert text to speech synchronously. 90-second timeout; returns a pending async job if synthesis exceeds the timeout."
        },
        {
          "info": { "name": "Async Retrieve Job", "type": "http" },
          "http": {
            "method": "GET",
            "url": "https://api.genny.lovo.ai/api/v1/tts/:jobId",
            "params": [
              { "name": "jobId", "value": "643e383551e2730025c5ae69", "type": "path", "description": "The job id returned by a TTS request." }
            ]
          },
          "docs": "Retrieve a TTS job by id. Returns generated audio URLs (valid 24 hours) once completed."
        }
      ]
    },
    {
      "info": { "name": "Speakers", "type": "folder" },
      "items": [
        {
          "info": { "name": "Retrieve Speakers", "type": "http" },
          "http": {
            "method": "GET",
            "url": "https://api.genny.lovo.ai/api/v1/speakers",
            "params": [
              { "name": "sort", "value": "displayName:1", "type": "query", "description": "Sort by displayName, locale, gender, speakerType, or ageRange. No whitespace." },
              { "name": "page", "value": "0", "type": "query", "description": "Number of pages to skip." },
              { "name": "limit", "value": "20", "type": "query", "description": "Number of speakers per page." }
            ]
          },
          "docs": "Retrieve all speakers with optional filtering, sorting, and pagination. Each speaker includes id, locale, gender, avatar, age range, and available styles with sample audio URLs."
        }
      ]
    },
    {
      "info": { "name": "Teams", "type": "folder" },
      "items": [
        {
          "info": { "name": "Get Team Billing Information", "type": "http" },
          "http": {
            "method": "GET",
            "url": "https://api.genny.lovo.ai/api/v1/teams/status"
          },
          "docs": "Get team billing and usage information for the account associated with the API key - team name, subscription status/interval, current period, and metered usage."
        }
      ]
    }
  ]
}
