{
  "data": {
    "a": {
      "slug": "cartesia-ink-stt",
      "name": "Cartesia Ink",
      "vendor": "Cartesia",
      "vendorUrl": "https://www.cartesia.ai",
      "kind": "model",
      "category": "speech-to-text",
      "summary": "Cartesia's hosted speech-to-text API. Ink 2 transcribes live audio in five languages over a WebSocket with built-in turn detection, and the older Ink Whisper model transcribes uploaded files in about 100 languages.",
      "url": "https://www.anchorterminal.com/tools/cartesia-ink-stt",
      "markdownUrl": "https://www.anchorterminal.com/tools/cartesia-ink-stt.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cartesia-ink-stt.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cartesia-ink-stt.json",
      "dns": "cartesia-ink-stt.grade.anchorterminal.com",
      "repo": "https://github.com/cartesia-ai/cartesia-python",
      "license": "Proprietary hosted service under the Cartesia Terms of Service. The Python and JavaScript SDKs are Apache-2.0",
      "transports": [
        "http",
        "websocket",
        "streamable-http"
      ],
      "remoteUrl": "https://api.cartesia.ai",
      "packages": [
        {
          "registry": "pypi",
          "name": "cartesia"
        },
        {
          "registry": "npm",
          "name": "@cartesia/cartesia-js"
        },
        {
          "registry": "pypi",
          "name": "cartesia-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve API key (`sk_car_...`) from the Playground at play.cartesia.ai/keys, sent as `Authorization: Bearer` or `X-API-Key`. Browser clients use an access token with an `stt` grant, valid for at most one hour, passed as the `access_token` query parameter on WebSockets. Usage and key-metadata endpoints need a separate admin key (https://docs.cartesia.ai/use-the-api/api-conventions).",
      "pricing": "freemium",
      "pricingNotes": "Billed in credits. `ink-2` costs 3 credits a second of audio on both realtime endpoints, silence included. `ink-whisper` costs 1 credit a second in realtime and 1 credit per 2 seconds in batch (https://docs.cartesia.ai/pricing). Plans are Free ($0, 20,000 credits a month), Pro ($5, 100,000), Startup ($49, 1.25 million) and Scale ($299, 8 million), so an agent's owner can start without a contract. Commercial use starts at Pro (https://www.cartesia.ai/pricing).",
      "priceSummary": "Freemium",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the pricing pages or the STT reference (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 134,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://docs.cartesia.ai/use-the-api/stt/compare-endpoints",
      "llmsTxt": "https://docs.cartesia.ai/llms.txt",
      "openapi": "https://docs.cartesia.ai/latest.yml",
      "capabilities": [
        "speech.stt",
        "speech.streaming",
        "speech.batch",
        "speech.languages"
      ],
      "tags": [
        "official",
        "hosted",
        "model",
        "closed-source",
        "streaming",
        "batch",
        "free-tier",
        "python",
        "typescript",
        "openapi",
        "llms-txt",
        "mcp",
        "status-page",
        "security-txt",
        "soc2",
        "enterprise"
      ],
      "lastRelease": "2026-09-17",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67,
        "grade": "B",
        "agentReady": false,
        "rank": 309,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 84,
          "payments": 35,
          "reliability": 73,
          "schema": 89,
          "security": 47,
          "transparency": 68
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": 0,
        "verdict": "Ink 2 streams transcripts with turn detection built into the model, documented by an AsyncAPI file with typed ranges and structured errors. The terms, last revised 14 June 2024, let Cartesia train on inputs and outputs unless the customer opts out, and zero data retention is an Enterprise setting. Ink 2 has no batch endpoint and no diarisation.",
        "bestFor": "Suited to voice agents that need turn detection and transcription from one model in English, French, Hindi, Japanese or Spanish, and to teams already using Cartesia text-to-speech.",
        "strengths": [
          "`/stt/turns/websocket` emits `turn.start`, `turn.update`, `turn.eager_end`, `turn.resume` and `turn.end`, so no separate voice activity detector is needed",
          "OpenAPI and AsyncAPI files, llms.txt and Markdown twins of every docs page, with enums and numeric ranges on the WebSocket parameters",
          "Structured errors on `Cartesia-Version` 2026-03-01 and later, with `error_code`, `title`, `message`, `request_id` and an optional `doc_url`",
          "Short-lived access tokens (at most one hour) carry an `stt` grant, and admin keys are a separate key type from standard keys",
          "The status page lists Speech to Text in four regions, at 99.97% (US), 99.994% (EU and APAC) and 100% (AU) for July to October 2026"
        ],
        "weaknesses": [
          "The terms let Cartesia train models on inputs and outputs unless otherwise agreed. Opting out is a form in the Playground's data controls",
          "Zero data retention is an Enterprise plan setting, and no retention period for other plans was found in the terms, privacy policy or docs",
          "`ink-2` supports English, French, Hindi, Japanese and Spanish only and has no batch endpoint. `POST /stt` accepts `ink-whisper` only",
          "No diarisation or speaker labels in the reviewed documentation, and realtime input is raw mono PCM with `encoding` and `sample_rate` required",
          "The terms of 14 June 2024 forbid automation software (bots) and any robot or scraper that accesses the Services to collect data, which matters before any probe is run",
          "No SLA was found, and a 429 for exceeding the concurrency limit is documented without a `Retry-After` header or backoff guidance"
        ],
        "agentNotes": [
          "Use `wss://api.cartesia.ai/stt/turns/websocket` with `model=ink-2`, `encoding`, `sample_rate` and `cartesia_version=2026-08-14`. All four are required.",
          "Send raw mono audio in chunks of about 100 ms at the speed it was spoken. Pushing a whole file into the socket can return an internal server error.",
          "Read the final text from `turn.end` only. `transcript` is cumulative within a turn, so joining `turn.update` events duplicates text.",
          "Send `{\"type\": \"close\"}` after the last audio and keep reading until the server closes the socket, or the buffered tail is lost.",
          "Check `encoding` and `sample_rate` against the source before sending. The docs say the server might not return an error when they are wrong."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3.3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 84,
          "payments": 35,
          "reliability": 73,
          "schema": 89,
          "security": 47,
          "transparency": 49
        },
        "provenanceScore": 86,
        "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": {
        "install": "pip install 'cartesia[websockets]'   # or: npm install @cartesia/cartesia-js",
        "claudeCode": "claude mcp add --transport http --scope user cartesia https://mcp.cartesia.ai/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/speech.stt",
        "tool": "https://letme.dev/cartesia-ink-stt"
      },
      "sameCompany": [
        "cartesia-tts",
        "cartesia-voice-cloning"
      ],
      "area": "voice",
      "unitPrices": [
        {
          "item": "Ink 2 realtime, Scale plan",
          "unit": "audio-minute",
          "usd": 0.0067,
          "note": "180 credits a minute at $299 for 8M credits. Cartesia quotes $0.39 an hour"
        },
        {
          "item": "Ink 2 realtime, Startup plan",
          "unit": "audio-minute",
          "usd": 0.0071,
          "note": "180 credits a minute at $49 for 1.25M credits"
        },
        {
          "item": "Ink 2 realtime, Pro plan",
          "unit": "audio-minute",
          "usd": 0.009,
          "note": "180 credits a minute at $5 for 100,000 credits"
        },
        {
          "item": "Ink Whisper realtime, Scale plan",
          "unit": "audio-minute",
          "usd": 0.0022,
          "note": "60 credits a minute at $299 for 8M credits"
        },
        {
          "item": "Ink Whisper batch, Scale plan",
          "unit": "audio-minute",
          "usd": 0.0011,
          "note": "30 credits a minute at $299 for 8M credits"
        }
      ],
      "provenance": {
        "legalEntity": "Cartesia AI, Inc.",
        "domain": "cartesia.ai",
        "domainRegistered": "2023-05-10",
        "endpointOnVendorDomain": true,
        "terms": "https://www.cartesia.ai/legal/terms",
        "privacy": "https://www.cartesia.ai/legal/privacy",
        "statusPage": "https://status.cartesia.ai",
        "changelog": "https://docs.cartesia.ai/changelog/2026",
        "securityTxt": "valid",
        "checked": "2026-10-09",
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cartesia-ink-stt.json",
      "live": {
        "slug": "cartesia-ink-stt",
        "probe": {
          "target": "https://api.cartesia.ai",
          "method": "get",
          "lastAt": "2026-11-04T20:46:37.879182079Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 62,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 77,
          "p95ms24h": 175,
          "samples24h": 246,
          "samples30d": 6560,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 85,
              "ok": 85
            },
            {
              "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": 214,
              "ok": 214
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.cartesia.ai",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-04T20:38:44.543989134Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "cartesia-ai/cartesia-python",
            "version": "v4.2.0",
            "released": "2026-09-02",
            "seenAt": "2026-11-04T20:04:54.450493997Z"
          },
          {
            "registry": "npm",
            "name": "@cartesia/cartesia-js",
            "version": "4.2.0",
            "seenAt": "2026-11-04T20:04:53.488678394Z"
          },
          {
            "registry": "pypi",
            "name": "cartesia",
            "version": "4.2.0",
            "released": "2026-09-02",
            "seenAt": "2026-11-04T20:04:52.310620472Z"
          },
          {
            "registry": "pypi",
            "name": "cartesia-mcp",
            "version": "0.28.1",
            "released": "2026-10-30",
            "seenAt": "2026-11-04T20:04:54.368521656Z"
          }
        ],
        "githubStars": 138,
        "npmWeekly": 105397,
        "pypiWeekly": 252693,
        "securityTxt": {
          "url": "https://cartesia.ai/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-10-03T00:00:00.000Z",
          "checkedAt": "2026-11-04T15:54:12.520737332Z"
        },
        "llmsTxt": {
          "url": "https://docs.cartesia.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-04T15:22:16.257682029Z"
        },
        "domain": {
          "domain": "cartesia.ai",
          "registered": "2023-05-10",
          "source": "https://rdap.identitydigital.services/rdap/domain/cartesia.ai",
          "checkedAt": "2026-11-01T14:10:04.149838535Z"
        },
        "pages": [
          {
            "url": "https://docs.cartesia.ai/changelog/2026",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-04T08:20:11.911741861Z",
            "changedAt": "2026-10-26T03:13:50.40257074Z",
            "fingerprint": "fd5cc0bf0fcf"
          },
          {
            "url": "https://docs.cartesia.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-04T08:20:15.386663436Z",
            "changedAt": "2026-10-31T06:09:15.21798849Z",
            "fingerprint": "7a19359f90b8"
          },
          {
            "url": "https://www.cartesia.ai/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-04T08:38:25.220923352Z",
            "changedAt": "2026-11-02T07:31:00.109467472Z",
            "fingerprint": "d5a2cc4afff3"
          },
          {
            "url": "https://www.cartesia.ai/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-04T08:38:20.910971578Z",
            "changedAt": "2026-10-30T05:53:45.609164932Z",
            "fingerprint": "40f6f080cf5e"
          },
          {
            "url": "https://www.cartesia.ai/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-04T08:38:23.265061099Z",
            "changedAt": "2026-10-30T05:53:47.83632773Z",
            "fingerprint": "5fd507df5f48"
          }
        ],
        "github": {
          "repo": "cartesia-ai/cartesia-python",
          "checkedAt": "2026-11-02T08:37:37.378374658Z",
          "stars": 138,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-30T18:24:19Z",
          "openIssues": 1,
          "openPRs": 8,
          "issuesOpened90d": 1,
          "issuesClosed90d": 1,
          "prsMerged90d": 4,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 33,
            "failure": 0,
            "other": 17,
            "latest": "skipped",
            "latestAt": "2026-10-23T17:43:01Z"
          },
          "replies": {
            "sampled": 14,
            "unanswered": 1,
            "medianDays": 54.7
          }
        },
        "updatedAt": "2026-11-04T20:46:37.879182079Z"
      }
    },
    "answer": "Cartesia Ink scores 67 (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": 805,
        "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-04T20:46:47.290932988Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 524,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 286,
          "p95ms24h": 654,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://giggy.ai/status",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:31:56.257084594Z"
        },
        "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-04T20:46:47.290932988Z"
      }
    },
    "edges": [
      {
        "by": 38,
        "category": "transparency",
        "leads": "cartesia-ink-stt",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "The service is closed and the SDKs are Apache-2.0. The Terms of Service cover the website, its subdomains and APIs, were last revised on 14 June 2024, describe a platform for synthesised sound and never mention transcription (12 of 30). The terms and privacy policy agree that content may be used for training with an opt-out. The DPA says Cartesia will not retain or use customer personal data beyond performing the services, which sits uneasily with the training licence. No retention period is given outside zero data retention, and the privacy policy says the services are designed for users in the United States only while regional endpoints are sold in four other regions (12 of 30). A deprecations page with dated sunsets and a stated promise to preserve fields for a pinned `Cartesia-Version` (15 of 20). The DPA promises 30 days' notice of sub-processor changes to subscribers and points to a list in the trust centre, which we could not read. Regional deployments are named for Enterprise only (10 of 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": 68,
          "b": 30
        }
      },
      {
        "by": 23,
        "category": "reliability",
        "leads": "cartesia-ink-stt",
        "name": "Reliability",
        "reasons": {
          "a": "Hosted reading. The status page at status.cartesia.ai (incident.io) lists Speech to Text as its own component in four regions (20). Its RSS feed, re-read on 1 November, now names each incident's components. In the 90 days from 3 August two incidents touch speech-to-text, both partial and read as minor, as this run reads one region or some requests. On 2 September some clients in the US regions saw connection errors that cleared on retry (Text to Speech and Speech to Text, US), and on 7 October customers in the US regions saw higher latency for some API requests, from 12:29 to about 18:23 (partial outage, Text to Speech, Speech to Text and Voice Cloning, US). The 3 September throttling named only Text to Speech in APAC, the 8 October errors only the Playground and Voice Agents, and the 15 October Playground outage says API services were unaffected. The 1 August API-wide incident has left the window. Minor only (20). Concurrency limits are published per plan, 8, 12, 20 and 60 concurrent STT requests, with a 3-minute idle timeout on sockets (15). Exceeding the limit returns 429 with the `concurrency_limited` code, and the SDKs retry 429 and 5xx twice with backoff on HTTP calls. No `Retry-After` header, backoff guidance or reconnection advice for a dropped socket was found (8 of 15). No SLA was found for any plan (0). `ink-2` is marked Stable on the model page re-read on 1 November, with `ink-preview` as the preview line (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.",
          "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": 73,
          "b": 50
        }
      },
      {
        "by": 21,
        "category": "schema",
        "leads": "cartesia-ink-stt",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Model reading. The docs index links an OpenAPI file (`latest.yml`) and AsyncAPI files for the WebSocket endpoints, and each reference page embeds its part of them (25). llms.txt with a Markdown twin of every page (10). The comparison page says which of the three endpoints to use and when, and the turn detection guide explains each event and threshold (18 of 20). The AsyncAPI definition has enums for `encoding` and `cartesia_version`, minimum and maximum values on the four turn settings and required fields marked. `model` is a plain string on the auto endpoint (13 of 15). Example scripts for each endpoint in Python and TypeScript and an errors page with nine codes. `model_sunsetted` appears on the deprecations page and not in that table, and the docs say a wrong `encoding` or `sample_rate` might not return an error (11 of 15). Dated API versions through the `Cartesia-Version` header and a changelog grouped by month with no day dates (12 of 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": 89,
          "b": 68
        }
      },
      {
        "by": 15,
        "category": "maintenance",
        "leads": "cartesia-ink-stt",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "Read as a model, on the lines deepgram-stt, gladia-stt and cartesia-tts use for hosted speech models (recency 30, dated releases 10, deprecation notice 10, support 15, issues 10, SDKs 15, health 10). The `cartesia-mcp` server, which has a `speech_to_text` tool, released 0.28.1 on 30 October 2026 with a bug fix, after 0.27.0 (20 October) and 0.28.0 (27 October). The model page still dates `ink-2` and `ink-preview` 17 September 2026 (30). In the 90 days from 3 August the SDKs released 4.0.0, 4.0.1, 4.1.0 and 4.2.0 (14 August to 2 September) and the MCP server several releases, with changelog entries for August and September (10). The deprecations page gives dated sunsets, and Sonic-2, Sonic Turbo and `sonic-3-2025-10-27` were sunset after 20 October 2026, announced in the July changelog. No minimum notice period is stated and no Ink model has been retired, read as cartesia-tts is on the same page (5 of 10). The changelog has speech-to-text entries in May, June, July and September 2026, dated by month only, and no October entry (11 of 15). The Python SDK repository had 4 open issues on 9 October, per that check, not re-read on 1 November since GitHub's pages answered 403 (5 of 10). Official `cartesia` and `@cartesia/cartesia-js` SDKs at 4.2.0 (2 September 2026), generated for API version 2026-08-14 (15). CI workflows, release automation and lock files in both SDK repositories, with dependency updates merged on 23 October (8 of 10). 30 + 10 + 5 + 11 + 5 + 15 + 8 = 84.",
          "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": 84,
          "b": 69
        }
      },
      {
        "by": 10,
        "category": "security",
        "leads": "giggy-stt",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Model reading. Standard keys (`sk_car_...`) and admin keys are separate types that are not interchangeable, and a server can mint an access token with an `stt` grant that lasts at most one hour. That token travels in the `access_token` query parameter on WebSockets, the API key itself goes in a header, and no key limited to speech-to-text was found. The STT WebSocket definition, re-read on 1 November, lists `access_token` in the query as a security scheme. The checklist takes 10 off for a secret that can travel in a URL query string as a documented option, and this run takes the full 10 for short-lived OAuth tokens in `?access_token=` on every Google API listing, so the earlier 5 is brought into line (26, less 10, 16 of 30). The terms, last revised 14 June 2024, say inputs, outputs and interactions may be used to train models unless otherwise agreed, with an opt-out form in the Playground's data controls (5 of 20). Zero data retention covers STT audio and transcripts and is limited to the Enterprise plan. No retention period for other plans was found, and the DPA gives 180 days for deletion after termination (5 of 15). Credit usage and key metadata are readable through admin endpoints. No audit log was found (7 of 15). security.txt is valid until 3 October 2027 with a contact and a policy link to the trust centre. The docs and pricing page state SOC 2 Type II, HIPAA and PCI-DSS. The trust centre is drawn by script and was not read, and no bug bounty was found (14 of 20). 16 + 5 + 5 + 7 + 14 = 47.",
          "b": "Model reading of the checklist, with training and retention in place of the least-privilege and injection lines, as for deepgram-stt and cartesia-ink-stt. Keys prefixed `giggy_sk_` are shown once on creation or rotation, rejected immediately after revocation, limited to ten per space and tied to the space that made them, with REST budgets that Workspace members can set. No scopes or expiry were found. The key travels in a header only, with no query-string option documented (22 of 30). The workspace privacy guide states 'Giggy does not use user data to train models'. The privacy policy and terms draw by script and could not be read to confirm it (18 of 20). Requests can opt into 12-hour content retention and EEA-adequate compute, and a guide gives Batch audio a seven-day window, but no retention period for transcripts was found and results can vanish after an unstated 'retention cleanup' (9 of 15). Generation history per space and a request ID on errors; no audit log of key or admin actions was found (8 of 15). /.well-known/security.txt answered a client error, none of the six repositories has a SECURITY.md, and no disclosure policy, bug bounty or certification was found on the pages that rendered; the support page that may name a reporting route drew by script (0 of 20). 22+18+9+8+0 = 57."
        },
        "scores": {
          "a": 47,
          "b": 57
        }
      },
      {
        "by": 6,
        "category": "ergonomics",
        "leads": "cartesia-ink-stt",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "API reading, as for the other speech-to-text listings. Turn events carry a cumulative transcript that is never revised, so an agent reads one `turn.end` a turn, and word timestamps are opt-in on the manual and batch endpoints (20 of 25). There is nothing to page through. Batch takes a file of any length without client chunking, keyterms steer vocabulary, and there is no diarisation or subtitle output (12 of 20). Errors are structured JSON with `error_code`, `title`, `message`, `request_id` and an optional `doc_url` on API version 2026-03-01 and later (17 of 20). Transcription holds no state to duplicate and the SDKs retry failed HTTP calls. A realtime session cannot be resumed, and nothing on reconnecting was found (12 of 20). Realtime needs `model`, `encoding`, `sample_rate` and the version, turn settings have documented defaults, and there are official Python and TypeScript SDKs. Realtime accepts raw PCM only (13 of 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": 74,
          "b": 68
        }
      }
    ],
    "facts": [
      {
        "a": "Model API",
        "b": "Model API",
        "name": "Kind"
      },
      {
        "a": "Cartesia",
        "b": "Giggy",
        "name": "Vendor"
      },
      {
        "a": "https://api.cartesia.ai",
        "b": "https://api.giggy.ai/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, websocket, Streamable HTTP",
        "b": "HTTP, SSE (legacy), websocket, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary hosted service under the Cartesia Terms of Service. The Python and JavaScript SDKs are Apache-2.0",
        "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-09-17",
        "b": "2026-11-01",
        "name": "Last release"
      },
      {
        "a": "2024-06-14",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "2024-06-14",
        "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": "yes",
        "b": "not read yet",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "134 stars",
        "b": "none",
        "name": "Popularity"
      },
      {
        "a": "3.3/5 (4)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Cartesia Ink scores 67 (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, Cartesia Ink or Giggy Speech to Text?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Cartesia Ink and Giggy Speech to Text need an API key?"
      },
      {
        "answer": "Yes. Cartesia Ink has a hosted endpoint at https://api.cartesia.ai and Giggy Speech to Text at https://api.giggy.ai/v1.",
        "question": "Can an agent call Cartesia Ink and Giggy Speech to Text without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 73 against 50",
          "Schema \u0026 documentation, 89 against 68",
          "Agent ergonomics, 74 against 68",
          "Payments \u0026 pricing, 35 against 30",
          "Maintenance \u0026 community, 84 against 69",
          "Transparency \u0026 trust, 68 against 30"
        ],
        "also": null,
        "goodFor": "Suited to voice agents that need turn detection and transcription from one model in English, French, Hindi, Japanese or Spanish, and to teams already using Cartesia text-to-speech.",
        "slug": "cartesia-ink-stt",
        "watchFor": "The terms let Cartesia train models on inputs and outputs unless otherwise agreed. Opting out is a form in the Playground's data controls"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 57 against 47"
        ],
        "also": null,
        "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": {
      "cartesia-ink-stt": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-01",
          "delta": -1,
          "from": 68,
          "fromGrade": "B",
          "to": 67,
          "toGrade": "B"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 67.9,
          "fromGrade": "B",
          "to": 68,
          "toGrade": "B"
        }
      ],
      "giggy-stt": null
    },
    "job": {
      "capability": "speech.stt",
      "name": "Speech-to-text"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/amazon-transcribe-vs-cartesia-ink-stt.json",
        "title": "Amazon Transcribe vs Cartesia Ink",
        "url": "https://www.anchorterminal.com/compare/amazon-transcribe-vs-cartesia-ink-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-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-giggy-stt.json",
        "title": "AssemblyAI Speech-to-Text (Universal) vs Giggy Speech to Text",
        "url": "https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-speech-to-text-vs-cartesia-ink-stt.json",
        "title": "Azure AI Speech speech-to-text vs Cartesia Ink",
        "url": "https://www.anchorterminal.com/compare/azure-speech-to-text-vs-cartesia-ink-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-deepgram-stt.json",
        "title": "Cartesia Ink vs Deepgram Speech-to-Text (Nova-3, Flux)",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-deepgram-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-elevenlabs-scribe.json",
        "title": "Cartesia Ink vs ElevenLabs Scribe Speech to Text API",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-elevenlabs-scribe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-gladia-stt.json",
        "title": "Cartesia Ink vs Gladia Speech-to-Text API + MCP",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-gladia-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-google-speech-to-text.json",
        "title": "Cartesia Ink vs Google Cloud Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-google-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-groq-speech-to-text.json",
        "title": "Cartesia Ink vs Groq Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-groq-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-mistral-voxtral-transcribe.json",
        "title": "Cartesia Ink vs Mistral Voxtral Transcribe",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-mistral-voxtral-transcribe"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-openai-speech-to-text.json",
        "title": "Cartesia Ink vs OpenAI Speech to Text",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-openai-speech-to-text"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-rev-ai-stt.json",
        "title": "Cartesia Ink vs Rev AI Speech-to-Text API",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-rev-ai-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-soniox-stt.json",
        "title": "Cartesia Ink vs Soniox Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-soniox-stt"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-speechmatics-stt.json",
        "title": "Cartesia Ink vs Speechmatics Speech-to-Text",
        "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-speechmatics-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": [
      {
        "by": 23,
        "cartesia-ink-stt": 73,
        "edge": "cartesia-ink-stt",
        "giggy-stt": 50,
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 21,
        "cartesia-ink-stt": 89,
        "edge": "cartesia-ink-stt",
        "giggy-stt": 68,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 6,
        "cartesia-ink-stt": 74,
        "edge": "cartesia-ink-stt",
        "giggy-stt": 68,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 10,
        "cartesia-ink-stt": 47,
        "edge": "giggy-stt",
        "giggy-stt": 57,
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 5,
        "cartesia-ink-stt": 35,
        "edge": "cartesia-ink-stt",
        "giggy-stt": 30,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "cartesia-ink-stt": 84,
        "edge": "cartesia-ink-stt",
        "giggy-stt": 69,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 38,
        "cartesia-ink-stt": 68,
        "edge": "cartesia-ink-stt",
        "giggy-stt": 30,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Cartesia Ink scores 67 (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.07 to $0.54",
        "b": "$0.04 to $0.09",
        "cheaper": "giggy-stt",
        "task": "Transcribe a one-hour meeting",
        "what": "60 minutes of recorded audio"
      }
    ],
    "tutorials": [],
    "verdicts": {
      "cartesia-ink-stt": "Ink 2 streams transcripts with turn detection built into the model, documented by an AsyncAPI file with typed ranges and structured errors. The terms, last revised 14 June 2024, let Cartesia train on inputs and outputs unless the customer opts out, and zero data retention is an Enterprise setting. Ink 2 has no batch endpoint and no diarisation.",
      "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/cartesia-ink-stt-vs-giggy-stt",
    "json": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt.min.md"
  },
  "markdown": "Cartesia Ink scores 67 (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- Cartesia Ink: grade B, 67/100, rank #309 of 1349. Markdown https://www.anchorterminal.com/tools/cartesia-ink-stt.md · JSON https://www.anchorterminal.com/api/v1/tools/cartesia-ink-stt.json\n- Giggy Speech to Text: grade C, 54.5/100, rank #805 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### Cartesia Ink (B)\n\nGood for: Suited to voice agents that need turn detection and transcription from one model in English, French, Hindi, Japanese or Spanish, and to teams already using Cartesia text-to-speech.\n\nAhead on:\n- Reliability, 73 against 50\n- Schema \u0026 documentation, 89 against 68\n- Agent ergonomics, 74 against 68\n- Payments \u0026 pricing, 35 against 30\n- Maintenance \u0026 community, 84 against 69\n- Transparency \u0026 trust, 68 against 30\n\nWatch for: The terms let Cartesia train models on inputs and outputs unless otherwise agreed. Opting out is a form in the Playground's data controls\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 47\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: Cartesia Ink +38\n\n- Cartesia Ink (68): The service is closed and the SDKs are Apache-2.0. The Terms of Service cover the website, its subdomains and APIs, were last revised on 14 June 2024, describe a platform for synthesised sound and never mention transcription (12 of 30). The terms and privacy policy agree that content may be used for training with an opt-out. The DPA says Cartesia will not retain or use customer personal data beyond performing the services, which sits uneasily with the training licence. No retention period is given outside zero data retention, and the privacy policy says the services are designed for users in the United States only while regional endpoints are sold in four other regions (12 of 30). A deprecations page with dated sunsets and a stated promise to preserve fields for a pinned `Cartesia-Version` (15 of 20). The DPA promises 30 days' notice of sub-processor changes to subscribers and points to a list in the trust centre, which we could not read. Regional deployments are named for Enterprise only (10 of 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: Cartesia Ink +23\n\n- Cartesia Ink (73): Hosted reading. The status page at status.cartesia.ai (incident.io) lists Speech to Text as its own component in four regions (20). Its RSS feed, re-read on 1 November, now names each incident's components. In the 90 days from 3 August two incidents touch speech-to-text, both partial and read as minor, as this run reads one region or some requests. On 2 September some clients in the US regions saw connection errors that cleared on retry (Text to Speech and Speech to Text, US), and on 7 October customers in the US regions saw higher latency for some API requests, from 12:29 to about 18:23 (partial outage, Text to Speech, Speech to Text and Voice Cloning, US). The 3 September throttling named only Text to Speech in APAC, the 8 October errors only the Playground and Voice Agents, and the 15 October Playground outage says API services were unaffected. The 1 August API-wide incident has left the window. Minor only (20). Concurrency limits are published per plan, 8, 12, 20 and 60 concurrent STT requests, with a 3-minute idle timeout on sockets (15). Exceeding the limit returns 429 with the `concurrency_limited` code, and the SDKs retry 429 and 5xx twice with backoff on HTTP calls. No `Retry-After` header, backoff guidance or reconnection advice for a dropped socket was found (8 of 15). No SLA was found for any plan (0). `ink-2` is marked Stable on the model page re-read on 1 November, with `ink-preview` as the preview line (10). 20 + 20 + 15 + 8 + 0 + 10 = 73.\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: Cartesia Ink +21\n\n- Cartesia Ink (89): Model reading. The docs index links an OpenAPI file (`latest.yml`) and AsyncAPI files for the WebSocket endpoints, and each reference page embeds its part of them (25). llms.txt with a Markdown twin of every page (10). The comparison page says which of the three endpoints to use and when, and the turn detection guide explains each event and threshold (18 of 20). The AsyncAPI definition has enums for `encoding` and `cartesia_version`, minimum and maximum values on the four turn settings and required fields marked. `model` is a plain string on the auto endpoint (13 of 15). Example scripts for each endpoint in Python and TypeScript and an errors page with nine codes. `model_sunsetted` appears on the deprecations page and not in that table, and the docs say a wrong `encoding` or `sample_rate` might not return an error (11 of 15). Dated API versions through the `Cartesia-Version` header and a changelog grouped by month with no day dates (12 of 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### Maintenance \u0026 community: Cartesia Ink +15\n\n- Cartesia Ink (84): Read as a model, on the lines deepgram-stt, gladia-stt and cartesia-tts use for hosted speech models (recency 30, dated releases 10, deprecation notice 10, support 15, issues 10, SDKs 15, health 10). The `cartesia-mcp` server, which has a `speech_to_text` tool, released 0.28.1 on 30 October 2026 with a bug fix, after 0.27.0 (20 October) and 0.28.0 (27 October). The model page still dates `ink-2` and `ink-preview` 17 September 2026 (30). In the 90 days from 3 August the SDKs released 4.0.0, 4.0.1, 4.1.0 and 4.2.0 (14 August to 2 September) and the MCP server several releases, with changelog entries for August and September (10). The deprecations page gives dated sunsets, and Sonic-2, Sonic Turbo and `sonic-3-2025-10-27` were sunset after 20 October 2026, announced in the July changelog. No minimum notice period is stated and no Ink model has been retired, read as cartesia-tts is on the same page (5 of 10). The changelog has speech-to-text entries in May, June, July and September 2026, dated by month only, and no October entry (11 of 15). The Python SDK repository had 4 open issues on 9 October, per that check, not re-read on 1 November since GitHub's pages answered 403 (5 of 10). Official `cartesia` and `@cartesia/cartesia-js` SDKs at 4.2.0 (2 September 2026), generated for API version 2026-08-14 (15). CI workflows, release automation and lock files in both SDK repositories, with dependency updates merged on 23 October (8 of 10). 30 + 10 + 5 + 11 + 5 + 15 + 8 = 84.\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### Security \u0026 auth: Giggy Speech to Text +10\n\n- Cartesia Ink (47): Model reading. Standard keys (`sk_car_...`) and admin keys are separate types that are not interchangeable, and a server can mint an access token with an `stt` grant that lasts at most one hour. That token travels in the `access_token` query parameter on WebSockets, the API key itself goes in a header, and no key limited to speech-to-text was found. The STT WebSocket definition, re-read on 1 November, lists `access_token` in the query as a security scheme. The checklist takes 10 off for a secret that can travel in a URL query string as a documented option, and this run takes the full 10 for short-lived OAuth tokens in `?access_token=` on every Google API listing, so the earlier 5 is brought into line (26, less 10, 16 of 30). The terms, last revised 14 June 2024, say inputs, outputs and interactions may be used to train models unless otherwise agreed, with an opt-out form in the Playground's data controls (5 of 20). Zero data retention covers STT audio and transcripts and is limited to the Enterprise plan. No retention period for other plans was found, and the DPA gives 180 days for deletion after termination (5 of 15). Credit usage and key metadata are readable through admin endpoints. No audit log was found (7 of 15). security.txt is valid until 3 October 2027 with a contact and a policy link to the trust centre. The docs and pricing page state SOC 2 Type II, HIPAA and PCI-DSS. The trust centre is drawn by script and was not read, and no bug bounty was found (14 of 20). 16 + 5 + 5 + 7 + 14 = 47.\n- Giggy Speech to Text (57): Model reading of the checklist, with training and retention in place of the least-privilege and injection lines, as for deepgram-stt and cartesia-ink-stt. Keys prefixed `giggy_sk_` are shown once on creation or rotation, rejected immediately after revocation, limited to ten per space and tied to the space that made them, with REST budgets that Workspace members can set. No scopes or expiry were found. The key travels in a header only, with no query-string option documented (22 of 30). The workspace privacy guide states 'Giggy does not use user data to train models'. The privacy policy and terms draw by script and could not be read to confirm it (18 of 20). Requests can opt into 12-hour content retention and EEA-adequate compute, and a guide gives Batch audio a seven-day window, but no retention period for transcripts was found and results can vanish after an unstated 'retention cleanup' (9 of 15). Generation history per space and a request ID on errors; no audit log of key or admin actions was found (8 of 15). /.well-known/security.txt answered a client error, none of the six repositories has a SECURITY.md, and no disclosure policy, bug bounty or certification was found on the pages that rendered; the support page that may name a reporting route drew by script (0 of 20). 22+18+9+8+0 = 57.\n\n### Agent ergonomics: Cartesia Ink +6\n\n- Cartesia Ink (74): API reading, as for the other speech-to-text listings. Turn events carry a cumulative transcript that is never revised, so an agent reads one `turn.end` a turn, and word timestamps are opt-in on the manual and batch endpoints (20 of 25). There is nothing to page through. Batch takes a file of any length without client chunking, keyterms steer vocabulary, and there is no diarisation or subtitle output (12 of 20). Errors are structured JSON with `error_code`, `title`, `message`, `request_id` and an optional `doc_url` on API version 2026-03-01 and later (17 of 20). Transcription holds no state to duplicate and the SDKs retry failed HTTP calls. A realtime session cannot be resumed, and nothing on reconnecting was found (12 of 20). Realtime needs `model`, `encoding`, `sample_rate` and the version, turn settings have documented defaults, and there are official Python and TypeScript SDKs. Realtime accepts raw PCM only (13 of 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## Score by category\n\n| Category | Weight | Cartesia Ink | Giggy Speech to Text | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 73 | 50 | Cartesia Ink +23 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 89 | 68 | Cartesia Ink +21 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 68 | Cartesia Ink +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 47 | 57 | Giggy Speech to Text +10 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 35 | 30 | Cartesia Ink +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 84 | 69 | Cartesia Ink +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 68 | 30 | Cartesia Ink +38 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67 · B** | **54.5 · C** | |\n\n## Facts side by side\n\n| Fact | Cartesia Ink | Giggy Speech to Text |\n| --- | --- | --- |\n| Kind | Model API | Model API |\n| Vendor | Cartesia | Giggy |\n| Hosted endpoint | `https://api.cartesia.ai` | `https://api.giggy.ai/v1` |\n| Transports | HTTP, websocket, Streamable HTTP | HTTP, SSE (legacy), websocket, Streamable HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary hosted service under the Cartesia Terms of Service. The Python and JavaScript SDKs are Apache-2.0 | 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-09-17 | 2026-11-01 |\n| Terms last updated | 2024-06-14 | not read yet |\n| Privacy policy last updated | 2024-06-14 | 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 | yes | not read yet |\n| Popularity | 134 stars | none |\n| Agent reviews | 3.3/5 (4) | none |\n\n## What the same task costs\n\n| Task | Cartesia Ink | Giggy Speech to Text |\n| --- | --- | --- |\n| Transcribe a one-hour meeting | $0.07 to $0.54 | $0.04 to $0.09 |\n\n## How the scores have moved\n\n### Cartesia Ink\n\n- -1.0 on 1 November 2026: correction\n- +0.1 on 27 October 2026: checklist\n\n### Giggy Speech to Text\n\nNo score change since it was listed.\n\n## Verdicts\n\n**Cartesia Ink.** Ink 2 streams transcripts with turn detection built into the model, documented by an AsyncAPI file with typed ranges and structured errors. The terms, last revised 14 June 2024, let Cartesia train on inputs and outputs unless the customer opts out, and zero data retention is an Enterprise setting. Ink 2 has no batch endpoint and no diarisation.\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### Cartesia Ink\n\n1. Use `wss://api.cartesia.ai/stt/turns/websocket` with `model=ink-2`, `encoding`, `sample_rate` and `cartesia_version=2026-08-14`. All four are required.\n2. Send raw mono audio in chunks of about 100 ms at the speed it was spoken. Pushing a whole file into the socket can return an internal server error.\n3. Read the final text from `turn.end` only. `transcript` is cumulative within a turn, so joining `turn.update` events duplicates text.\n4. Send `{\"type\": \"close\"}` after the last audio and keep reading until the server closes the socket, or the buffered tail is lost.\n5. Check `encoding` and `sample_rate` against the source before sending. The docs say the server might not return an error when they are wrong.\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, Cartesia Ink or Giggy Speech to Text?\n\nCartesia Ink scores 67 (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 Cartesia Ink and Giggy Speech to Text need an API key?\n\nBoth need an API key.\n\n### Can an agent call Cartesia Ink and Giggy Speech to Text without installing anything?\n\nYes. Cartesia Ink has a hosted endpoint at https://api.cartesia.ai 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/cartesia-ink-stt-vs-giggy-stt.json, and with the fewest tokens: https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"cartesia-ink-stt\", \"b\": \"giggy-stt\"}`. From a terminal: `anchor compare cartesia-ink-stt giggy-stt`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/cartesia-ink-stt.json and https://www.anchorterminal.com/api/v1/tools/giggy-stt.json\n\n## Other comparisons with Cartesia Ink or Giggy Speech to Text\n\n- [Amazon Transcribe vs Cartesia Ink](https://www.anchorterminal.com/compare/amazon-transcribe-vs-cartesia-ink-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 Cartesia Ink](https://www.anchorterminal.com/compare/assemblyai-stt-vs-cartesia-ink-stt.md)\n- [AssemblyAI Speech-to-Text (Universal) vs Giggy Speech to Text](https://www.anchorterminal.com/compare/assemblyai-stt-vs-giggy-stt.md)\n- [Azure AI Speech speech-to-text vs Cartesia Ink](https://www.anchorterminal.com/compare/azure-speech-to-text-vs-cartesia-ink-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 Deepgram Speech-to-Text (Nova-3, Flux)](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-deepgram-stt.md)\n- [Cartesia Ink vs ElevenLabs Scribe Speech to Text API](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-elevenlabs-scribe.md)\n- [Cartesia Ink vs Gladia Speech-to-Text API + MCP](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-gladia-stt.md)\n- [Cartesia Ink vs Google Cloud Speech-to-Text](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-google-speech-to-text.md)\n- [Cartesia Ink vs Groq Speech-to-Text](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-groq-speech-to-text.md)\n- [Cartesia Ink vs Mistral Voxtral Transcribe](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-mistral-voxtral-transcribe.md)\n- [Cartesia Ink vs OpenAI Speech to Text](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-openai-speech-to-text.md)\n- [Cartesia Ink vs Rev AI Speech-to-Text API](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-rev-ai-stt.md)\n- [Cartesia Ink vs Soniox Speech-to-Text](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-soniox-stt.md)\n- [Cartesia Ink vs Speechmatics Speech-to-Text](https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-speechmatics-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": "Cartesia Ink vs Giggy Speech to Text",
        "url": ""
      }
    ],
    "description": "Cartesia Ink scores 67 (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": [
      "Cartesia Ink B 67",
      "Giggy Speech to Text C 54.5",
      "scores"
    ],
    "h1": "Cartesia Ink vs Giggy Speech to Text",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/cartesia-ink-stt-vs-giggy-stt",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Cartesia Ink vs Giggy Speech to Text for AI agents (2026)",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/cartesia-ink-stt-vs-giggy-stt"
  },
  "tokens": {
    "markdown": 6700,
    "slim": 4580
  },
  "version": 1
}
