{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "tool": {
    "slug": "novita-ai",
    "name": "Novita AI",
    "vendor": "Novita AI",
    "vendorUrl": "https://novita.ai",
    "kind": "model",
    "category": "inference",
    "summary": "Novita AI is a hosted inference API for open-weight language models, with embeddings, reranking, image, video and speech models on the same key. It answers OpenAI-style calls at api.novita.ai with a Bearer key.",
    "url": "https://www.anchorterminal.com/tools/novita-ai",
    "markdownUrl": "https://www.anchorterminal.com/tools/novita-ai.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/novita-ai.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/novita-ai.json",
    "repo": "https://github.com/novitalabs/novita-skills",
    "license": "Proprietary service under the Novita AI Terms of Service. The agent skill and the MCP server are MIT",
    "transports": [
      "http"
    ],
    "remoteUrl": "https://api.novita.ai/openai",
    "packages": [
      {
        "registry": "npm",
        "name": "novita-sdk"
      },
      {
        "registry": "pypi",
        "name": "novita-client"
      },
      {
        "registry": "npm",
        "name": "@novitalabs/novita-mcp-server"
      }
    ],
    "auth": "api-key",
    "authNotes": "Self-serve Bearer key from Key Management in the console after a browser sign-up. Keys start with `sk_`, are shown once, number up to 10 an account and take an expiry of 24 hours, 30 days, 90 days or none. A per-key model access policy and source IP allowlist can be set by API. `auth.md` also describes OAuth with PKCE after the user signs in and approves (https://docs.novita.ai/guides/llm-api-keys, https://novita.ai/auth.md).",
    "pricing": "usage",
    "pricingNotes": "Pay per token from prepaid credit. `deepseek/deepseek-v4.1-flash` costs $0.30 in and $1.20 out per 1M tokens, batch is 50 per cent off as an introductory price, and two models are listed as free. A voucher for new users is described without an amount, and whether a card is needed was not found (https://novita.ai/pricing, checked 2026-10-09).",
    "priceSummary": "from $0.05 / 1M in",
    "where": "hosted",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the docs index, the docs site map, the pricing page or the skill repository (checked 2026-10-09).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 6,
      "npmWeekly": 1363,
      "pypiWeekly": null,
      "asOf": "2026-10-09"
    },
    "docsUrl": "https://docs.novita.ai/guides/introduction",
    "rateLimitsUrl": "https://docs.novita.ai/guides/llm-rate-limits",
    "llmsTxt": "https://docs.novita.ai/llms.txt",
    "openapi": "https://novita.ai/.well-known/openapi.json",
    "capabilities": [
      "inference.llm",
      "inference.open-weights",
      "embed.text",
      "rerank",
      "image.generate",
      "video.generate",
      "speech.tts",
      "compute.batch"
    ],
    "tags": [
      "hosted",
      "model",
      "open-weights",
      "usage-based",
      "llms-txt",
      "openai-compatible",
      "batch",
      "prompt-caching",
      "changelog"
    ],
    "lastRelease": "2026-09-28",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 53.5,
      "grade": "D",
      "agentReady": false,
      "rank": 706,
      "ranked": true,
      "rankOf": 950,
      "categoryRank": 15,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 72,
        "maintenance": 62,
        "payments": 35,
        "reliability": 28,
        "schema": 62,
        "security": 65,
        "transparency": 56
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 28,
          "points": 5.6,
          "reason": "Hosted reading. No status page was found. None is linked from the home page, the pricing page, the docs introduction, either `llms.txt` or the docs site map (0), so there is no incident record to read (0). The rate limit page documents five account tiers set by monthly top-ups, from under $50 to $10,000 and over, and limits counted in RPM and TPM per model. The figures per model are drawn by script and were not readable, so this line takes part marks (8 of 15). 429 with `RATE_LIMIT_EXCEEDED` or `TOKEN_LIMIT_EXCEEDED`, advice to throttle and use exponential backoff, and a billing page that says 429, 500, 503 and 504 are not charged. No `Retry-After` header was found (10 of 15). No SLA was found. The home page states 99.5% uptime, and the terms say availability is not guaranteed (0). Generally available (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 62,
          "points": 10.07,
          "reason": "Model reading. The OpenAPI 3.1.0 document at `/.well-known/openapi.json` is a 964-byte discovery file with four paths and no schemas, and the API reference is written by hand (6 of 25). `llms.txt` on both hosts, a Markdown copy of every docs page and an `llms-full.txt` (10). Guides for function calling, structured output, prompt caching, batch and reasoning say what each is for, and the chat reference describes 136 request and response fields (14 of 20). Fields are typed with required flags and defaults. Enums and ranges are stated in prose only (10 of 15). Curl and Python examples on each guide, error tables by product, a common errors guide and a table of which statuses are billed. The FAQ says `json_schema` and `top_logprobs` are unsupported while the reference and a guide document both (10 of 15). A dated changelog with 84 entries since February 2024. The API has no version scheme beyond `/v1` (12 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 72,
          "points": 11.7,
          "reason": "Model reading of the checklist (tool use, structured output, caching, context, batch, SDKs, errors). `tools` with a `strict` flag and a worked example. The list of models that support it is drawn by script, and `tool_choice` is absent from the chat reference (13 of 20). `response_format` takes `json_object` and `json_schema` with `strict` in the reference, while the FAQ says only `json_object` works (9 of 15). Prompt caching is automatic on supported models, cache-read prices are on the pricing page and `cached_tokens` is returned in usage (12 of 15). Context of 1M tokens on DeepSeek V4, GLM 5.3 and Kimi K3 per the pricing page. Output caps were not read (12 of 15). OpenAI-style files and batches with a 24-hour window, one model per file and an introductory 50 per cent discount (10). The OpenAI client works with a changed base URL. Both vendor SDK repositories are archived (5 of 10). Named error codes, a 429 that separates request and token limits, and a `trace_id` for support (11 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 65,
          "points": 11.38,
          "reason": "Model reading. Bearer keys with the `sk_` prefix, shown once, up to 10 an account, with an expiry of 24 hours, 30 days, 90 days or none fixed at creation, deletable in the console, and a per-key model access policy and source IP allowlist that can be set by API. OAuth with PKCE and the scopes `api` and `balance:read` is described in `auth.md`, with no token revocation endpoint. No documented way to send a key in a URL was found (26 of 30). The terms say content is not used to train Novita's models or improve the services by default (17 of 20). The terms state zero data retention, with exceptions for law and for what is necessary to run or support the service, and allow automated safety screening. Batch input files are kept for 15 days (11 of 15). Billing can be queried per key, and budget, monitoring and metrics pages are listed in the docs index and were not read (7 of 15). The trust centre at trust.novita.ai is drawn by script and was not read. `/.well-known/security.txt` returns 404, and no disclosure policy or bug bounty was found (4 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 35,
          "points": 4.38,
          "reason": "No machine payment protocol was found in the docs index, the site map, the pricing page or the skill repository (0). Per-token prices for each model on the pricing page without a login, such as `deepseek/deepseek-v4.1-flash` at $0.30 in and $1.20 out per 1M tokens (20). Two language models are listed as free and the FAQ describes a voucher for new users. Whether a card is needed to use either was not stated in the pages read (15 of 20). A person signs up in a browser, keys are created only in the console, and the OAuth route needs the user to sign in and approve (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 62,
          "points": 5.43,
          "reason": "Model reading. The newest changelog entry is dated 28 September 2026 (30). That entry retires `deepseek/deepseek-v4-flash` at 16:00 UTC on 9 October 2026 with a named replacement, which is 11 days' notice. No written notice period was found (6 of 12). 11 changelog entries in the 90 days to 9 October 2026, of which one was read (4 of 8). A dated changelog, a Discord server and a support address (12 of 15). `novitalabs/python-sdk` and `novitalabs/javascript-sdk` are archived on GitHub, and issue replies were not examined (2 of 10). The docs rely on the OpenAI client, the SDK page still names the two archived packages, and the skill repository reached version 1.4.0 on 24 September 2026 (5 of 15). The JavaScript SDK repository has a publish workflow only and the Python one has none (3 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 56,
          "points": 4.9,
          "note": "editorial 42, provenance 69",
          "reason": "Closed service. The terms set Delaware law and arbitration but name the party only as Novita AI, with no corporate form or address. The skill and the MCP server are MIT (10 of 30). The terms state zero data retention and no training by default, and the privacy policy lists retention periods (account data for the life of the account plus 7 years, technical data 2 years). The privacy policy says it does not cover content processed for customers and points to customer agreements. No DPA was found (16 of 30). Retirement notices in the changelog carry a UTC time and a replacement. The terms reserve the right to discontinue any service without notice (12 of 20). The privacy policy names categories of recipients only and transfers that include the United States. No sub-processor list was found (4 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-09",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "Model reading of the checklist (tool use, structured output, caching, context, batch, SDKs, errors). `tools` with a `strict` flag and a worked example. The list of models that support it is drawn by script, and `tool_choice` is absent from the chat reference (13 of 20). `response_format` takes `json_object` and `json_schema` with `strict` in the reference, while the FAQ says only `json_object` works (9 of 15). Prompt caching is automatic on supported models, cache-read prices are on the pricing page and `cached_tokens` is returned in usage (12 of 15). Context of 1M tokens on DeepSeek V4, GLM 5.3 and Kimi K3 per the pricing page. Output caps were not read (12 of 15). OpenAI-style files and batches with a 24-hour window, one model per file and an introductory 50 per cent discount (10). The OpenAI client works with a changed base URL. Both vendor SDK repositories are archived (5 of 10). Named error codes, a 429 that separates request and token limits, and a `trace_id` for support (11 of 15).",
          "maintenance": "Model reading. The newest changelog entry is dated 28 September 2026 (30). That entry retires `deepseek/deepseek-v4-flash` at 16:00 UTC on 9 October 2026 with a named replacement, which is 11 days' notice. No written notice period was found (6 of 12). 11 changelog entries in the 90 days to 9 October 2026, of which one was read (4 of 8). A dated changelog, a Discord server and a support address (12 of 15). `novitalabs/python-sdk` and `novitalabs/javascript-sdk` are archived on GitHub, and issue replies were not examined (2 of 10). The docs rely on the OpenAI client, the SDK page still names the two archived packages, and the skill repository reached version 1.4.0 on 24 September 2026 (5 of 15). The JavaScript SDK repository has a publish workflow only and the Python one has none (3 of 10).",
          "payments": "No machine payment protocol was found in the docs index, the site map, the pricing page or the skill repository (0). Per-token prices for each model on the pricing page without a login, such as `deepseek/deepseek-v4.1-flash` at $0.30 in and $1.20 out per 1M tokens (20). Two language models are listed as free and the FAQ describes a voucher for new users. Whether a card is needed to use either was not stated in the pages read (15 of 20). A person signs up in a browser, keys are created only in the console, and the OAuth route needs the user to sign in and approve (0).",
          "reliability": "Hosted reading. No status page was found. None is linked from the home page, the pricing page, the docs introduction, either `llms.txt` or the docs site map (0), so there is no incident record to read (0). The rate limit page documents five account tiers set by monthly top-ups, from under $50 to $10,000 and over, and limits counted in RPM and TPM per model. The figures per model are drawn by script and were not readable, so this line takes part marks (8 of 15). 429 with `RATE_LIMIT_EXCEEDED` or `TOKEN_LIMIT_EXCEEDED`, advice to throttle and use exponential backoff, and a billing page that says 429, 500, 503 and 504 are not charged. No `Retry-After` header was found (10 of 15). No SLA was found. The home page states 99.5% uptime, and the terms say availability is not guaranteed (0). Generally available (10).",
          "schema": "Model reading. The OpenAPI 3.1.0 document at `/.well-known/openapi.json` is a 964-byte discovery file with four paths and no schemas, and the API reference is written by hand (6 of 25). `llms.txt` on both hosts, a Markdown copy of every docs page and an `llms-full.txt` (10). Guides for function calling, structured output, prompt caching, batch and reasoning say what each is for, and the chat reference describes 136 request and response fields (14 of 20). Fields are typed with required flags and defaults. Enums and ranges are stated in prose only (10 of 15). Curl and Python examples on each guide, error tables by product, a common errors guide and a table of which statuses are billed. The FAQ says `json_schema` and `top_logprobs` are unsupported while the reference and a guide document both (10 of 15). A dated changelog with 84 entries since February 2024. The API has no version scheme beyond `/v1` (12 of 15).",
          "security": "Model reading. Bearer keys with the `sk_` prefix, shown once, up to 10 an account, with an expiry of 24 hours, 30 days, 90 days or none fixed at creation, deletable in the console, and a per-key model access policy and source IP allowlist that can be set by API. OAuth with PKCE and the scopes `api` and `balance:read` is described in `auth.md`, with no token revocation endpoint. No documented way to send a key in a URL was found (26 of 30). The terms say content is not used to train Novita's models or improve the services by default (17 of 20). The terms state zero data retention, with exceptions for law and for what is necessary to run or support the service, and allow automated safety screening. Batch input files are kept for 15 days (11 of 15). Billing can be queried per key, and budget, monitoring and metrics pages are listed in the docs index and were not read (7 of 15). The trust centre at trust.novita.ai is drawn by script and was not read. `/.well-known/security.txt` returns 404, and no disclosure policy or bug bounty was found (4 of 20).",
          "transparency": "Closed service. The terms set Delaware law and arbitration but name the party only as Novita AI, with no corporate form or address. The skill and the MCP server are MIT (10 of 30). The terms state zero data retention and no training by default, and the privacy policy lists retention periods (account data for the life of the account plus 7 years, technical data 2 years). The privacy policy says it does not cover content processed for customers and points to customer agreements. No DPA was found (16 of 30). Retirement notices in the changelog carry a UTC time and a replacement. The terms reserve the right to discontinue any service without notice (12 of 20). The privacy policy names categories of recipients only and transfers that include the United States. No sub-processor list was found (4 of 20)."
        },
        "sources": [
          {
            "what": "site robots.txt with Content-Signal ai-input=yes (HTTP 200)",
            "url": "https://novita.ai/robots.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "docs robots.txt with Content-Signal ai-input=yes (HTTP 200)",
            "url": "https://docs.novita.ai/robots.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "home page",
            "url": "https://novita.ai/",
            "seen": "2026-10-09"
          },
          {
            "what": "pricing page",
            "url": "https://novita.ai/pricing",
            "seen": "2026-10-09"
          },
          {
            "what": "Terms of Service, updated 5 August 2026",
            "url": "https://novita.ai/legal/terms-of-service",
            "seen": "2026-10-09"
          },
          {
            "what": "Privacy Policy, effective 13 May 2026",
            "url": "https://novita.ai/legal/privacy-policy",
            "seen": "2026-10-09"
          },
          {
            "what": "Acceptable Use Policy, effective 5 August 2026",
            "url": "https://novita.ai/legal/acceptable-use-policy",
            "seen": "2026-10-09"
          },
          {
            "what": "site index for agents, with discovery links",
            "url": "https://novita.ai/llms.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "OpenAPI discovery document, read as a file",
            "url": "https://novita.ai/.well-known/openapi.json",
            "seen": "2026-10-09"
          },
          {
            "what": "agent authentication note",
            "url": "https://novita.ai/auth.md",
            "seen": "2026-10-09"
          },
          {
            "what": "MCP server card",
            "url": "https://novita.ai/.well-known/mcp/server-card.json",
            "seen": "2026-10-09"
          },
          {
            "what": "security.txt (404)",
            "url": "https://novita.ai/.well-known/security.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "docs index for agents",
            "url": "https://docs.novita.ai/llms.txt",
            "seen": "2026-10-09"
          },
          {
            "what": "docs site map, used for changelog dates",
            "url": "https://docs.novita.ai/sitemap.xml",
            "seen": "2026-10-09"
          },
          {
            "what": "docs introduction",
            "url": "https://docs.novita.ai/guides/introduction.md",
            "seen": "2026-10-09"
          },
          {
            "what": "API reference overview",
            "url": "https://docs.novita.ai/api-reference/api-reference-overview.md",
            "seen": "2026-10-09"
          },
          {
            "what": "API keys, expiry and access policies",
            "url": "https://docs.novita.ai/guides/llm-api-keys.md",
            "seen": "2026-10-09"
          },
          {
            "what": "rate limits and tiers",
            "url": "https://docs.novita.ai/guides/llm-rate-limits.md",
            "seen": "2026-10-09"
          },
          {
            "what": "error code tables",
            "url": "https://docs.novita.ai/api-reference/basic-error-code.md",
            "seen": "2026-10-09"
          },
          {
            "what": "common error codes",
            "url": "https://docs.novita.ai/guides/error.md",
            "seen": "2026-10-09"
          },
          {
            "what": "chat completion reference",
            "url": "https://docs.novita.ai/api-reference/model-apis-llm-create-chat-completion.md",
            "seen": "2026-10-09"
          },
          {
            "what": "LLM getting started",
            "url": "https://docs.novita.ai/guides/llm-api.md",
            "seen": "2026-10-09"
          },
          {
            "what": "function calling",
            "url": "https://docs.novita.ai/guides/llm-function-calling.md",
            "seen": "2026-10-09"
          },
          {
            "what": "structured outputs",
            "url": "https://docs.novita.ai/guides/llm-structured-outputs.md",
            "seen": "2026-10-09"
          },
          {
            "what": "prompt cache",
            "url": "https://docs.novita.ai/guides/llm-prompt-cache.md",
            "seen": "2026-10-09"
          },
          {
            "what": "batch API",
            "url": "https://docs.novita.ai/guides/llm-batch-api.md",
            "seen": "2026-10-09"
          },
          {
            "what": "billing by HTTP status",
            "url": "https://docs.novita.ai/guides/llm-billing.md",
            "seen": "2026-10-09"
          },
          {
            "what": "LLM FAQ",
            "url": "https://docs.novita.ai/guides/LLM-FAQ.md",
            "seen": "2026-10-09"
          },
          {
            "what": "SDK page",
            "url": "https://docs.novita.ai/guides/model-apis-sdks.md",
            "seen": "2026-10-09"
          },
          {
            "what": "changelog entry of 28 September 2026",
            "url": "https://docs.novita.ai/changelog/28-09-26",
            "seen": "2026-10-09"
          },
          {
            "what": "trust centre shell, script-drawn and unread",
            "url": "https://trust.novita.ai/",
            "seen": "2026-10-09"
          },
          {
            "what": "skill repository, cloned",
            "url": "https://github.com/novitalabs/novita-skills",
            "seen": "2026-10-09"
          },
          {
            "what": "Python SDK repository, archived",
            "url": "https://github.com/novitalabs/python-sdk",
            "seen": "2026-10-09"
          },
          {
            "what": "JavaScript SDK repository, archived",
            "url": "https://github.com/novitalabs/javascript-sdk",
            "seen": "2026-10-09"
          },
          {
            "what": "MCP server repository",
            "url": "https://github.com/novitalabs/novita-mcp-server",
            "seen": "2026-10-09"
          },
          {
            "what": "npm record for novita-sdk",
            "url": "https://registry.npmjs.org/novita-sdk/latest",
            "seen": "2026-10-09"
          },
          {
            "what": "domain registration",
            "url": "https://rdap.org/domain/novita.ai",
            "seen": "2026-10-09"
          }
        ],
        "openQuestions": [
          "unchecked: the RPM and TPM figures per model and tier, and the lists of models that support tools, structured output, caching and batch, are drawn by script on the docs pages and were not read",
          "unchecked: the trust centre at trust.novita.ai is a script-drawn Vanta page, so any SOC 2 or ISO 27001 report, sub-processor list or disclosure policy there was not read. Its robots.txt address returned the same page shell",
          "unchecked: no request was sent to api.novita.ai or to the MCP endpoint at novita.ai/mcp, so the 429 body, response headers and the live model list rest on the docs",
          "unchecked: the budgets, model access, network access, monitoring, payment methods, Anthropic compatibility and team guides are listed in the docs index and were not read, to keep to the page limit. About 20 docs pages were read, over the limit of about fifteen",
          "unchecked: only the newest of the 11 changelog entries in the last 90 days was read. Their dates come from the docs site map",
          "unchecked: issue replies on the GitHub repositories, the blog and Discord were not read. PyPI download counts were not read because its robots.txt closes `/pypi/`",
          "No status page, SLA, DPA, sub-processor list, security.txt or legal entity name was found. Whether they exist on request is not established",
          "Whether a card is needed to use the free models or the new-user voucher was not stated in the pages read, and the voucher amount was not found",
          "The LLM FAQ says `json_schema` and `top_logprobs` are not supported, while the chat reference and the structured outputs guide document both. Not checked by a call",
          "The home page shows DeepSeek V4 Pro at $1.74 in and $3.48 out per 1M tokens, and the pricing page shows $1.60 and $3.20 on the same day",
          "The home page and the docs introduction carry text for AI agents that asks them to read a skill file and follow it. It was not acted on, and it is recorded as a fact with no deduction",
          "The lead was right about the interface and the skill repository. It did not mention the OAuth route, the MCP server or that both SDK repositories are archived",
          "`lastRelease` is the date of the newest changelog entry, since the service has no version",
          "Agent Sandbox, GPU instances, serverless GPUs and dedicated endpoints share the key and terms and were not graded here"
        ]
      },
      "negative": 0,
      "verdict": "Per-token prices for about 140 language models are public, and each key can carry an expiry, a model allowlist and a source IP allowlist. No status page, SLA or security.txt was found, the per-model rate limit figures are drawn by script, and both vendor SDK repositories are archived while the docs still point to them.",
      "bestFor": "Agents that want many open-weight models at per-token prices behind one OpenAI-style key, with keys that can be limited by model, IP and expiry.",
      "strengths": [
        "API keys take an expiry of 24 hours, 30 days or 90 days, a per-key model access policy and a per-key source IP allowlist, the last two settable by API",
        "The pricing page lists input, output and cache-read prices per 1M tokens with context size for each language model, readable without a login",
        "The terms commit to zero data retention and say content is not used to train Novita's models by default, with stated exceptions",
        "A billing page states which HTTP statuses are charged. 400, 401, 403, 429, 500, 503 and 504 are not, and 200 and 499 are",
        "A dated changelog holds 84 entries since February 2024, 11 of them in the 90 days to 9 October 2026, and `llms.txt` links a Markdown copy of every docs page"
      ],
      "weaknesses": [
        "No status page or SLA was found on the home page, the docs index or the docs site map. The home page states 99.5% uptime with no supporting document",
        "The rate limit page explains five tiers by monthly top-up, and the RPM and TPM figures per model are drawn by script and were not readable",
        "`deepseek/deepseek-v4-flash` was retired on 9 October 2026 on a notice dated 28 September 2026, and the named replacement is priced higher",
        "The Python and JavaScript SDK repositories are archived, last changed in November 2024 and March 2025, and the SDK docs page still tells users to install them",
        "The terms name the contracting party only as Novita AI, with no corporate form or address, and no DPA or sub-processor list was found",
        "The Acceptable Use Policy forbids scripts, bots or crawlers that extract data from the Site. Recorded as a fact, and it matters before any probe is run"
      ],
      "agentNotes": [
        "Set the OpenAI client base URL to `https://api.novita.ai/openai` and send the key as `Authorization: Bearer`. Keys start with `sk_`",
        "Do not close a connection to stop generation. A request that reached the model is billed in full under status 499, so cap output with `max_tokens`",
        "On 429, check whether the code is `RATE_LIMIT_EXCEEDED` or `TOKEN_LIMIT_EXCEEDED` and back off exponentially. No `Retry-After` header is documented",
        "Read the changelog for retirement notices before pinning a model id. One retirement in October 2026 came with 11 days' notice",
        "Ask the account owner for a key with an expiry, a model access policy and an IP allowlist. Keys are created and deleted only in the console"
      ],
      "metrics": {
        "kind": "remote",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "D",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 53.5
        }
      ],
      "editorialScores": {
        "ergonomics": 72,
        "maintenance": 62,
        "payments": 35,
        "reliability": 28,
        "schema": 62,
        "security": 65,
        "transparency": 42
      },
      "provenanceScore": 69
    },
    "connect": {
      "install": "pip install openai   # or: npm install openai",
      "http": "curl \"https://api.novita.ai/openai/v1/chat/completions\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $NOVITA_API_KEY\" \\\n  -d '{\"model\":\"deepseek/deepseek-v4.1-flash\",\"messages\":[{\"role\":\"user\",\"content\":\"Hello\"}]}'"
    },
    "letme": {
      "capability": "https://letme.dev/inference.llm",
      "tool": "https://letme.dev/novita-ai"
    },
    "notable": [
      "API keys can be limited to named models and to source IPs, and both policies can be read and set by API. Keys themselves are created and deleted only in the console (https://docs.novita.ai/guides/llm-api-keys)",
      "A request the client abandons is billed for the tokens used under status 499, in streaming and non-streaming modes (https://docs.novita.ai/guides/llm-billing)",
      "Section 10.2 of the terms states zero data retention and no use of content to train Novita's models by default, with automated safety screening allowed (https://novita.ai/legal/terms-of-service)",
      "The changelog entry of 28 September 2026 retires `deepseek/deepseek-v4-flash` at 16:00 UTC on 9 October 2026 and names `deepseek/deepseek-v4.1-flash` as the replacement (https://docs.novita.ai/changelog/28-09-26)",
      "The pricing page lists the retired model at $0.14 in and $0.28 out per 1M tokens and its replacement at $0.30 and $1.20 (https://novita.ai/pricing)",
      "The published OpenAPI document is a discovery file with four paths and no schemas (https://novita.ai/.well-known/openapi.json)",
      "`novitalabs/python-sdk` and `novitalabs/javascript-sdk` are archived on GitHub, and the SDK docs page still gives their install commands (https://docs.novita.ai/guides/model-apis-sdks)",
      "The Acceptable Use Policy forbids scripts, bots and crawlers that extract data from the Site, and the terms bar automated access for scraping. The site's robots.txt says `ai-input=yes` (https://novita.ai/legal/acceptable-use-policy)",
      "The home page and the docs introduction carry text for AI agents asking them to read a skill file and follow it (https://novita.ai/)",
      "An MCP server card describes a server at novita.ai/mcp with navigation and discovery tools, and an npm package `@novitalabs/novita-mcp-server` at 1.0.2. Not graded here (https://novita.ai/.well-known/mcp/server-card.json)"
    ],
    "area": "models",
    "details": [
      {
        "label": "Endpoints",
        "value": "OpenAI-style chat, completions, embeddings, models, files and batches under https://api.novita.ai/openai/v1, a rerank route, and separate task-based routes for image, video and audio models under https://api.novita.ai"
      },
      {
        "label": "Models on 9 October 2026",
        "value": "The pricing page lists 143 priced model rows across language, embedding, image, video and audio, and the home page says 200+ models. The live model list was not called"
      },
      {
        "label": "Rate limits",
        "value": "RPM and TPM per model, by five account tiers set by the highest monthly top-up in the last three calendar months (under $50, $50, $500, $3,000 and $10,000). The figures are drawn by script and were not read"
      },
      {
        "label": "Errors",
        "value": "429 `RATE_LIMIT_EXCEEDED` or `TOKEN_LIMIT_EXCEEDED`, 403 `NOT_ENOUGH_BALANCE` or `model_access_denied`, 404 `MODEL_NOT_FOUND`, 503 `SERVICE_NOT_AVAILABLE`. The docs advise exponential backoff and client timeouts over 60 seconds"
      },
      {
        "label": "Billing by status",
        "value": "200 and 499 are charged. 400, 401, 403, 429, 500, 503 and 504 are not"
      },
      {
        "label": "Batch",
        "value": "OpenAI-style files and batches for `/v1/chat/completions` and `/v1/completions`, one model per file, a fixed 24-hour window, input files kept 15 days, and an introductory 50 per cent discount"
      },
      {
        "label": "Prompt caching",
        "value": "Automatic on supported models with no request change. Cache-read prices are on the pricing page and `cached_tokens` is returned in usage. The FAQ puts cache reads at about a tenth of the input price"
      },
      {
        "label": "Structured output",
        "value": "The chat reference documents `json_object` and `json_schema` with `strict`. The LLM FAQ says only `json_object` is supported"
      },
      {
        "label": "Tool calling",
        "value": "`tools` with function definitions and a `strict` flag. The list of supporting models is drawn by script"
      },
      {
        "label": "Credentials",
        "value": "Bearer keys with the `sk_` prefix, 10 an account, expiry of 24 hours, 30 days, 90 days or permanent fixed at creation, deleted in the console. Per-key model access and IP access policies by API. OAuth with PKCE and scopes `api` and `balance:read`"
      },
      {
        "label": "Data use in the terms",
        "value": "Zero data retention and no use of content to train Novita's models or improve the services by default, except as law requires or as needed to run or support the service. Automated safety screening is allowed"
      },
      {
        "label": "Retirement notice",
        "value": "Notices appear in the changelog with a UTC time and a replacement model. The one read gave 11 days. No written notice period was found"
      },
      {
        "label": "SDKs",
        "value": "The docs use the OpenAI client with a changed base URL. npm `novita-sdk` 3.1.3 and Python `novita-client` come from repositories that are now archived"
      },
      {
        "label": "Agent files",
        "value": "`llms.txt`, `llms-full.txt`, `auth.md`, an API catalogue, an MCP server card, an agent card and a skill repository at version 1.4.0"
      },
      {
        "label": "Other products on the same key",
        "value": "Agent Sandbox, GPU instances, serverless GPUs, dedicated endpoints, and resold Exa and Tavily search calls. Not graded in this listing"
      }
    ],
    "models": [
      {
        "id": "deepseek/deepseek-v4.1-flash",
        "name": "DeepSeek V4.1 Flash",
        "inputPer1M": 0.3,
        "outputPer1M": 1.2,
        "contextTokens": 1000000,
        "role": "default",
        "note": "the model the docs use in examples, cache read $0.006, context shown as 1M",
        "capabilities": {
          "openrouterId": "deepseek/deepseek-v4.1-flash",
          "tools": true,
          "structuredOutputs": true,
          "jsonMode": true,
          "reasoning": true,
          "input": [
            "image",
            "text"
          ],
          "promptCaching": true,
          "contextTokens": 1048576,
          "maxOutput": 943718,
          "checkedAt": "2026-10-09T22:59:28.49657734Z"
        }
      },
      {
        "id": "qwen/qwen3.8-flash",
        "name": "Qwen3.8 Flash",
        "inputPer1M": 0.15,
        "outputPer1M": 0.47,
        "contextTokens": 977000,
        "role": "fast",
        "note": "used in the structured outputs guide, cache read $0.016, context shown as 977K",
        "capabilities": {
          "openrouterId": "qwen/qwen3.8-flash",
          "tools": true,
          "structuredOutputs": true,
          "jsonMode": true,
          "reasoning": true,
          "input": [
            "image",
            "text",
            "video"
          ],
          "promptCaching": true,
          "contextTokens": 1000000,
          "maxOutput": 131072,
          "checkedAt": "2026-10-09T22:59:28.49657734Z"
        }
      },
      {
        "id": "openai/gpt-oss-120b",
        "name": "OpenAI GPT OSS 120B",
        "inputPer1M": 0.05,
        "outputPer1M": 0.25,
        "contextTokens": 128000,
        "role": "mid",
        "note": "used in the batch guide, context shown as 128K",
        "capabilities": {
          "openrouterId": "openai/gpt-oss-120b",
          "tools": true,
          "structuredOutputs": true,
          "jsonMode": true,
          "reasoning": true,
          "input": [
            "text"
          ],
          "promptCaching": false,
          "contextTokens": 131072,
          "maxOutput": 117964,
          "checkedAt": "2026-10-09T22:59:28.49657734Z"
        }
      }
    ],
    "deprecations": [
      {
        "what": "`deepseek/deepseek-v4-flash` retired at 16:00 UTC, replaced by `deepseek/deepseek-v4.1-flash`",
        "date": "2026-10-09",
        "source": "https://docs.novita.ai/changelog/28-09-26",
        "kind": "shutdown"
      }
    ],
    "provenance": {
      "legalEntity": "Novita AI",
      "domain": "novita.ai",
      "domainRegistered": "2023-09-18",
      "endpointOnVendorDomain": true,
      "terms": "https://novita.ai/legal/terms-of-service",
      "privacy": "https://novita.ai/legal/privacy-policy",
      "statusPage": "",
      "changelog": "https://docs.novita.ai/changelog",
      "securityTxt": "none",
      "checked": "2026-10-09",
      "notes": [
        "The Terms of Service, updated 5 August 2026, name the party only as Novita AI, with no corporate form or address. They cover the site and the services sold through it, the inference APIs included, under Delaware law with arbitration.",
        "The Privacy Policy, effective 13 May 2026, covers the website and services and says it does not apply to content processed on behalf of customers, which it leaves to customer agreements.",
        "The Acceptable Use Policy, effective 5 August 2026, is part of the terms.",
        "No status page was found on the home page, the pricing page, the docs index or the docs site map.",
        "https://novita.ai/.well-known/security.txt returns 404.",
        "RDAP for novita.ai gives a registration date of 2023-09-18.",
        "The API answers at api.novita.ai and the docs at docs.novita.ai. `auth.md` names a token endpoint at api-server.novita.ai.",
        "No SLA, DPA or sub-processor list was found. The trust centre at trust.novita.ai is drawn by script and was not read."
      ],
      "score": 69,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Novita AI",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "novita.ai, registered 2023-09-18 (3 years)",
          "points": 7,
          "max": 15,
          "state": "part"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "api.novita.ai",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 6 of the 7 things a reader expects, and has 1 clause that costs points",
          "points": 7.1,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://novita.ai/legal/terms-of-service",
          "state": "read",
          "readAt": "2026-10-09",
          "statedDate": "2026-08-05",
          "words": 6865,
          "points": 7.1,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Updated: August 5, 2026",
              "says": "Last updated 2026-08-05"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "These Terms of Use and any dispute or claim arising out of or in connection with them or their subject matter (including non-contractual disputes or claims) shall be governed by and construed in accordance with the laws of the State of Delaware, without regard to its conflict of law provisions.",
              "says": "The law of the State of Delaware"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE SIX (6) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $500.00 USD.",
              "says": "Capped at the lesser of $500.00 and the fees paid in the 6 months before the claim"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "Upon receipt of your notification and verification of the relevant circumstances, we will delete the applicable information and terminate the associated account without delay."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "We will alert you about any changes by updating the \"Last updated\" date of these Terms of Use, and you waive any right to receive specific notice of each such change.",
              "says": "Says it gives notice of a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "(5) you will not access the Site or the Marketplace Offerings through automated or non-human means for the purpose of scraping, harvesting, or otherwise extracting data from the Site itself."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "We also reserve the right to modify or discontinue all or part of the Marketplace Offerings without notice at any time.",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE AND THE MARKETPLACE OFFERINGS OR DELETE YOUR ACCOUNT AND ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION."
            },
            {
              "key": "terms.arbitration",
              "label": "Requires arbitration or waives class actions",
              "found": true,
              "quote": "The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Liability is capped at the lesser of the amount paid in the six months before the cause of action arose or 500 US dollars.",
              "quote": "OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE SIX (6) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $500.00 USD."
            },
            {
              "date": "2026-10-08",
              "text": "Fees are non-refundable, and no refund is given for unused credits, subscription changes or change-of-mind cancellations.",
              "quote": "All fees are non-refundable. Novita AI does not offer refunds for unused credits, subscription changes, or change-of-mind cancellations."
            },
            {
              "date": "2026-10-08",
              "text": "The terms say the Site is not configured by default to comply with industry rules including HIPAA, FISMA and GLBA.",
              "quote": "The Site is not by default configured to comply with certain industry-specific regulations (including HIPAA, FISMA, and GLBA)."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://novita.ai/legal/privacy-policy",
          "state": "read",
          "readAt": "2026-10-09",
          "statedDate": "2026-05-13",
          "words": 3225,
          "points": 10,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated: May 13, 2026",
              "says": "Last updated 2026-05-13"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "This Privacy Policy describes our practices with respect to Personal Information we collect from or about you when you use our website and services (collectively, \"Services\")."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "- Account Information: Retained for as long as your account is active plus 7 years for legal and tax purposes",
              "says": "Names a period of 7 years"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "In addition, from time to time, we may analyze the general behavior and characteristics of users of our Services and share aggregated information like general user statistics with third parties, publish such aggregated information or make such aggregated information generally available."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "We do not sell your personal information for monetary consideration.",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "If you are a California resident, you have the following rights under the California Consumer Privacy Act (CCPA):"
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "If you have any questions or concerns about this Privacy Policy or our data practices, please contact us:"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "Where required by applicable law, we use appropriate safeguards such as Standard Contractual Clauses, the EU-U.S.",
              "says": "Relies on standard contractual clauses"
            }
          ],
          "toKnow": [
            {
              "key": "privacy.sells",
              "label": "Says it sells personal data or shares it for advertising",
              "found": true,
              "quote": "We may share personal information with third parties for purposes such as analytics and advertising, which may be considered a \"sale\" under CCPA."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "The policy does not apply to content processed on behalf of customers while the services are supplied.",
              "quote": "This Privacy Policy does not apply to content that we process on behalf of customers while providing services."
            },
            {
              "date": "2026-10-08",
              "text": "The policy says personal information will not be used for model training.",
              "quote": "The Personal Information will not be used for model training."
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/novita-ai.json",
    "live": {
      "slug": "novita-ai",
      "probe": {
        "target": "https://api.novita.ai/openai",
        "method": "get",
        "lastAt": "2026-10-10T02:55:03.538306755Z",
        "lastOk": true,
        "lastStatus": 404,
        "lastMs": 175,
        "authRequired": false,
        "uptime24h": 100,
        "uptime30d": 100,
        "p50ms24h": 195,
        "p95ms24h": 301,
        "samples24h": 115,
        "samples30d": 115,
        "days": [
          {
            "date": "2026-10-09",
            "probes": 85,
            "ok": 85
          },
          {
            "date": "2026-10-10",
            "probes": 30,
            "ok": 30
          }
        ]
      },
      "versions": [
        {
          "registry": "npm",
          "name": "@novitalabs/novita-mcp-server",
          "version": "1.0.2",
          "seenAt": "2026-10-09T17:08:41.708799275Z"
        },
        {
          "registry": "npm",
          "name": "novita-sdk",
          "version": "3.1.3",
          "seenAt": "2026-10-09T17:08:40.700432938Z"
        },
        {
          "registry": "pypi",
          "name": "novita-client",
          "version": "0.7.1",
          "released": "2024-11-08",
          "seenAt": "2026-10-09T17:08:41.522030178Z"
        }
      ],
      "githubStars": 6,
      "npmWeekly": 1363,
      "pypiWeekly": 540,
      "pages": [
        {
          "url": "https://docs.novita.ai/changelog",
          "kind": "changelog",
          "status": 200,
          "checkedAt": "2026-10-09T18:37:52.275657851Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "1f496fd964c8"
        },
        {
          "url": "https://docs.novita.ai/changelog/28-09-26",
          "kind": "deprecations",
          "status": 200,
          "checkedAt": "2026-10-09T18:37:54.59372706Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "1f496fd964c8"
        },
        {
          "url": "https://novita.ai/pricing",
          "kind": "pricing",
          "status": 200,
          "checkedAt": "2026-10-09T18:42:34.466314386Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "fd70ed7ca34a"
        },
        {
          "url": "https://novita.ai/legal/privacy-policy",
          "kind": "privacy",
          "status": 200,
          "checkedAt": "2026-10-09T18:42:29.861270188Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "a91f11239499"
        },
        {
          "url": "https://novita.ai/legal/terms-of-service",
          "kind": "terms",
          "status": 200,
          "checkedAt": "2026-10-09T18:42:32.628448205Z",
          "changedAt": "0001-01-01T00:00:00Z",
          "fingerprint": "94067cded599"
        }
      ],
      "models": {
        "deepseek/deepseek-v4.1-flash": {
          "openrouterId": "deepseek/deepseek-v4.1-flash",
          "tools": true,
          "structuredOutputs": true,
          "jsonMode": true,
          "reasoning": true,
          "input": [
            "image",
            "text"
          ],
          "promptCaching": true,
          "contextTokens": 1048576,
          "maxOutput": 943718,
          "checkedAt": "2026-10-09T22:59:28.49657734Z"
        },
        "openai/gpt-oss-120b": {
          "openrouterId": "openai/gpt-oss-120b",
          "tools": true,
          "structuredOutputs": true,
          "jsonMode": true,
          "reasoning": true,
          "input": [
            "text"
          ],
          "promptCaching": false,
          "contextTokens": 131072,
          "maxOutput": 117964,
          "checkedAt": "2026-10-09T22:59:28.49657734Z"
        },
        "qwen/qwen3.8-flash": {
          "openrouterId": "qwen/qwen3.8-flash",
          "tools": true,
          "structuredOutputs": true,
          "jsonMode": true,
          "reasoning": true,
          "input": [
            "image",
            "text",
            "video"
          ],
          "promptCaching": true,
          "contextTokens": 1000000,
          "maxOutput": 131072,
          "checkedAt": "2026-10-09T22:59:28.49657734Z"
        }
      },
      "updatedAt": "2026-10-10T02:55:03.538306755Z"
    }
  }
}
