gpt-6-astra appears in the OpenAI SDK: the new ChatModel ID and the Safety Alerts API
openai-python v3.8.0 and openai-node v7.10.0 (2026-09-03) added gpt-6-astra to the ChatModel enum ahead of the GPT-5.6 tiers, plus a Safety Alerts API and misalignment error details. This article only states what SDK source shows.
On 2026-09-03, OpenAI's two official SDKs shipped a feature release on the same day: openai-python v3.8.0 and openai-node v7.10.0 (both published at 19:50 UTC), with release notes carrying the same headline — "add gpt-6-astra and related features". The release wrote a model ID that had never appeared in the type layer into both packages' ChatModel enum, and landed an entirely new capability surface alongside it: a Safety Alerts API, misalignment error details, and two new webhook events.
Let's set the ground rules first: this article only states what can be pointed to, verbatim, in SDK source. Every citation comes from GitHub release notes, PR diffs, and tag source re-fetched on 2026-09-10 (see officialReferences at the end). OpenAI's documentation domains returned 403 to this site that day, so anything touching official-announcement-side status is date-anchored and carries no claims beyond what was verified.
Update (2026-09-15): the "unreleased" boundary has since moved — GPT-6-Astra shipped with Codex CLI 0.154.0 (2026-09-09) into the model picker (ranked first) and the Amazon Bedrock catalogs, and the bundled official migration guide confirms Responses API calls with
model: gpt-6-astra. The type-layer analysis below still stands. For current status and the migration checklist, see GPT-6-Astra Goes Live: Codex Model Picker and Amazon Bedrock Catalogs.
1. Overview: what we can and cannot confirm
gpt-6-astra is a new model ID that appeared in the type layer of OpenAI's official SDKs on 2026-09-03: openai-python v3.8.0 and openai-node v7.10.0 list it in the ChatModel type enum ahead of the GPT-5.6 tiers, and doc examples were swapped to it. As verified on 2026-09-10, OpenAI has not announced its release status, pricing, or capabilities on any publicly loadable channel.
Drawing the boundary takes one table:
| Dimension | Status |
|---|---|
| The ID is in the SDK type enum | ✅ Reproducible (v3.8.0 / v7.10.0, both packages) |
| Enum order puts it ahead of the GPT-5.6 tiers | ✅ Reproducible |
| Doc examples swapped to the ID | ✅ Reproducible (request / response / fine-tuning examples) |
| Safety Alerts API and related features in the same PR | ✅ Reproducible (same PR diff) |
| Released and callable | ❓ No type-layer evidence; official channels unverifiable for this site that day |
| Pricing, context window, capabilities | ❓ SDK types contain none of this |
| Relationship to the GPT-5.6 family | ❓ No official statement |
For the three "❓" rows, this article does not speculate. That is not conservatism — it is the only correct posture for this kind of coverage: SDK types are generated (both packages' source headers read generated from our OpenAPI spec), so they prove "it is in the spec," not "it is being served."
2. gpt-6-astra in the type enum: three reproducible facts
2.1 Added to ChatModel, ahead of the GPT-5.6 tiers
Python side, src/openai/types/shared/chat_model.py (v3.8.0 tag):
ChatModel: TypeAlias = Literal[
"gpt-6-astra",
"gpt-5.6-sol",
"gpt-5.6-terra",
"gpt-5.6-luna",
...
]
Node side, src/resources/shared.ts (v7.10.0 tag):
export type ChatModel =
| 'gpt-6-astra'
| 'gpt-5.6-sol'
| 'gpt-5.6-terra'
| 'gpt-5.6-luna'
The enum order matches across both packages: gpt-6-astra is listed before gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna. The ordering itself is a reproducible fact; why it is ordered that way the source does not say, and neither do we.
2.2 Doc examples swapped wholesale
Across the PR #3791 (Python) / #2582 (Node) diffs, gpt-6-astra appears on 326 / 241 lines respectively (grep count, 2026-09-10) — all concentrated in documentation examples: model parameters in example requests, model fields in example response objects, streaming chunk examples, fine-tuning job examples. The previous example model was gpt-5.6-sol. In other words, OpenAI replaced the "example model" of its official API documentation with an unannounced ID — a stronger signal than an enum addition, but still a spec-layer signal, not a release announcement.
2.3 No snapshot, no alias, no pricing fields
The enum contains only bare gpt-6-astra — no snapshot variant in the gpt-6-astra-YYYY-MM-DD form, and no pricing or positioning metadata anywhere in the model types (when GPT Image 2.5 landed, there were at least quality-tier changes to read). That is all the type layer gives up.
3. The Safety Alerts API shipped in the same release
The largest of the "related features" is a capability surface that did not exist before: Safety Alerts. It turns "a request triggered a safety block" into a queryable object.
3.1 Endpoint and object
- Endpoint:
GET /v1/safety/alerts/{id}, spec summary "Retrieve a safety alert", description verbatim: "Get a safety alert belonging to the authenticated API project." - SDK method:
client.safety.alerts.retrieve(id) -> SafetyAlert - Fields of the
safety.alertobject (src/openai/types/safety/safety_alert.py, v3.8.0 tag):
| Field | Type | Meaning (per SDK docstrings) |
|---|---|---|
id | str | Alert ID; example shows an alert_ prefix |
created_at | int | Unix timestamp (seconds) |
error_type | Literal, 4 values | See below |
model | str | The model that triggered the alert; the example response shows gpt-6-astra |
object | Literal["safety.alert"] | Object type discriminator |
reason | Optional[str] | A customer-safe description derived from error_type; null for zero data retention requests |
request_id / response_id | str | Associated request and response IDs |
request_paused | bool | See 3.3 — the SDK docstring qualifies it carefully |
The 4 error_type values:
potentially_unintended_data_transferpotentially_unintended_data_accesspotentially_unintended_destructive_activityother
One more sentence from the spec deserves underlining: "An optional classification; clients must accept additional values" — clients must survive future enum values, so leave a default branch in any exhaustive switch.
3.2 Two webhook events
The same release added two webhooks:
safety.alert.created: "Sent when an approved safety alert is available for an API project." (project scope)safety.org_alert.created: "Sent when an approved safety alert is available for an enterprise workspace." (enterprise workspace scope)
Alerts can therefore be pushed, not just pulled, once approved — wiring safety events into an existing event-driven architecture is now possible.
3.3 The request_paused docstring deserves its own section
The SDK docstring for request_paused reads, verbatim:
Whether block registration succeeded for this request. This does not confirm that response execution stopped.
In plain terms: the field only tells you the block was registered — it does not confirm the response execution actually stopped. OpenAI drawing an assertion boundary inside its own generated type docs is not something you see every day. Teams building security auditing, alerting, or automatic kill switches should treat that sentence as implementation semantics: do not treat request_paused == true as proof the request was successfully blocked.
4. Misalignment error details and steer instructions
The same PRs added an optional misalignment field to ErrorObject, structuring "model behavior deviated from expectations" errors:
class Misalignment(BaseModel):
detailed_explanation: Optional[str] = None # The public explanation for this block.
error_type: ... # Same 4-value classification as safety alerts
steer: Optional[MisalignmentSteer] = None # An optional public continuation instruction.
class MisalignmentSteer(BaseModel):
message: str # The public continuation instruction.
Three components: a public explanation (why the block happened), a classification (4 extensible values), and a steer instruction (a publicly usable message telling clients how to steer the conversation after a block). The API spec also gained a new error code, misalignment_policy_violation. The structure means a safety block is no longer just an error string — clients can programmatically distinguish block reasons and even receive an official suggestion for what to ask next.
5. Other related features
A few more spec changes from the same PRs worth noting:
- context_management type rename:
ContextManagementwas renamed toResponseCreateContextManagement, with the old name kept as a backward-compatible export. Field semantics are unchanged:typecurrently supports onlycompaction, plus a token threshold field that triggers compaction. - Hot updates to reasoning effort in beta responses: the response configuration update gained a
reasoningfield, spec text "Updates to reasoning configuration. Only effort is supported" —reasoning.effortfor subsequent responses can change mid-session, until the next update. - New error code
invalid_subject_token: credential validation failures now have a dedicated error code.
6. What we cannot confirm, and how to verify it yourself
To be explicit about the three things this article does not claim: whether gpt-6-astra is released and callable, its pricing and context window, and its relationship to GPT-5.6. As verified on 2026-09-10, OpenAI's documentation domains (developers.openai.com / platform.openai.com / help.openai.com / openai.com) all returned 403 to this site, so changelog-side and pricing-page status could not be checked; the SDK type layer contains none of it, and we do not infer from the name.
Update (2026-09-15): two of the three now have answers via the official migration guide bundled with Codex CLI 0.154.0 — the Responses API accepts the model, and the role mapping is Sol→Astra with Terra/Luna retained (see the update note at the top). Pricing figures remained absent from loadable channels as of that day.
Reproducing the facts in this article takes two commands (any environment that can reach GitHub raw):
# Fact 1: the first line of the ChatModel enum is gpt-6-astra
curl -s https://raw.githubusercontent.com/openai/openai-python/v3.8.0/src/openai/types/shared/chat_model.py | head -12
# Fact 2: the full SafetyAlert type with its docstrings
curl -s https://raw.githubusercontent.com/openai/openai-python/v3.8.0/src/openai/types/safety/safety_alert.py
To track what happens next, watch three signals (in order of trust): the ID appearing on the official changelog or pricing page, snapshot variants or pricing-related fields appearing in the SDK, and subsequent additions and removals in the ChatModel enum. If any of them happens, this site will follow up in the model release notes.
7. Common pitfalls
- Treating an enum addition as a release announcement: an ID in
ChatModeldoes not mean the model is released. Generated specs have always contained unlaunched capability surfaces; "usable" is always decided by the official changelog and pricing page. - Hardcoding gpt-6-astra in production: an unannounced ID can vanish from the enum or simply fail to resolve. If you must experiment, put it behind a feature flag and handle model-not-found style errors.
- Exhaustive switches over error_type without a default branch: the spec says clients must accept additional values — your code must not break when a new value appears.
- Treating request_paused as proof of a successful block: the SDK docstring states it does not confirm execution stopped; see 3.3.
- Broken ContextManagement imports after upgrading: the type is
ResponseCreateContextManagementas of v3.8.0; the old name is still exported for compatibility, but new code should use the new name.
8. Next steps
- GPT-6-Astra Goes Live: Codex Model Picker and Amazon Bedrock Catalogs: the 2026-09-15 follow-up — the picker, the Bedrock catalogs, and the official migration guide, fully unpacked.
- OpenAI API Key Expiration: expires_in_seconds, Org Policies, and Safe Automation: the other batch of SDK type-layer changes that same week (v3.11.0 / v7.13.0), fully unpacked.
- openai-python 3.9/3.10 and openai-node 7.11/7.12: Prompt Cache Diagnostics, API Key Expiry, GPT Image 2.5: the four SDK releases that followed immediately after.
- OpenAI Models Release Notes (2026, Living Document): the timeline for the GPT-5.6 family and all model releases; if gpt-6-astra is ever announced, it will be tracked there.
- The complete guide to GPT models (2026-07): GPT-5.6 Sol, Terra, Luna: the selection guide for the currently shipped flagship family.
Key points
- gpt-6-astra is in the ChatModel type enum of openai-python v3.8.0 and openai-node v7.10.0, listed ahead of gpt-5.6-sol / gpt-5.6-terra / gpt-5.6-luna (since 2026-09-03; reproducible from both packages' tag source)
- The same PRs (#3791 / #2582) added a Safety Alerts API: GET /v1/safety/alerts/{id} returning a safety.alert object with a 4-value error_type enum
- Two new webhook events: safety.alert.created (API project scope) and safety.org_alert.created (enterprise workspace scope)
- ErrorObject gained an optional misalignment field: a public explanation, the same 4-value classification, and a steer public continuation instruction; the API spec also gained a misalignment_policy_violation error code
- The SDK docstring for request_paused states it only confirms block registration, not that response execution stopped — the generated docs draw their own assertion boundary
- As of 2026-09-10 there is no type-layer evidence of release status, pricing, or capability window; every fact in this article can be pointed to in the openai-python v3.8.0 tag source
Frequently asked questions
Official references
- Changelogopenai-python v3.8.0 Release Notes (GitHub)
- Changelogopenai-node v7.10.0 Release Notes (GitHub)
- Docsopenai-python PR #3791: add gpt-6-astra and related features
- Docsopenai-node PR #2582: add gpt-6-astra and related features
- Docsopenai-python v3.8.0 chat_model.py (ChatModel enum source)
- Docsopenai-python v3.8.0 safety_alert.py (SafetyAlert type source)
Related articles
GPT-6-Astra Goes Live: Codex Model Picker and Amazon Bedrock Catalogs
Codex CLI 0.154.0 (2026-09-09) lists GPT-6-Astra first in its model picker and adds it to Amazon Bedrock; a bundled official guide confirms Responses API usage and six reasoning levels topped by ultra. Pricing figures remain unpublished.
Read articlereasoning.effort in Practice: Making Reasoning Depth a Tunable Parameter
Same model, adjustable thinking depth. This tutorial covers the reasoning.effort syntax, per-tier scenarios, how it interacts with max_output_tokens and the incomplete status, and the cost consequences of getting it wrong.
Read articleGPT-5.6 vs Claude 4.5 Sonnet vs Gemini 2.5 Pro: 2026-08 production comparison
GPT-5.6 / Claude 4.5 Sonnet / Gemini 2.5 Pro flagship models compared: code / multimodal / long context / long reasoning / tool use / price. Third-party benchmarks + real scenario tests. Multi-model selection decision matrix.
Read articleSubscribe to GPTMap Weekly
One email every Monday: curated OpenAI updates, deep dives, and best practices. No ads, unsubscribe anytime.
Submitting opens Buttondown in a new tab to confirm your subscription.