{
  "schema_version": 1,
  "public_model_id": "google/gemini-3.8-flash",
  "canonical_page": "https://www.maxapi.dev/models/google/gemini-3.8-flash",
  "reviewed_at": "2026-10-25",
  "generated_at": "2026-10-26T14:21:27.958Z",
  "scope": "Checked against MaxAPI's public catalogue, gateway implementation and local regression cases. Shared gateway checks are not separate end-to-end tests of every listed model. This is an integration reference, not a live upstream availability or performance report.",
  "summary": "Gemini 3.8 Flash is listed as google/gemini-3.8-flash. Use the Gemini-native request format in the example below, then read candidates and usageMetadata from the response. Model access, routing and account limits are separate from the task instructions you put in contents.",
  "aliases": [],
  "model_profile": {
    "family_id": "google/gemini-3.8-flash",
    "reviewed_at": "2026-10-25",
    "title": "Coding and multi-step reasoning with Flash",
    "provider_positioning": "Gemini 3.8 Flash is a stable text-output model. Google's limits are 1,048,576 input tokens and 65,536 output tokens. MaxAPI provides the Gemini-native endpoint on the official-cheap route; upstream limits do not guarantee every relay capability.",
    "selection_advice": "Evaluate it for code review, document analysis and tasks that refine an answer over several turns. Keep the task and acceptance criteria fixed when comparing it with Gemini 3.5 Flash.",
    "limitations": "Thinking supports low, medium and high; minimal is not supported. Output billing includes thinking tokens. Start with optional settings omitted. The website composer accepts text; API multimodal inputs and tools need validation for your workflow.",
    "suggested_use_cases": [
      {
        "title": "Review a bounded code change",
        "body": "Provide the diff, expected behavior and actual test output. Ask for issues supported by that evidence."
      },
      {
        "title": "Compare document requirements",
        "body": "Supply the relevant passages and require source references for each claimed conflict or missing requirement."
      },
      {
        "title": "Continue an account conversation",
        "body": "Save a conversation to your MaxAPI account, then resume it on another device with the same model."
      }
    ],
    "example_prompt": {
      "title": "Review retry behavior",
      "text": "Review this policy: after a generation request times out, the client always submits a new request without checking whether the first completed. State the failure risk, one safe correction and a verification plan. Separate facts from assumptions and do not claim tests were run.",
      "review": "Check that retries account for an unknown first outcome and that the plan includes observable checks."
    },
    "scope": "Provider capabilities describe the model, not the complete MaxAPI feature set. Use the parameters, input types and routes documented for this MaxAPI entry. Vendor speed or quality descriptions are not service-level guarantees.",
    "variant_note": null,
    "sources": [
      {
        "label": "Google · gemini-3.8-flash",
        "url": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash"
      }
    ]
  },
  "illustration": {
    "url": "https://www.maxapi.dev/model-guides/gemini38-20261025/gemini-3-8-flash.webp",
    "alt": "Illuminated optical prism connecting code tiles, document sheets and a film panel",
    "caption": "Evidence-driven reasoning concept: connect supplied material before drawing a conclusion.",
    "provenance": "ai_generated_editorial_concept",
    "is_output_from_named_model": false,
    "is_benchmark": false
  },
  "illustrations": [
    {
      "section": "usecases",
      "url": "https://www.maxapi.dev/model-guides/gemini38-20261025/gemini-3-8-flash.webp",
      "alt": "Illuminated optical prism connecting code tiles, document sheets and a film panel",
      "caption": "Evidence-driven reasoning concept: connect supplied material before drawing a conclusion.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "features",
      "url": "https://www.maxapi.dev/model-guides/gemini38-20261025/practice.webp",
      "alt": "Blue circuit module, notebook and three translucent evidence cards on a workbench",
      "caption": "Prepare the change, constraints and test evidence before asking for a review.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "prompts",
      "url": "https://www.maxapi.dev/model-guides/gemini38-20261025/prompt.webp",
      "alt": "Two blue courier vehicles at a glass gate with an amber waiting light",
      "caption": "Retry-policy concept: check the first request's outcome before starting another.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    },
    {
      "section": "workflow",
      "url": "https://www.maxapi.dev/model-guides/gemini38-20261025/workflow.webp",
      "alt": "Blue engineering assembly, inspection loupe and three verification blocks",
      "caption": "Verification concept: inspect a bounded change against explicit acceptance criteria.",
      "width": 1536,
      "height": 1024,
      "provenance": "ai_generated_editorial_concept",
      "is_output_from_named_model": false,
      "is_benchmark": false
    }
  ],
  "configured_facts": [
    {
      "label": "Request model ID",
      "value": "google/gemini-3.8-flash",
      "code": true
    },
    {
      "label": "Output type",
      "value": "Language"
    },
    {
      "label": "Base URL",
      "value": "https://api.maxapi.dev",
      "code": true
    },
    {
      "label": "Generation workflow",
      "value": "Gemini-compatible generateContent"
    }
  ],
  "integration_checklist": {
    "reviewedAt": "2026-10-25",
    "labels": {
      "title": "Check your first result",
      "requestTitle": "Send the right fields",
      "responseTitle": "Read the actual result",
      "example": "Illustrative response shape — not a live result",
      "poll": "Query the existing task",
      "reviewed": "Request-contract review",
      "nativeRequest": "Alternative: a Gemini-native request",
      "nativeResult": "Gemini-native result shape — illustrative only"
    },
    "scope": "Checked against the public catalogue and gateway code. Examples are structural illustrations, not paid model tests, latency measurements or a guarantee that every route is currently available.",
    "requestChecks": [
      {
        "field": "POST /v1beta/models/gemini-3.8-flash:generateContent",
        "body": "Use the short model ID in the URL and contents[].parts[].text in the body. This is a language endpoint, not an image-generation request."
      },
      {
        "field": "X-MaxAPI-Route-Mode",
        "body": "If you need an explicit route, use this header, not a route_mode field in the Gemini body. A configured API-key route list still takes priority over the header."
      },
      {
        "field": "generationConfig",
        "body": "The minimal example omits optional thinking, tools and output-schema settings. Add only options supported by this exact model and route; a short prompt is not a fixed-cost quote."
      }
    ],
    "responseChecks": [
      {
        "field": "candidates / finishReason / promptFeedback",
        "body": "Read the candidate text parts, finish reason and any prompt feedback. Handle missing candidates or an interrupted answer explicitly; HTTP success alone is not an accepted answer."
      },
      {
        "field": "usageMetadata",
        "body": "Use returned usage and MaxAPI billing records to verify spend. Do not turn the catalogue price per million tokens into a fixed price per response, or invent missing token counts."
      },
      {
        "field": ":streamGenerateContent",
        "body": "MaxAPI currently waits for the complete result, then emits one SSE data event. This provides response-format compatibility, not progressive token streaming. Do not design typing indicators around immediate first-token delivery."
      }
    ],
    "sample": {
      "candidates": [
        {
          "content": {
            "role": "model",
            "parts": [
              {
                "text": "Illustrative answer only."
              }
            ]
          },
          "finishReason": "STOP"
        }
      ]
    }
  },
  "pricing_scope": "1 credit = US$1. These are catalogue base rates, not a live account quote. Account multipliers and the active billing configuration determine the final charge. Token rates are not a fixed price per image.",
  "pricing_index": "https://www.maxapi.dev/pricing.json",
  "routing_rules": [
    {
      "title": "Which route wins?",
      "body": "Routing priority is: the API key's configured route_modes list → an explicitly requested route → the model's default route. A non-empty key list takes precedence over route_mode in the request. To test a specific route, check the key configuration first; changing the request alone may not change the route used."
    },
    {
      "title": "RPM is shared at account level",
      "body": "An account's positive RPM limit covers its API keys together. A key can impose a stricter limit, but a higher key limit does not override the user limit. For example, a user limit of 200 RPM is not 200 RPM for each key. Service-level RPM and concurrency controls also apply; adding keys is not a way to bypass them."
    }
  ],
  "troubleshooting": [
    {
      "code": "429",
      "title": "rate_limit_exceeded / capacity_exhausted",
      "meaning": "429 can represent account/key RPM, service-wide capacity or generation capacity. Use Retry-After and available X-RateLimit-* / X-Global-* headers to distinguish them; one status code does not identify one unique cause.",
      "action": "Respect Retry-After when present, reduce request rate or active concurrency as appropriate, and use bounded backoff. Do not treat the site's total capacity as your account's personal quota."
    }
  ],
  "verification": {
    "environment": "local_mock_requests_and_test_storage",
    "coverage": "shared_gateway_components_not_each_model_end_to_end",
    "paid_upstream_calls": 0,
    "reviewed_at": "2026-10-25",
    "cases": [
      {
        "key": "shared-user-rpm",
        "title": "Multiple keys share the user limit",
        "input": "Use two keys owned by the same account against an in-memory limiter with a small user quota.",
        "result": "Requests across the keys consume the same user quota; subsequent requests are limited. A larger key quota does not override the user quota, and a smaller key quota remains effective."
      }
    ],
    "limitations": "Local tests use simulated requests, responses and test storage; they do not call paid model channels. They verify request handling, not model image quality, live success rates, latency or end-to-end support for the maximum reference count. The concept illustrations elsewhere on this page are not these test outputs."
  },
  "sources": {
    "maxapi_documentation": "https://www.maxapi.dev/docs",
    "catalogue": "https://www.maxapi.dev/models.json",
    "provider_documentation": "https://ai.google.dev/gemini-api/docs/models/gemini-3.8-flash"
  }
}
