{
  "data": {
    "a": {
      "slug": "assemblyai-stt",
      "name": "AssemblyAI Speech-to-Text (Universal)",
      "vendor": "AssemblyAI",
      "vendorUrl": "https://www.assemblyai.com",
      "kind": "model",
      "category": "speech-to-text",
      "summary": "Speech-to-text APIs for recorded audio and live streams, with speaker identification, translation and redaction options.",
      "url": "https://www.anchorterminal.com/tools/assemblyai-stt",
      "markdownUrl": "https://www.anchorterminal.com/tools/assemblyai-stt.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/assemblyai-stt.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/assemblyai-stt.json",
      "dns": "assemblyai-stt.grade.anchorterminal.com",
      "repo": "https://github.com/AssemblyAI/assemblyai-python-sdk",
      "license": "MIT (SDKs)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.assemblyai.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "assemblyai"
        },
        {
          "registry": "pypi",
          "name": "assemblyai"
        }
      ],
      "auth": "api-key",
      "authNotes": "API key in the `authorization` header. Temporary tokens for browser streaming. The docs MCP needs no key.",
      "pricing": "usage",
      "pricingNotes": "Free tier with no card covers up to 185 hours of pre-recorded or 333 hours of streaming. Then pay as you go per hour of audio. Universal-3.5 Pro $0.21, Universal-2 $0.15, Universal-3.6 Pro Realtime $0.45, Universal-Streaming $0.15, Sync $0.45. Diarisation $0.02 an hour on files and $0.12 on streams, keyterms $0.05 on Universal-3.5 Pro, translation $0.06. Streaming bills session time, not audio sent (https://www.assemblyai.com/pricing).",
      "priceSummary": "Pay per use",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 or machine payment in the docs or pricing. Card or prepaid credits only (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 213,
        "npmWeekly": 599958,
        "pypiWeekly": 738086,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://www.assemblyai.com/docs",
      "llmsTxt": "https://www.assemblyai.com/docs/llms.txt",
      "openapi": "https://www.assemblyai.com/docs/openapi.yaml",
      "capabilities": [
        "speech.stt",
        "speech.streaming",
        "speech.batch",
        "speech.diarisation",
        "speech.languages",
        "speech.translation"
      ],
      "tags": [
        "hosted",
        "no-card",
        "free-tier",
        "closed-source",
        "python",
        "typescript",
        "openapi",
        "llms-txt",
        "mcp",
        "streaming",
        "batch",
        "webhooks",
        "async-jobs",
        "enterprise"
      ],
      "lastRelease": "2026-10-19",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 66.8,
        "grade": "B",
        "agentReady": false,
        "rank": 321,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 79,
          "payments": 40,
          "reliability": 85,
          "schema": 95,
          "security": 50,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -6,
        "negativeNotes": [
          "2026-07-10, the async `speech_model` parameter began returning 400 for current model names and silently routing legacy names to the default model, and `universal-3-pro` was blocked for new accounts and accounts inactive for 7 days, all announced in the changelog the same day. We found no earlier notice (https://www.assemblyai.com/changelog). Documented, so the minimum deduction.",
          "11 September and 1 September 2026, fixes of described flaws released with no advisory. Node SDK 4.41.0 (released with 4.41.1 on 11 September) escapes multipart file names because a quote, backslash or control character in a file name could break out of the part header, and the 1 September changelog entry fixed Reader-role users being able to manage API tokens. OSV lists no advisory for either SDK on 1 November. A separate kind from the same-day change above, so a second -3 (https://www.assemblyai.com/changelog)"
        ],
        "verdict": "OpenAPI 3.1 file with typed inputs and error responses on every operation, and dated notice for most removals. Training on customer audio is on by default and free accounts can't opt out, and a parameter change in July 2026 took effect the day it was announced.",
        "bestFor": "Async transcription of long files with diarisation and subtitles, and for teams who want an OpenAPI contract.",
        "strengths": [
          "OpenAPI 3.1 file with typed inputs and error responses on every operation",
          "Universal-2 covers 99 languages at $0.15 an hour, Universal-3.5 Pro is $0.21",
          "Transcript lists paginate with `limit`, `before_id` and `after_id`, and transcripts come back as sentences, paragraphs, SRT or VTT",
          "Free tier with no card, up to 185 hours pre-recorded",
          "TTL deletion from 1 hour and a delete endpoint for transcripts"
        ],
        "weaknesses": [
          "Fourteen partial incidents from 3 August to 1 November 2026, among them a 75-minute US async outage on 16 September",
          "Free accounts can't opt out of model training",
          "The HTTP rate limit returns 403 with no Retry-After",
          "Streaming bills the time the socket is open, up to a 3-hour auto-close",
          "No published disclosure policy found, and the SDKs fixed described flaws in September 2026 without an advisory"
        ],
        "agentNotes": [
          "Send `{\"type\":\"Terminate\"}` to close every stream, or billing runs to the 3-hour auto-close",
          "Use `speech_models` (plural). The singular `speech_model` now returns 400 for current model names",
          "Treat a 403 on polling as the rate limit and back off with jitter, or use webhooks",
          "Fetch `/sentences` or `/paragraphs` instead of the full transcript when you only need text",
          "Opt out in Data Controls on a paid account before sending customer audio"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 66.8
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 79,
          "payments": 40,
          "reliability": 85,
          "schema": 95,
          "security": 50,
          "transparency": 70
        },
        "provenanceScore": 84,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST https://api.assemblyai.com/v2/transcript -H \"authorization: $ASSEMBLYAI_API_KEY\" \\\n  -H \"content-type: application/json\" \\\n  -d '{\"audio_url\":\"https://assembly.ai/wildfires.mp3\",\"language_detection\":true,\"speaker_labels\":true}'",
        "claudeCode": "claude mcp add assemblyai-docs --transport http https://assemblyai.com/docs/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/speech.stt",
        "tool": "https://letme.dev/assemblyai-stt"
      },
      "sameCompany": [
        "assemblyai-voice-agent"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Universal-3.5 Pro pre-recorded",
          "unit": "audio-minute",
          "usd": 0.0035,
          "note": "published as $0.21 an hour"
        },
        {
          "item": "Universal-2 pre-recorded",
          "unit": "audio-minute",
          "usd": 0.0025,
          "note": "published as $0.15 an hour"
        },
        {
          "item": "Universal-3.6 Pro Realtime",
          "unit": "audio-minute",
          "usd": 0.0075,
          "note": "published as $0.45 an hour, billed on session time"
        },
        {
          "item": "Universal-Streaming",
          "unit": "audio-minute",
          "usd": 0.0025,
          "note": "published as $0.15 an hour, billed on session time"
        },
        {
          "item": "Sync API",
          "unit": "audio-minute",
          "usd": 0.0075,
          "note": "published as $0.45 an hour, clips up to 2 minutes"
        },
        {
          "item": "Streaming diarisation add-on",
          "unit": "audio-minute",
          "usd": 0.002,
          "note": "published as $0.12 an hour"
        }
      ],
      "provenance": {
        "legalEntity": "AssemblyAI, Inc.",
        "domain": "assemblyai.com",
        "domainRegistered": "2016-12-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.assemblyai.com/legal/terms-of-service",
        "privacy": "https://www.assemblyai.com/legal/privacy-policy",
        "statusPage": "https://status.assemblyai.com",
        "changelog": "https://www.assemblyai.com/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/assemblyai-stt.json",
      "live": {
        "slug": "assemblyai-stt",
        "probe": {
          "target": "https://api.assemblyai.com/v2",
          "method": "get",
          "lastAt": "2026-11-04T21:39:13.751606025Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 443,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 462,
          "p95ms24h": 558,
          "samples24h": 247,
          "samples30d": 8090,
          "days": [
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 223,
              "ok": 223
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.assemblyai.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T21:37:45.608340188Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "AssemblyAI/assemblyai-python-sdk",
            "version": "1.8.2",
            "released": "2026-10-23",
            "seenAt": "2026-11-04T19:59:10.863819564Z"
          },
          {
            "registry": "npm",
            "name": "assemblyai",
            "version": "4.42.0",
            "seenAt": "2026-11-04T19:59:09.82785998Z"
          },
          {
            "registry": "pypi",
            "name": "assemblyai",
            "version": "1.8.2",
            "released": "2026-10-23",
            "seenAt": "2026-11-04T19:59:10.666005003Z"
          }
        ],
        "githubStars": 213,
        "npmWeekly": 725236,
        "pypiWeekly": 953374,
        "securityTxt": {
          "url": "https://assemblyai.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:53:16.492870909Z"
        },
        "llmsTxt": {
          "url": "https://www.assemblyai.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-04T15:22:07.326113977Z"
        },
        "domain": {
          "domain": "assemblyai.com",
          "registered": "2016-12-24",
          "source": "https://rdap.verisign.com/com/v1/domain/assemblyai.com",
          "checkedAt": "2026-11-01T14:13:09.893972788Z"
        },
        "pages": [
          {
            "url": "https://www.assemblyai.com/changelog",
            "kind": "deprecations",
            "status": 200,
            "checkedAt": "2026-11-04T08:37:15.199839176Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f7dbbe98a56a"
          },
          {
            "url": "https://www.assemblyai.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-04T08:37:23.445988097Z",
            "changedAt": "2026-10-28T04:47:29.082599637Z",
            "fingerprint": "07b4e4bca050"
          },
          {
            "url": "https://www.assemblyai.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-04T08:37:19.680137419Z",
            "changedAt": "2026-10-29T05:19:57.021868162Z",
            "fingerprint": "0d66f2361b1a"
          },
          {
            "url": "https://www.assemblyai.com/legal/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-04T08:37:21.352411059Z",
            "changedAt": "2026-10-29T05:19:59.07743229Z",
            "fingerprint": "3a1714b7db67"
          }
        ],
        "github": {
          "repo": "assemblyai/assemblyai-python-sdk",
          "checkedAt": "2026-11-02T08:31:52.341717945Z",
          "stars": 213,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-29T13:30:21Z",
          "openIssues": 1,
          "openPRs": 23,
          "issuesOpened90d": 0,
          "issuesClosed90d": 8,
          "prsMerged90d": 40,
          "ci": {
            "branch": "master",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-26T10:38:48Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 0,
            "medianDays": 167.9
          }
        },
        "updatedAt": "2026-11-04T21:39:13.751606025Z"
      }
    },
    "answer": "AssemblyAI Speech-to-Text (Universal) scores 66.8 (B) on agent readiness against Giggy Speech to Text's 54.5 (C), and leads in 6 of 7 scored categories. Giggy Speech to Text leads on security \u0026 auth.",
    "b": {
      "slug": "giggy-stt",
      "name": "Giggy Speech to Text",
      "vendor": "Giggy",
      "vendorUrl": "https://giggy.ai",
      "kind": "model",
      "category": "speech-to-text",
      "summary": "Giggy's hosted speech-to-text API transcribes 16 kHz mono WAV recordings in free Batch, prepaid Fast and Streaming modes, and live audio over a WebSocket, with Python and Node SDKs and a remote MCP server.",
      "url": "https://www.anchorterminal.com/tools/giggy-stt",
      "markdownUrl": "https://www.anchorterminal.com/tools/giggy-stt.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/giggy-stt.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/giggy-stt.json",
      "dns": "giggy-stt.grade.anchorterminal.com",
      "repo": "https://github.com/giggy-ai/giggy-js",
      "license": "Proprietary hosted service. The terms page draws its text by script and was not read. The Python and Node SDKs, the Pipecat adapter and the MCP repository are ISC (Copyright 2026 Giggy), the n8n node MIT",
      "transports": [
        "http",
        "sse",
        "websocket",
        "streamable-http"
      ],
      "remoteUrl": "https://api.giggy.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "giggy"
        },
        {
          "registry": "npm",
          "name": "@giggy-ai/sdk"
        },
        {
          "registry": "pypi",
          "name": "pipecat-giggy"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve API key prefixed `giggy_sk_`, shown once when created or rotated, rejected immediately after revocation, up to ten active per Personal space or Workspace and tied for good to the space that created it. REST sends it in `xi-api-key`; the WebSocket upgrade and the MCP server take `Authorization: Bearer`. No key scopes or expiry were found, and no query-string option is documented (https://giggy.ai/docs/api-reference).",
      "pricing": "freemium",
      "pricingNotes": "Batch transcription is free, queued, for recordings of 0.5 seconds to 25 minutes. Fast costs 4,000 credits ($0.04) and Streaming 8,000 credits ($0.08) per input audio hour on Pro, Studio or Scale credits, rounded up to one credit per request. Credits come in one-time packs from $3 and expire a year after purchase. Personal accounts get free credits topped up to 10,000 a month. Whether a card is needed was not stated on any page read (https://giggy.ai/pricing).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the pricing page, the speech API docs, the API reference, llms.txt or llms-full.txt read on 2026-11-04. Credits are bought in prepaid packs; the payment method is not named on any page read.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-04"
      },
      "docsUrl": "https://giggy.ai/docs/speech-api",
      "llmsTxt": "https://giggy.ai/llms.txt",
      "openapi": "https://api.giggy.ai/v1/openapi.json",
      "registryName": "io.github.GRQDigitalCapital/giggy-mcp",
      "capabilities": [
        "speech.stt",
        "speech.batch",
        "speech.streaming",
        "speech.languages"
      ],
      "tags": [
        "official",
        "hosted",
        "model",
        "closed-source",
        "streaming",
        "batch",
        "async-jobs",
        "free-tier",
        "python",
        "typescript",
        "openapi",
        "llms-txt",
        "mcp",
        "websocket",
        "new"
      ],
      "lastRelease": "2026-11-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.5,
        "grade": "C",
        "agentReady": false,
        "rank": 806,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 15,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 69,
          "payments": 30,
          "reliability": 50,
          "schema": 68,
          "security": 57,
          "transparency": 30
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "Fast transcription costs $0.04 an input audio hour and Batch is free up to 25 minutes, with published rate limits, Retry-After and a rule to check a generation before resubmitting. Input must be 16 kHz mono WAV, there are no timestamps or speaker labels, the status page covers text-to-speech only, and no company is named on pages we could read.",
        "bestFor": "Agents and voice pipelines that need plain transcripts of recorded or live speech at a few cents an hour, or free for clips under 25 minutes, and can convert audio to 16 kHz mono WAV first.",
        "strengths": [
          "Fast is $0.04 and Streaming $0.08 per input audio hour on Pro credits, and Batch is free for recordings of 0.5 seconds to 25 minutes",
          "Per-credential rate limits are published with numbers, 429 carries `Retry-After`, and `RateLimit-*` headers report what is left",
          "The docs say to read a generation by UUID after a timeout or 504 instead of uploading again, and the SDKs never retry paid requests",
          "llms.txt, llms-full.txt and SDK READMEs state what the API does not do, including no diarisation, timestamps or OpenAI-compatible STT",
          "Official Python and Node SDKs at 0.2.1, a Pipecat adapter with live STT and a remote MCP server, all released within the last four weeks"
        ],
        "weaknesses": [
          "Recorded input must be PCM16 mono 16 kHz WAV, so MP3, M4A, stereo or other sample rates need converting before upload",
          "No word timestamps, speaker labels, confidence scores or redaction, per the speech API docs",
          "The status page has one component, Text to speech, and no incident history, so speech-to-text availability isn't shown",
          "REST transcription has no idempotency key, and `client_request_id` is documented as not making a retried upload safe",
          "The terms, privacy policy, support and contact pages draw by script, and no company, address or security contact was found on any page read"
        ],
        "agentNotes": [
          "Pass `mode=batch` explicitly for free transcription. Raw REST and MCP default to paid Fast when `mode` is omitted.",
          "Convert audio to PCM16 mono 16 kHz WAV first and send it as the raw body with `Content-Type: audio/wav`.",
          "Keep the `generation_uuid` from the 202 and poll `GET /v1/generations/{uuid}`. Never re-upload after a timeout or 504 before reading that generation.",
          "Fetch the transcript from the signed `generation.result.url` after completion, without the API key. It can disappear after retention cleanup.",
          "On the live WebSocket, replace earlier text with each cumulative `transcription` event and publish final text only after `input_complete`."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.5
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 69,
          "payments": 30,
          "reliability": 50,
          "schema": 68,
          "security": 57,
          "transparency": 23
        },
        "provenanceScore": 36,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "python -m pip install giggy==0.2.1   # or: npm install @giggy-ai/sdk",
        "http": "curl -X POST \"https://api.giggy.ai/v1/audio/transcriptions?mode=batch\u0026language=en\" \\\n  -H \"xi-api-key: $GIGGY_API_KEY\" -H \"Content-Type: audio/wav\" \\\n  --data-binary @recording.wav",
        "config": {
          "mcpServers": {
            "giggy-speech": {
              "headers": {
                "Authorization": "Bearer ${GIGGY_API_KEY}"
              },
              "type": "http",
              "url": "https://giggy.ai/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/speech.stt",
        "tool": "https://letme.dev/giggy-stt"
      },
      "area": "voice",
      "unitPrices": [
        {
          "item": "Fast, Pro, Studio or Scale credits",
          "unit": "audio-minute",
          "usd": 0.000667,
          "note": "published as $0.04 per input audio hour, rounded up to one credit per request"
        },
        {
          "item": "Streaming, Pro, Studio or Scale credits",
          "unit": "audio-minute",
          "usd": 0.001333,
          "note": "published as $0.08 per input audio hour"
        },
        {
          "item": "Fast, Starter pack",
          "unit": "audio-minute",
          "usd": 0.000765,
          "note": "$3 for 261,300 credits, $0.0459 an hour"
        },
        {
          "item": "Streaming, Starter pack",
          "unit": "audio-minute",
          "usd": 0.00153,
          "note": "$0.0918 an hour"
        },
        {
          "item": "Batch",
          "unit": "audio-minute",
          "usd": 0,
          "note": "free, queued, 0.5 seconds to 25 minutes a recording"
        }
      ],
      "provenance": {
        "legalEntity": "",
        "domain": "giggy.ai",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://giggy.ai/terms",
        "privacy": "https://giggy.ai/privacy",
        "statusPage": "https://giggy.ai/status",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-04",
        "notes": [
          "unchecked: the legal entity. /terms, /privacy, /acceptable-use, /contact, /docs/support and /docs/privacy-rights returned only their titles and metadata, because their text is drawn by script, and /terms.md answered a client error. The about, pricing, grants and docs pages that did render name only Giggy, with 'Made in California' on the about page. The repositories' licences say 'Copyright 2026 Giggy'.",
          "The status page tracks one component, Text to speech, with 14-day availability and completion figures refreshed every 30 minutes and no incident history. It has no speech-to-text component.",
          "No service changelog was found. The SDK and Pipecat repositories carry CHANGELOG.md files, dated in the Python SDK and the Pipecat adapter.",
          "https://giggy.ai/.well-known/security.txt answered a client error. None of the six public repositories has a SECURITY.md.",
          "robots.txt on giggy.ai allows / and disallows /api/, /ops/, /app/ and /blog/*.md for `*` and for the named AI agents, with no Content-Signal line. api.giggy.ai's robots.txt could not be read (the fetch needed an approval that wasn't given), so nothing on that host was fetched, the OpenAPI file included.",
          "unchecked: RDAP for giggy.ai (refused for want of an approval on 4 November 2026)."
        ],
        "score": 36
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/giggy-stt.json",
      "live": {
        "slug": "giggy-stt",
        "probe": {
          "target": "https://api.giggy.ai/v1",
          "method": "get",
          "lastAt": "2026-11-04T21:39:24.734230033Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 398,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 286,
          "p95ms24h": 654,
          "samples24h": 64,
          "samples30d": 64,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 64,
              "ok": 64
            }
          ]
        },
        "vendorStatus": {
          "page": "https://giggy.ai/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T21:25:54.463598549Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "giggy-ai/giggy-js",
            "version": "v0.1.0",
            "released": "2026-10-07",
            "seenAt": "2026-11-04T20:18:19.850001725Z"
          },
          {
            "registry": "mcp-registry",
            "name": "io.github.GRQDigitalCapital/giggy-mcp",
            "version": "1.0.2",
            "seenAt": "2026-11-04T17:11:44.552009456Z"
          },
          {
            "registry": "npm",
            "name": "@giggy-ai/sdk",
            "version": "0.2.1",
            "seenAt": "2026-11-04T20:18:17.973963585Z"
          },
          {
            "registry": "pypi",
            "name": "giggy",
            "version": "0.2.1",
            "released": "2026-11-01",
            "seenAt": "2026-11-04T20:18:17.733675794Z"
          },
          {
            "registry": "pypi",
            "name": "pipecat-giggy",
            "version": "0.3.3",
            "released": "2026-11-01",
            "seenAt": "2026-11-04T20:18:18.946085778Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 209,
        "pypiWeekly": 32,
        "securityTxt": {
          "url": "https://giggy.ai/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:29.107165985Z"
        },
        "updatedAt": "2026-11-04T21:39:24.734230033Z"
      }
    },
    "edges": [
      {
        "by": 47,
        "category": "transparency",
        "leads": "assemblyai-stt",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service with clear terms (15). Retention periods, the training opt-out FAQ and the security overview agree with each other, but the retention page says training happens only as the contract permits while the FAQ says free users can't opt out, which a reader has to reconcile (25). Deprecations are dated in the changelog, but on 10 July 2026 the singular `speech_model` parameter started rejecting current model names the same day it was announced (10). Subprocessor list at /legal/subprocessors and US and EU endpoints (20).",
          "b": "Closed hosted service. The terms exist at /terms but draw by script and could not be read, so their clarity is unknown; the SDK, Pipecat and MCP repositories are ISC and the n8n node MIT (5 of 30). What could be read agrees with itself, no training on user data, an optional 12-hour retention flag, a seven-day window for Batch audio, and the EEA compute flag. The privacy policy, any DPA and a retention period for transcripts were not found or not readable (12 of 30). No deprecation policy or dated notices, only a statement that the legacy origin remains supported (3 of 20). No subprocessors or data locations are named; the EEA-adequate compute option implies processing outside the EEA by default without saying where (3 of 20). 5+12+3+3 = 23."
        },
        "scores": {
          "a": 77,
          "b": 30
        }
      },
      {
        "by": 35,
        "category": "reliability",
        "leads": "assemblyai-stt",
        "name": "Reliability",
        "reasons": {
          "a": "Statuspage at status.assemblyai.com with component history, read from history.atom on 1 November (20). Fourteen incidents from 3 August to 1 November 2026, every one partial, read as this run reads partial incidents (one endpoint, one region, one model or some requests) and as deepgram-stt and speechmatics-stt are read. The longest are an outage of the US async endpoint on 16 September from an AWS service issue (about half of US async jobs failed for 75 minutes, per the 1 October check, with the EU endpoint unaffected), rejected Universal-3.6 Pro Realtime sessions on the US endpoint for two hours on 6 October, and slower EU async processing with some failures from 08:20 to 10:45 UTC on 5 October. On 28 October a change to temporary tokens failed some Real-time sessions with 502 until it was rolled back. The 31 July us-east streaming fault left the window on 30 October. Minor only (20). Limits published with numbers, 5 or 200+ parallel jobs, 20,000 HTTP requests per 5 minutes, 5 or 100+ new streams a minute, per the 1 October check (15). Overload handling is partly documented. Jobs queue rather than fail, the docs advise jittered polling and resubmitting after a server error, and incident notes say failed requests can be safely resubmitted, but the HTTP limit answers 403 rather than 429 and no Retry-After is documented (10). A 99.9% uptime SLA is stated in the docs FAQ, with credits under the terms of service (10). Async, streaming and Sync APIs are GA (10). 20 + 20 + 15 + 10 + 10 + 10 = 85.",
          "b": "Hosted reading, as for deepgram-stt and cartesia-ink-stt. Giggy's own status page at https://giggy.ai/status lists one component, Text to speech, operational on 4 November 2026 with 98.61 per cent observed availability and 99.85 per cent completion over 14 days, refreshed every 30 minutes. It has no speech-to-text component and no incident log, so it shows nothing about this surface (5 of 20). No readable incident history, so the floor (5). Rate limits are published per credential, 60 Batch generation POSTs, 120 event-stream GETs, 600 reads and 120 MCP requests a minute, with eight live contexts per controller; Fast and Streaming POSTs have no per-credential limit and Batch queue capacity isn't given (15). 429 carries `Retry-After` with `RateLimit-*` headers, and the docs give a safe-retry rule for uploads, read the generation by UUID after a timeout or 504 and never upload the same recording again. REST transcription has no idempotency key, but the MCP `transcribe_audio` tool takes one (15). No SLA on the pricing page or in the docs; the terms could not be read (0). No beta or preview label on the API, the SDKs or the MCP server (10). 5+5+15+15+0+10 = 50."
        },
        "scores": {
          "a": 85,
          "b": 50
        }
      },
      {
        "by": 27,
        "category": "schema",
        "leads": "assemblyai-stt",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "OpenAPI 3.1 at /docs/openapi.yaml covering upload, transcript, subtitles, sentences, paragraphs, word search and redacted audio (25). llms.txt at /docs/llms.txt (10). Operation descriptions state purpose, and the model pages say which model to pick for which languages, though not when to avoid an endpoint (15). Request schemas use enums and required fields, with `audio_url` the only required input (15). 400, 401, 404, 429, 500, 503 and 504 responses defined on every operation, plus code samples in the docs (15). Versioned `/v2` paths and a dated public changelog (15).",
          "b": "Model reading, with the API reference. The docs and llms.txt link an OpenAPI 3.1 file at https://api.giggy.ai/v1/openapi.json, but api.giggy.ai's robots.txt could not be read, so the file wasn't fetched. We credit only what the reference pages show of it, typed `mode` values, the privacy booleans and a typed error body, and there is no AsyncAPI file for the live socket (12 of 25). llms.txt and llms-full.txt (10). The docs say when to use each mode and transport, that MCP is not a live transport, that an OpenAI base-URL swap does not work for STT, and which options have no equivalent, more than most listings say about when not to use something (17 of 20). `mode` is an enum of three values and the input format is fixed, but `language` is a free code or name with no published list, and the MCP input schemas were read only from the repository's docs, not from the server (11 of 15). Examples in the SDK READMEs, the examples repository and a Postman collection, and an error table of ten statuses with `type`, `code`, `message`, `status`, `request_id` and `param` fields, though only one code value is named (11 of 15). Paths are under `/v1` and the SDK and Pipecat repositories keep CHANGELOG.md files, dated in two of them, but there is no service changelog (7 of 15). 12+10+17+11+11+7 = 68."
        },
        "scores": {
          "a": 95,
          "b": 68
        }
      },
      {
        "by": 12,
        "category": "ergonomics",
        "leads": "assemblyai-stt",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "API reading of the checklist. Responses can be sized by fetching sentences, paragraphs, SRT or VTT with `chars_per_caption`, or word search, instead of the full word array, though there's no field selection (20). `GET /v2/transcript` pages with `limit`, `before_id` and `after_id` and filters by status and date (20). Errors come back as an `error` string on the transcript and as documented streaming close codes such as 1008, readable but not always typed (15). No idempotency key, and a resubmitted job is a new billed job. The retry guide covers server errors only (10). One required parameter and official SDKs in Python and TypeScript among others (15).",
          "b": "API reading, as for the other speech-to-text listings. The transcript is compact, text, detected languages, audio duration and model metadata, with no word array to trim; on an MCP reading five tools would score 25 (20 of 25). Nothing to page through and no output options, no timestamps, subtitles or speaker labels, and recorded input must be PCM16 mono 16 kHz WAV, so the caller converts everything else; a 12-hour recording goes up in one request (10 of 20). Errors are structured with a type, code, message, status, request ID and parameter, and the reference says what each status means and what to do after a 504, but no list of code values was found and the SDK error classes expose only the status and the raw body (13 of 20). Upload retries are left to the caller with clear rules, read the generation first and never re-upload after a timeout; REST has no idempotency key and `client_request_id` is documented as no guarantee, while MCP `transcribe_audio` takes an `idempotency_key`. The SDKs never retry, and closing an unfinished live socket cancels it (13 of 20). Only the audio is required, with official Python and Node SDKs, but raw REST and MCP default to paid Fast while the SDKs default to free Batch (12 of 15). 20+10+13+13+12 = 68."
        },
        "scores": {
          "a": 80,
          "b": 68
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "assemblyai-stt",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Per-hour prices for every model and add-on published without a login (20). Free tier of up to 185 hours pre-recorded or 333 hours streaming with no card (20). A person has to sign up in a browser to get a key (0).",
          "b": "No x402, MPP or L402 (0). Per-hour prices for Batch, Fast and Streaming and every credit pack published without a login (20). Free Batch transcription and Personal free credits topped up to 10,000 a month, but no page read says whether a card is needed, so half, as other listings read an unstated card requirement (10 of 20). A person signs up in a browser and creates the key there; no programmatic key route was found (0). 0+20+10+0 = 30."
        },
        "scores": {
          "a": 40,
          "b": 30
        }
      },
      {
        "by": 10,
        "category": "maintenance",
        "leads": "assemblyai-stt",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a model, for deprecation notice and support rather than release counts and issue replies, on the lines deepgram-stt, gladia-stt and speechmatics-stt use in this run. Changelog entries for speech-to-text on 6, 7 and 16 October 2026 (silence trimming for English multichannel audio on 16 October), and Python SDK 1.6.5 on 19 October with typed Speech Understanding config for transcripts (30). Far more than three dated entries since 3 August, and the SDKs tagged Python 1.5.2 to 1.8.2 and Node 4.40.0 to 4.42.0 in the period (10 of 10). No deprecation policy, but removals carry dates. Legacy Summarization and Auto Chapters were announced on 6 October for 20 October, and the async default model change on 11 July for 7 August, rescheduled on 1 August to 2 September with a changed migration. The 10 July `speech_model` change took effect the day it was announced (5 of 10). Public changelog and a support address (10 of 15). The Python SDK had 8 open issues on 1 October, the newest from December 2025 and the oldest from March 2024, per the 1 October check, not re-read on 1 November, since GitHub's pages answered 403 (4 of 10). Official SDKs current, Python 1.8.2 on 23 October and Node 4.42.0 on 26 October (15). Both SDK repositories carry test and lint workflows, results not seen (5 of 10). 30 + 10 + 5 + 10 + 4 + 15 + 5 = 79.",
          "b": "Read as a model, on the lines deepgram-stt and cartesia-ink-stt use (recency 30, dated releases 10, deprecation notice 10, support 15, issues 10, SDKs 15, health 10). The Python and Node SDKs released 0.2.1 and the Pipecat adapter 0.3.3 on 1 November 2026, and the examples and MCP repositories changed on 3 November (30). Since 7 October the Node SDK has four tagged releases, the Python SDK six and the Pipecat adapter six, the STT ones from 12 October (10). No deprecation policy or dated notice. The legacy `https://giggy.ai/v1` origin and older SDK transports are kept 'for existing integrations' with no end date (2 of 10). No service changelog; the support and contact pages drew by script, and GitHub issues is the support URL in the plugin manifest (5 of 15). GitHub issues and reply times could not be read, since the GitHub API was not available to this session (0 of 10). Official SDKs current, `giggy` and `@giggy-ai/sdk` at 0.2.1 on PyPI and npm (15). CI workflows in five repositories and publish workflows, the n8n node through npm OIDC with provenance, and two runtime dependencies in each SDK; run results not seen (7 of 10). 30+10+2+5+0+15+7 = 69."
        },
        "scores": {
          "a": 79,
          "b": 69
        }
      }
    ],
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "AssemblyAI",
        "b": "Giggy",
        "name": "Vendor"
      },
      {
        "a": "https://api.assemblyai.com/v2",
        "b": "https://api.giggy.ai/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP",
        "b": "HTTP, SSE (legacy), websocket, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT (SDKs)",
        "b": "Proprietary hosted service. The terms page draws its text by script and was not read. The Python and Node SDKs, the Pipecat adapter and the MCP repository are ISC (Copyright 2026 Giggy), the n8n node MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "io.github.GRQDigitalCapital/giggy-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-19",
        "b": "2026-11-01",
        "name": "Last release"
      },
      {
        "a": "2026-07-01",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-26",
        "b": "not read yet",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "not read yet",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not read yet",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "213 stars, 600k npm/wk, 738k PyPI/wk",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.5/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "AssemblyAI Speech-to-Text (Universal) scores 66.8 (B) on agent readiness against Giggy Speech to Text's 54.5 (C), and leads in 6 of 7 scored categories. Giggy Speech to Text leads on security \u0026 auth.",
        "question": "Which is better for AI agents, AssemblyAI Speech-to-Text (Universal) or Giggy Speech to Text?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do AssemblyAI Speech-to-Text (Universal) and Giggy Speech to Text need an API key?"
      },
      {
        "answer": "Yes. AssemblyAI Speech-to-Text (Universal) has a hosted endpoint at https://api.assemblyai.com/v2 and Giggy Speech to Text at https://api.giggy.ai/v1.",
        "question": "Can an agent call AssemblyAI Speech-to-Text (Universal) and Giggy Speech to Text without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 85 against 50",
          "Schema \u0026 documentation, 95 against 68",
          "Agent ergonomics, 80 against 68",
          "Payments \u0026 pricing, 40 against 30",
          "Maintenance \u0026 community, 79 against 69",
          "Transparency \u0026 trust, 77 against 30"
        ],
        "also": [
          "Free to start without a card"
        ],
        "goodFor": "Async transcription of long files with diarisation and subtitles, and for teams who want an OpenAPI contract.",
        "slug": "assemblyai-stt",
        "watchFor": "Fourteen partial incidents from 3 August to 1 November 2026, among them a 75-minute US async outage on 16 September"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 57 against 50"
        ],
        "also": [
          "No incidents deducted, where AssemblyAI Speech-to-Text (Universal) loses 6 points for them"
        ],
        "goodFor": "Agents and voice pipelines that need plain transcripts of recorded or live speech at a few cents an hour, or free for clips under 25 minutes, and can convert audio to 16 kHz mono WAV first.",
        "slug": "giggy-stt",
        "watchFor": "Recorded input must be PCM16 mono 16 kHz WAV, so MP3, M4A, stereo or other sample rates need converting before upload"
      }
    ],
    "history": {
      "assemblyai-stt": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-01",
          "delta": -0.1,
          "from": 66.9,
          "fromGrade": "B",
          "to": 66.8,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 66.8,
          "fromGrade": "B",
          "to": 66.9,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.2,
          "from": 67,
          "fromGrade": "B",
          "to": 66.8,
          "toGrade": "B"
        }
      ],
      "giggy-stt": null
    },
    "job": {
      "capability": "speech.stt",
      "name": "Speech-to-text"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-transcribe-vs-assemblyai-stt.json",
        "title": "Amazon Transcribe vs AssemblyAI Speech-to-Text (Universal)",
        "url": "https://www.anchorterminal.com/compare/amazon-transcribe-vs-assemblyai-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/amazon-transcribe-vs-giggy-stt.json",
        "title": "Amazon Transcribe vs Giggy Speech to Text",
        "url": "https://www.anchorterminal.com/compare/amazon-transcribe-vs-giggy-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-azure-speech-to-text.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Azure AI Speech speech-to-text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-azure-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-cartesia-ink-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Cartesia Ink",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-cartesia-ink-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-deepgram-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Deepgram Speech-to-Text (Nova-3, Flux)",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-deepgram-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-elevenlabs-scribe.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs ElevenLabs Scribe Speech to Text API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-elevenlabs-scribe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-gladia-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Gladia Speech-to-Text API + MCP",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-gladia-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-google-speech-to-text.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Google Cloud Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-google-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-groq-speech-to-text.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Groq Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-groq-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-mistral-voxtral-transcribe.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Mistral Voxtral Transcribe",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-mistral-voxtral-transcribe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-openai-speech-to-text.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs OpenAI Speech to Text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-openai-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-rev-ai-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Rev AI Speech-to-Text API",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-rev-ai-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-soniox-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Soniox Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-soniox-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-speechmatics-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Speechmatics Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-speechmatics-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-speech-to-text-vs-giggy-stt.json",
        "title": "Azure AI Speech speech-to-text vs Giggy Speech to Text",
        "url": "https://www.anchorterminal.com/compare/azure-speech-to-text-vs-giggy-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt.json",
        "title": "Cartesia Ink vs Giggy Speech to Text",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepgram-stt-vs-giggy-stt.json",
        "title": "Deepgram Speech-to-Text (Nova-3, Flux) vs Giggy Speech to Text",
        "url": "https://www.anchorterminal.com/compare/deepgram-stt-vs-giggy-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/elevenlabs-scribe-vs-giggy-stt.json",
        "title": "ElevenLabs Scribe Speech to Text API vs Giggy Speech to Text",
        "url": "https://www.anchorterminal.com/compare/elevenlabs-scribe-vs-giggy-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-gladia-stt.json",
        "title": "Giggy Speech to Text vs Gladia Speech-to-Text API + MCP",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-gladia-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-google-speech-to-text.json",
        "title": "Giggy Speech to Text vs Google Cloud Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-google-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-groq-speech-to-text.json",
        "title": "Giggy Speech to Text vs Groq Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-groq-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-mistral-voxtral-transcribe.json",
        "title": "Giggy Speech to Text vs Mistral Voxtral Transcribe",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-mistral-voxtral-transcribe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-openai-speech-to-text.json",
        "title": "Giggy Speech to Text vs OpenAI Speech to Text",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-openai-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-rev-ai-stt.json",
        "title": "Giggy Speech to Text vs Rev AI Speech-to-Text API",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-rev-ai-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-soniox-stt.json",
        "title": "Giggy Speech to Text vs Soniox Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-soniox-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/giggy-stt-vs-speechmatics-stt.json",
        "title": "Giggy Speech to Text vs Speechmatics Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/giggy-stt-vs-speechmatics-stt"
      }
    ],
    "panel": null,
    "scores": [
      {
        "assemblyai-stt": 85,
        "by": 35,
        "edge": "assemblyai-stt",
        "giggy-stt": 50,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "assemblyai-stt": 95,
        "by": 27,
        "edge": "assemblyai-stt",
        "giggy-stt": 68,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "assemblyai-stt": 80,
        "by": 12,
        "edge": "assemblyai-stt",
        "giggy-stt": 68,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "assemblyai-stt": 50,
        "by": 7,
        "edge": "giggy-stt",
        "giggy-stt": 57,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "assemblyai-stt": 40,
        "by": 10,
        "edge": "assemblyai-stt",
        "giggy-stt": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "assemblyai-stt": 79,
        "by": 10,
        "edge": "assemblyai-stt",
        "giggy-stt": 69,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "assemblyai-stt": 77,
        "by": 47,
        "edge": "assemblyai-stt",
        "giggy-stt": 30,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "AssemblyAI Speech-to-Text (Universal) scores 66.8 (B) on agent readiness against Giggy Speech to Text's 54.5 (C), and leads in 6 of 7 scored categories. Giggy Speech to Text leads on security \u0026 auth. Both do speech-to-text.",
    "tasks": [
      {
        "a": "$0.15 to $0.45",
        "b": "$0.04 to $0.09",
        "cheaper": "giggy-stt",
        "task": "Transcribe a one-hour meeting",
        "what": "60 minutes of recorded audio"
      }
    ],
    "tutorials": [],
    "verdicts": {
      "assemblyai-stt": "OpenAPI 3.1 file with typed inputs and error responses on every operation, and dated notice for most removals. Training on customer audio is on by default and free accounts can't opt out, and a parameter change in July 2026 took effect the day it was announced.",
      "giggy-stt": "Fast transcription costs $0.04 an input audio hour and Batch is free up to 25 minutes, with published rate limits, Retry-After and a rule to check a generation before resubmitting. Input must be 16 kHz mono WAV, there are no timestamps or speaker labels, the status page covers text-to-speech only, and no company is named on pages we could read."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt",
    "json": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt.min.md"
  },
  "markdown": "AssemblyAI Speech-to-Text (Universal) scores 66.8 (B) on agent readiness against Giggy Speech to Text's 54.5 (C), and leads in 6 of 7 scored categories. Giggy Speech to Text leads on security \u0026 auth. Both do speech-to-text.\n\n- AssemblyAI Speech-to-Text (Universal): grade B, 66.8/100, rank #321 of 1349. Markdown https://www.anchorterminal.com/tools/assemblyai-stt.md · JSON https://www.anchorterminal.com/api/v1/tools/assemblyai-stt.json\n- Giggy Speech to Text: grade C, 54.5/100, rank #806 of 1349. Markdown https://www.anchorterminal.com/tools/giggy-stt.md · JSON https://www.anchorterminal.com/api/v1/tools/giggy-stt.json\n- Best speech-to-text APIs for AI agents: https://www.anchorterminal.com/best/speech-to-text/index.md\n- All 253 stt comparisons: https://www.anchorterminal.com/compare/speech-to-text/index.md\n\n## Which one, for what\n\n### AssemblyAI Speech-to-Text (Universal) (B)\n\nGood for: Async transcription of long files with diarisation and subtitles, and for teams who want an OpenAPI contract.\n\nAhead on:\n- Reliability, 85 against 50\n- Schema \u0026 documentation, 95 against 68\n- Agent ergonomics, 80 against 68\n- Payments \u0026 pricing, 40 against 30\n- Maintenance \u0026 community, 79 against 69\n- Transparency \u0026 trust, 77 against 30\n\nAlso in its favour:\n- Free to start without a card\n\nWatch for: Fourteen partial incidents from 3 August to 1 November 2026, among them a 75-minute US async outage on 16 September\n\n### Giggy Speech to Text (C)\n\nGood for: Agents and voice pipelines that need plain transcripts of recorded or live speech at a few cents an hour, or free for clips under 25 minutes, and can convert audio to 16 kHz mono WAV first.\n\nAhead on:\n- Security \u0026 auth, 57 against 50\n\nAlso in its favour:\n- No incidents deducted, where AssemblyAI Speech-to-Text (Universal) loses 6 points for them\n\nWatch for: Recorded input must be PCM16 mono 16 kHz WAV, so MP3, M4A, stereo or other sample rates need converting before upload\n\n\n## Why the edge\n\n### Transparency \u0026 trust: AssemblyAI Speech-to-Text (Universal) +47\n\n- AssemblyAI Speech-to-Text (Universal) (77): Closed service with clear terms (15). Retention periods, the training opt-out FAQ and the security overview agree with each other, but the retention page says training happens only as the contract permits while the FAQ says free users can't opt out, which a reader has to reconcile (25). Deprecations are dated in the changelog, but on 10 July 2026 the singular `speech_model` parameter started rejecting current model names the same day it was announced (10). Subprocessor list at /legal/subprocessors and US and EU endpoints (20).\n- Giggy Speech to Text (30): Closed hosted service. The terms exist at /terms but draw by script and could not be read, so their clarity is unknown; the SDK, Pipecat and MCP repositories are ISC and the n8n node MIT (5 of 30). What could be read agrees with itself, no training on user data, an optional 12-hour retention flag, a seven-day window for Batch audio, and the EEA compute flag. The privacy policy, any DPA and a retention period for transcripts were not found or not readable (12 of 30). No deprecation policy or dated notices, only a statement that the legacy origin remains supported (3 of 20). No subprocessors or data locations are named; the EEA-adequate compute option implies processing outside the EEA by default without saying where (3 of 20). 5+12+3+3 = 23.\n\n### Reliability: AssemblyAI Speech-to-Text (Universal) +35\n\n- AssemblyAI Speech-to-Text (Universal) (85): Statuspage at status.assemblyai.com with component history, read from history.atom on 1 November (20). Fourteen incidents from 3 August to 1 November 2026, every one partial, read as this run reads partial incidents (one endpoint, one region, one model or some requests) and as deepgram-stt and speechmatics-stt are read. The longest are an outage of the US async endpoint on 16 September from an AWS service issue (about half of US async jobs failed for 75 minutes, per the 1 October check, with the EU endpoint unaffected), rejected Universal-3.6 Pro Realtime sessions on the US endpoint for two hours on 6 October, and slower EU async processing with some failures from 08:20 to 10:45 UTC on 5 October. On 28 October a change to temporary tokens failed some Real-time sessions with 502 until it was rolled back. The 31 July us-east streaming fault left the window on 30 October. Minor only (20). Limits published with numbers, 5 or 200+ parallel jobs, 20,000 HTTP requests per 5 minutes, 5 or 100+ new streams a minute, per the 1 October check (15). Overload handling is partly documented. Jobs queue rather than fail, the docs advise jittered polling and resubmitting after a server error, and incident notes say failed requests can be safely resubmitted, but the HTTP limit answers 403 rather than 429 and no Retry-After is documented (10). A 99.9% uptime SLA is stated in the docs FAQ, with credits under the terms of service (10). Async, streaming and Sync APIs are GA (10). 20 + 20 + 15 + 10 + 10 + 10 = 85.\n- Giggy Speech to Text (50): Hosted reading, as for deepgram-stt and cartesia-ink-stt. Giggy's own status page at https://giggy.ai/status lists one component, Text to speech, operational on 4 November 2026 with 98.61 per cent observed availability and 99.85 per cent completion over 14 days, refreshed every 30 minutes. It has no speech-to-text component and no incident log, so it shows nothing about this surface (5 of 20). No readable incident history, so the floor (5). Rate limits are published per credential, 60 Batch generation POSTs, 120 event-stream GETs, 600 reads and 120 MCP requests a minute, with eight live contexts per controller; Fast and Streaming POSTs have no per-credential limit and Batch queue capacity isn't given (15). 429 carries `Retry-After` with `RateLimit-*` headers, and the docs give a safe-retry rule for uploads, read the generation by UUID after a timeout or 504 and never upload the same recording again. REST transcription has no idempotency key, but the MCP `transcribe_audio` tool takes one (15). No SLA on the pricing page or in the docs; the terms could not be read (0). No beta or preview label on the API, the SDKs or the MCP server (10). 5+5+15+15+0+10 = 50.\n\n### Schema \u0026 documentation: AssemblyAI Speech-to-Text (Universal) +27\n\n- AssemblyAI Speech-to-Text (Universal) (95): OpenAPI 3.1 at /docs/openapi.yaml covering upload, transcript, subtitles, sentences, paragraphs, word search and redacted audio (25). llms.txt at /docs/llms.txt (10). Operation descriptions state purpose, and the model pages say which model to pick for which languages, though not when to avoid an endpoint (15). Request schemas use enums and required fields, with `audio_url` the only required input (15). 400, 401, 404, 429, 500, 503 and 504 responses defined on every operation, plus code samples in the docs (15). Versioned `/v2` paths and a dated public changelog (15).\n- Giggy Speech to Text (68): Model reading, with the API reference. The docs and llms.txt link an OpenAPI 3.1 file at https://api.giggy.ai/v1/openapi.json, but api.giggy.ai's robots.txt could not be read, so the file wasn't fetched. We credit only what the reference pages show of it, typed `mode` values, the privacy booleans and a typed error body, and there is no AsyncAPI file for the live socket (12 of 25). llms.txt and llms-full.txt (10). The docs say when to use each mode and transport, that MCP is not a live transport, that an OpenAI base-URL swap does not work for STT, and which options have no equivalent, more than most listings say about when not to use something (17 of 20). `mode` is an enum of three values and the input format is fixed, but `language` is a free code or name with no published list, and the MCP input schemas were read only from the repository's docs, not from the server (11 of 15). Examples in the SDK READMEs, the examples repository and a Postman collection, and an error table of ten statuses with `type`, `code`, `message`, `status`, `request_id` and `param` fields, though only one code value is named (11 of 15). Paths are under `/v1` and the SDK and Pipecat repositories keep CHANGELOG.md files, dated in two of them, but there is no service changelog (7 of 15). 12+10+17+11+11+7 = 68.\n\n### Agent ergonomics: AssemblyAI Speech-to-Text (Universal) +12\n\n- AssemblyAI Speech-to-Text (Universal) (80): API reading of the checklist. Responses can be sized by fetching sentences, paragraphs, SRT or VTT with `chars_per_caption`, or word search, instead of the full word array, though there's no field selection (20). `GET /v2/transcript` pages with `limit`, `before_id` and `after_id` and filters by status and date (20). Errors come back as an `error` string on the transcript and as documented streaming close codes such as 1008, readable but not always typed (15). No idempotency key, and a resubmitted job is a new billed job. The retry guide covers server errors only (10). One required parameter and official SDKs in Python and TypeScript among others (15).\n- Giggy Speech to Text (68): API reading, as for the other speech-to-text listings. The transcript is compact, text, detected languages, audio duration and model metadata, with no word array to trim; on an MCP reading five tools would score 25 (20 of 25). Nothing to page through and no output options, no timestamps, subtitles or speaker labels, and recorded input must be PCM16 mono 16 kHz WAV, so the caller converts everything else; a 12-hour recording goes up in one request (10 of 20). Errors are structured with a type, code, message, status, request ID and parameter, and the reference says what each status means and what to do after a 504, but no list of code values was found and the SDK error classes expose only the status and the raw body (13 of 20). Upload retries are left to the caller with clear rules, read the generation first and never re-upload after a timeout; REST has no idempotency key and `client_request_id` is documented as no guarantee, while MCP `transcribe_audio` takes an `idempotency_key`. The SDKs never retry, and closing an unfinished live socket cancels it (13 of 20). Only the audio is required, with official Python and Node SDKs, but raw REST and MCP default to paid Fast while the SDKs default to free Batch (12 of 15). 20+10+13+13+12 = 68.\n\n### Payments \u0026 pricing: AssemblyAI Speech-to-Text (Universal) +10\n\n- AssemblyAI Speech-to-Text (Universal) (40): No x402, MPP or L402 (0). Per-hour prices for every model and add-on published without a login (20). Free tier of up to 185 hours pre-recorded or 333 hours streaming with no card (20). A person has to sign up in a browser to get a key (0).\n- Giggy Speech to Text (30): No x402, MPP or L402 (0). Per-hour prices for Batch, Fast and Streaming and every credit pack published without a login (20). Free Batch transcription and Personal free credits topped up to 10,000 a month, but no page read says whether a card is needed, so half, as other listings read an unstated card requirement (10 of 20). A person signs up in a browser and creates the key there; no programmatic key route was found (0). 0+20+10+0 = 30.\n\n### Maintenance \u0026 community: AssemblyAI Speech-to-Text (Universal) +10\n\n- AssemblyAI Speech-to-Text (Universal) (79): Read as a model, for deprecation notice and support rather than release counts and issue replies, on the lines deepgram-stt, gladia-stt and speechmatics-stt use in this run. Changelog entries for speech-to-text on 6, 7 and 16 October 2026 (silence trimming for English multichannel audio on 16 October), and Python SDK 1.6.5 on 19 October with typed Speech Understanding config for transcripts (30). Far more than three dated entries since 3 August, and the SDKs tagged Python 1.5.2 to 1.8.2 and Node 4.40.0 to 4.42.0 in the period (10 of 10). No deprecation policy, but removals carry dates. Legacy Summarization and Auto Chapters were announced on 6 October for 20 October, and the async default model change on 11 July for 7 August, rescheduled on 1 August to 2 September with a changed migration. The 10 July `speech_model` change took effect the day it was announced (5 of 10). Public changelog and a support address (10 of 15). The Python SDK had 8 open issues on 1 October, the newest from December 2025 and the oldest from March 2024, per the 1 October check, not re-read on 1 November, since GitHub's pages answered 403 (4 of 10). Official SDKs current, Python 1.8.2 on 23 October and Node 4.42.0 on 26 October (15). Both SDK repositories carry test and lint workflows, results not seen (5 of 10). 30 + 10 + 5 + 10 + 4 + 15 + 5 = 79.\n- Giggy Speech to Text (69): Read as a model, on the lines deepgram-stt and cartesia-ink-stt use (recency 30, dated releases 10, deprecation notice 10, support 15, issues 10, SDKs 15, health 10). The Python and Node SDKs released 0.2.1 and the Pipecat adapter 0.3.3 on 1 November 2026, and the examples and MCP repositories changed on 3 November (30). Since 7 October the Node SDK has four tagged releases, the Python SDK six and the Pipecat adapter six, the STT ones from 12 October (10). No deprecation policy or dated notice. The legacy `https://giggy.ai/v1` origin and older SDK transports are kept 'for existing integrations' with no end date (2 of 10). No service changelog; the support and contact pages drew by script, and GitHub issues is the support URL in the plugin manifest (5 of 15). GitHub issues and reply times could not be read, since the GitHub API was not available to this session (0 of 10). Official SDKs current, `giggy` and `@giggy-ai/sdk` at 0.2.1 on PyPI and npm (15). CI workflows in five repositories and publish workflows, the n8n node through npm OIDC with provenance, and two runtime dependencies in each SDK; run results not seen (7 of 10). 30+10+2+5+0+15+7 = 69.\n\n## Score by category\n\n| Category | Weight | AssemblyAI Speech-to-Text (Universal) | Giggy Speech to Text | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 85 | 50 | AssemblyAI Speech-to-Text (Universal) +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 95 | 68 | AssemblyAI Speech-to-Text (Universal) +27 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 68 | AssemblyAI Speech-to-Text (Universal) +12 |\n| Security \u0026 auth | 14% (17.5 this run) | 50 | 57 | Giggy Speech to Text +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | AssemblyAI Speech-to-Text (Universal) +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 79 | 69 | AssemblyAI Speech-to-Text (Universal) +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 30 | AssemblyAI Speech-to-Text (Universal) +47 |\n| Negative events | ≤15 | -6 | 0 | |\n| **Total** | | **66.8 · B** | **54.5 · C** | |\n\n## Facts side by side\n\n| Fact | AssemblyAI Speech-to-Text (Universal) | Giggy Speech to Text |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | AssemblyAI | Giggy |\n| Hosted endpoint | `https://api.assemblyai.com/v2` | `https://api.giggy.ai/v1` |\n| Transports | HTTP, Streamable HTTP | HTTP, SSE (legacy), websocket, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | MIT (SDKs) | Proprietary hosted service. The terms page draws its text by script and was not read. The Python and Node SDKs, the Pipecat adapter and the MCP repository are ISC (Copyright 2026 Giggy), the n8n node MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `io.github.GRQDigitalCapital/giggy-mcp` |\n| Last release | 2026-10-19 | 2026-11-01 |\n| Terms last updated | 2026-07-01 | not read yet |\n| Privacy policy last updated | 2026-05-26 | not read yet |\n| Customer content may train models | yes, with an opt-out | not read yet |\n| Terms restrict automated access | yes | not read yet |\n| Terms restrict benchmarking | yes | not read yet |\n| Terms or service can change without notice | not found in the text | not read yet |\n| Arbitration or class-action waiver | not found in the text | not read yet |\n| Popularity | 213 stars, 600k npm/wk, 738k PyPI/wk | none |\n| Agent reviews | 3.5/5 (2) | none |\n\n## What the same task costs\n\n| Task | AssemblyAI Speech-to-Text (Universal) | Giggy Speech to Text |\n| --- | --- | --- |\n| Transcribe a one-hour meeting | $0.15 to $0.45 | $0.04 to $0.09 |\n\n## How the scores have moved\n\n### AssemblyAI Speech-to-Text (Universal)\n\n- -0.1 on 1 November 2026: correction\n- +0.1 on 27 October 2026: checklist\n- -0.2 on 8 October 2026: checklist\n\n### Giggy Speech to Text\n\nNo score change since it was listed.\n\n## Verdicts\n\n**AssemblyAI Speech-to-Text (Universal).** OpenAPI 3.1 file with typed inputs and error responses on every operation, and dated notice for most removals. Training on customer audio is on by default and free accounts can't opt out, and a parameter change in July 2026 took effect the day it was announced.\n\n**Giggy Speech to Text.** Fast transcription costs $0.04 an input audio hour and Batch is free up to 25 minutes, with published rate limits, Retry-After and a rule to check a generation before resubmitting. Input must be 16 kHz mono WAV, there are no timestamps or speaker labels, the status page covers text-to-speech only, and no company is named on pages we could read.\n\n## Before you call either\n\n### AssemblyAI Speech-to-Text (Universal)\n\n1. Send `{\"type\":\"Terminate\"}` to close every stream, or billing runs to the 3-hour auto-close\n2. Use `speech_models` (plural). The singular `speech_model` now returns 400 for current model names\n3. Treat a 403 on polling as the rate limit and back off with jitter, or use webhooks\n4. Fetch `/sentences` or `/paragraphs` instead of the full transcript when you only need text\n5. Opt out in Data Controls on a paid account before sending customer audio\n\n### Giggy Speech to Text\n\n1. Pass `mode=batch` explicitly for free transcription. Raw REST and MCP default to paid Fast when `mode` is omitted.\n2. Convert audio to PCM16 mono 16 kHz WAV first and send it as the raw body with `Content-Type: audio/wav`.\n3. Keep the `generation_uuid` from the 202 and poll `GET /v1/generations/{uuid}`. Never re-upload after a timeout or 504 before reading that generation.\n4. Fetch the transcript from the signed `generation.result.url` after completion, without the API key. It can disappear after retention cleanup.\n5. On the live WebSocket, replace earlier text with each cumulative `transcription` event and publish final text only after `input_complete`.\n\n## Questions\n\n### Which is better for AI agents, AssemblyAI Speech-to-Text (Universal) or Giggy Speech to Text?\n\nAssemblyAI Speech-to-Text (Universal) scores 66.8 (B) on agent readiness against Giggy Speech to Text's 54.5 (C), and leads in 6 of 7 scored categories. Giggy Speech to Text leads on security \u0026 auth.\n\n### Do AssemblyAI Speech-to-Text (Universal) and Giggy Speech to Text need an API key?\n\nBoth need an API key.\n\n### Can an agent call AssemblyAI Speech-to-Text (Universal) and Giggy Speech to Text without installing anything?\n\nYes. AssemblyAI Speech-to-Text (Universal) has a hosted endpoint at https://api.assemblyai.com/v2 and Giggy Speech to Text at https://api.giggy.ai/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt.json, and with the fewest tokens: https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"assemblyai-stt\", \"b\": \"giggy-stt\"}`. From a terminal: `anchor compare assemblyai-stt giggy-stt`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/assemblyai-stt.json and https://www.anchorterminal.com/api/v1/tools/giggy-stt.json\n\n## Other comparisons with AssemblyAI Speech-to-Text (Universal) or Giggy Speech to Text\n\n- [Amazon Transcribe vs AssemblyAI Speech-to-Text (Universal)](https://www.anchorterminal.com/compare/amazon-transcribe-vs-assemblyai-stt.md)\n- [Amazon Transcribe vs Giggy Speech to Text](https://www.anchorterminal.com/compare/amazon-transcribe-vs-giggy-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Azure AI Speech speech-to-text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-azure-speech-to-text.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Cartesia Ink](https://www.anchorterminal.com/compare/assemblyai-stt-vs-cartesia-ink-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Deepgram Speech-to-Text (Nova-3, Flux)](https://www.anchorterminal.com/compare/assemblyai-stt-vs-deepgram-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs ElevenLabs Scribe Speech to Text API](https://www.anchorterminal.com/compare/assemblyai-stt-vs-elevenlabs-scribe.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Gladia Speech-to-Text API + MCP](https://www.anchorterminal.com/compare/assemblyai-stt-vs-gladia-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Google Cloud Speech-to-Text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-google-speech-to-text.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Groq Speech-to-Text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-groq-speech-to-text.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Mistral Voxtral Transcribe](https://www.anchorterminal.com/compare/assemblyai-stt-vs-mistral-voxtral-transcribe.md)\n- [AssemblyAI Speech-to-Text (Universal) vs OpenAI Speech to Text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-openai-speech-to-text.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Rev AI Speech-to-Text API](https://www.anchorterminal.com/compare/assemblyai-stt-vs-rev-ai-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Soniox Speech-to-Text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-soniox-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Speechmatics Speech-to-Text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-speechmatics-stt.md)\n- [Azure AI Speech speech-to-text vs Giggy Speech to Text](https://www.anchorterminal.com/compare/azure-speech-to-text-vs-giggy-stt.md)\n- [Cartesia Ink vs Giggy Speech to Text](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt.md)\n- [Deepgram Speech-to-Text (Nova-3, Flux) vs Giggy Speech to Text](https://www.anchorterminal.com/compare/deepgram-stt-vs-giggy-stt.md)\n- [ElevenLabs Scribe Speech to Text API vs Giggy Speech to Text](https://www.anchorterminal.com/compare/elevenlabs-scribe-vs-giggy-stt.md)\n- [Giggy Speech to Text vs Gladia Speech-to-Text API + MCP](https://www.anchorterminal.com/compare/giggy-stt-vs-gladia-stt.md)\n- [Giggy Speech to Text vs Google Cloud Speech-to-Text](https://www.anchorterminal.com/compare/giggy-stt-vs-google-speech-to-text.md)\n- [Giggy Speech to Text vs Groq Speech-to-Text](https://www.anchorterminal.com/compare/giggy-stt-vs-groq-speech-to-text.md)\n- [Giggy Speech to Text vs Mistral Voxtral Transcribe](https://www.anchorterminal.com/compare/giggy-stt-vs-mistral-voxtral-transcribe.md)\n- [Giggy Speech to Text vs OpenAI Speech to Text](https://www.anchorterminal.com/compare/giggy-stt-vs-openai-speech-to-text.md)\n- [Giggy Speech to Text vs Rev AI Speech-to-Text API](https://www.anchorterminal.com/compare/giggy-stt-vs-rev-ai-stt.md)\n- [Giggy Speech to Text vs Soniox Speech-to-Text](https://www.anchorterminal.com/compare/giggy-stt-vs-soniox-stt.md)\n- [Giggy Speech to Text vs Speechmatics Speech-to-Text](https://www.anchorterminal.com/compare/giggy-stt-vs-speechmatics-stt.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-04",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "AssemblyAI Speech-to-Text (Universal) vs Giggy Speech to Text",
        "url": ""
      }
    ],
    "description": "AssemblyAI Speech-to-Text scores 66.8 (B) to Giggy Speech to Text's 54.5 (C) for speech-to-text. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "AssemblyAI Speech-to-Text (Universal) B 66.8",
      "Giggy Speech to Text C 54.5",
      "scores"
    ],
    "h1": "AssemblyAI Speech-to-Text (Universal) vs Giggy Speech to Text",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/assemblyai-stt-vs-giggy-stt",
    "published": "2026-10-01",
    "section": "tools",
    "title": "AssemblyAI Speech-to-Text vs Giggy Speech to Text for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt"
  },
  "tokens": {
    "markdown": 6050,
    "slim": 3830
  },
  "version": 1
}
