<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: AI Relay Check</title>
    <description>The latest articles on DEV Community by AI Relay Check (@airelaycheck).</description>
    <link>https://dev.to/airelaycheck</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4146705%2Febccd17f-632e-459e-97f5-7af37fae16b5.png</url>
      <title>DEV Community: AI Relay Check</title>
      <link>https://dev.to/airelaycheck</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/airelaycheck"/>
    <language>en</language>
    <item>
      <title>A Model List Does Not Prove a Codex Relay Supports the Responses API</title>
      <dc:creator>AI Relay Check</dc:creator>
      <pubDate>Fri, 02 Oct 2026 16:40:22 +0000</pubDate>
      <link>https://dev.to/airelaycheck/a-model-list-does-not-prove-a-codex-relay-supports-the-responses-api-2e5k</link>
      <guid>https://dev.to/airelaycheck/a-model-list-does-not-prove-a-codex-relay-supports-the-responses-api-2e5k</guid>
      <description>&lt;p&gt;An OpenAI-compatible &lt;code&gt;/v1/models&lt;/code&gt; response is useful discovery evidence, but it&lt;br&gt;
does not prove that the same key can complete a Codex workflow. Model discovery,&lt;br&gt;
Chat Completions, the Responses API, streaming, tool calls, and client-specific&lt;br&gt;
gateways may use different routes or permissions.&lt;/p&gt;

&lt;p&gt;AI Relay Check therefore records compatibility as a specific combination of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;provider;&lt;/li&gt;
&lt;li&gt;model ID;&lt;/li&gt;
&lt;li&gt;recorded protocol;&lt;/li&gt;
&lt;li&gt;test key and route;&lt;/li&gt;
&lt;li&gt;timestamp;&lt;/li&gt;
&lt;li&gt;generation outcome.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Current evidence scope
&lt;/h2&gt;

&lt;p&gt;The current public Codex guide contains GPT-family samples from six paid test&lt;br&gt;
accounts. Three providers have samples recorded with the Responses protocol.&lt;br&gt;
Across those Responses-labeled records, 50 of 64 requests completed&lt;br&gt;
successfully. The latest included GPT sample is dated October 1, 2026.&lt;/p&gt;

&lt;p&gt;These figures are dated test samples. They are not uptime percentages and do not&lt;br&gt;
prove that every Codex client feature or route group works.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five checks before choosing a Codex relay
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Confirm the exact base URL
&lt;/h3&gt;

&lt;p&gt;Use the HTTPS base URL assigned to the tested product and route group. A&lt;br&gt;
provider may expose different endpoints for a general OpenAI-compatible API,&lt;br&gt;
Codex-only keys, subscriptions, and pooled routes.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Test the generation endpoint
&lt;/h3&gt;

&lt;p&gt;Determine whether the route uses &lt;code&gt;/v1/responses&lt;/code&gt;,&lt;br&gt;
&lt;code&gt;/v1/chat/completions&lt;/code&gt;, or a client-specific gateway. A model-list request can&lt;br&gt;
pass while the required generation endpoint returns 400, 404, 429, or 503.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Fix the model ID and key group
&lt;/h3&gt;

&lt;p&gt;Run the exact model needed by the project and record the group assigned to the&lt;br&gt;
test key. A successful request from one group should not be attributed to a&lt;br&gt;
different provider-published price group.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Verify streaming and tools separately
&lt;/h3&gt;

&lt;p&gt;A basic text response does not establish streaming, tool calls, structured&lt;br&gt;
output, or the complete Codex client workflow. Test the features the application&lt;br&gt;
actually depends on.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Keep compatibility and billing separate
&lt;/h3&gt;

&lt;p&gt;Preserve returned token fields and compare a controlled request with the&lt;br&gt;
provider's account meter or wallet. A successful response does not prove that&lt;br&gt;
the published input, output, cache, or subscription rate was applied.&lt;/p&gt;

&lt;h2&gt;
  
  
  Public evidence
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/guides/codex-api-relay" rel="noopener noreferrer"&gt;Codex and Responses API test guide&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/compare/gpt" rel="noopener noreferrer"&gt;GPT and Codex relay comparison&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/reports/model-compatibility" rel="noopener noreferrer"&gt;Model compatibility matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/reports/billing-reconciliation" rel="noopener noreferrer"&gt;Ten-request billing reconciliation&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The right question is not whether a relay lists a GPT model. The useful question&lt;br&gt;
is whether the exact model, key group, generation endpoint, and required Codex&lt;br&gt;
features completed under recorded conditions. Billing and model identity still&lt;br&gt;
require separate evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; AI Relay Check has referral relationships with some tested&lt;br&gt;
providers. Referral status is excluded from request outcomes and ranking&lt;br&gt;
weights. Unverified model identity, route provenance, and billing remain&lt;br&gt;
explicitly labeled.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>openai</category>
      <category>api</category>
      <category>testing</category>
    </item>
    <item>
      <title>A Relay Website Can Be Online While Its AI API Still Returns 400, 404, 429, or 503</title>
      <dc:creator>AI Relay Check</dc:creator>
      <pubDate>Tue, 29 Sep 2026 08:34:21 +0000</pubDate>
      <link>https://dev.to/airelaycheck/a-relay-website-can-be-online-while-its-ai-api-still-returns-400-404-429-or-503-486f</link>
      <guid>https://dev.to/airelaycheck/a-relay-website-can-be-online-while-its-ai-api-still-returns-400-404-429-or-503-486f</guid>
      <description>&lt;p&gt;Opening an AI API relay provider's website proves only that its web entry point is reachable. It does not prove that a specific model, route, and protocol can complete an API request.&lt;/p&gt;

&lt;p&gt;At AI Relay Check, every result is scoped to a &lt;strong&gt;provider + model + protocol + timestamp&lt;/strong&gt;. This keeps one failed model from being misreported as a provider-wide outage.&lt;/p&gt;

&lt;h2&gt;
  
  
  Current evidence scope
&lt;/h2&gt;

&lt;p&gt;The public dataset currently contains &lt;strong&gt;231 privacy-reviewed API samples&lt;/strong&gt;: 168 passed and 63 failed. Failure sequences grouped by the same provider, model, and protocol form &lt;strong&gt;13 observed failure episodes&lt;/strong&gt;. The dataset includes HTTP 400, 404, 503, and timeout samples.&lt;/p&gt;

&lt;p&gt;These are dated observations, not a guarantee of future behavior and not evidence about routes that were not tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  Four checks that should not be collapsed into one score
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Evidence&lt;/th&gt;
&lt;th&gt;What it establishes&lt;/th&gt;
&lt;th&gt;What it does not establish&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Website or console responds&lt;/td&gt;
&lt;td&gt;The web service was reachable&lt;/td&gt;
&lt;td&gt;A target model can generate&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Model ID appears in &lt;code&gt;/v1/models&lt;/code&gt;
&lt;/td&gt;
&lt;td&gt;The key can see that model ID&lt;/td&gt;
&lt;td&gt;Generation permission, identity, or stability&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Minimal generation request passes&lt;/td&gt;
&lt;td&gt;That key, route, protocol, and model worked at that time&lt;/td&gt;
&lt;td&gt;Long-term reliability or billing accuracy&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Account meter or ledger changes&lt;/td&gt;
&lt;td&gt;The tested request produced an observed account charge&lt;/td&gt;
&lt;td&gt;Pricing on other routes or subscription plans&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  HTTP 400: request or compatibility mismatch
&lt;/h2&gt;

&lt;p&gt;A 400 response may mean that the route rejects the model name, request fields, tool-call format, or another protocol-specific parameter. Start with a minimal request using a fixed model and protocol, then add parameters one at a time.&lt;/p&gt;

&lt;p&gt;One 400 sample is not evidence that the entire provider is down.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTP 404: not necessarily a missing website
&lt;/h2&gt;

&lt;p&gt;An API can return 404 while the provider homepage still returns 200. Common causes include a wrong endpoint, an unavailable model route, or a protocol path such as &lt;code&gt;/v1/responses&lt;/code&gt; that the provider has not implemented.&lt;/p&gt;

&lt;p&gt;Record the endpoint, model, and protocol together. Homepage status alone cannot diagnose an API 404.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTP 429: rate limit, quota, or account state
&lt;/h2&gt;

&lt;p&gt;A 429 response can indicate request-rate limits, concurrency limits, route quota, or account allowance. The status code alone cannot reliably distinguish temporary throttling from insufficient balance.&lt;/p&gt;

&lt;p&gt;Useful evidence includes the account-side usage record, the route's pricing rule, and a later independent retest.&lt;/p&gt;

&lt;h2&gt;
  
  
  HTTP 503: no usable upstream at that moment
&lt;/h2&gt;

&lt;p&gt;A 503 response often means that the current route had no available upstream or that the gateway was temporarily unavailable. The next successful sample for the same model and protocol is useful recovery evidence.&lt;/p&gt;

&lt;p&gt;However, &lt;strong&gt;next observed pass&lt;/strong&gt; is not the exact recovery time. The interval between two tests remains unobserved.&lt;/p&gt;

&lt;h2&gt;
  
  
  A reproducible failure record
&lt;/h2&gt;

&lt;p&gt;Each record should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;test timestamp;&lt;/li&gt;
&lt;li&gt;provider and route group;&lt;/li&gt;
&lt;li&gt;exact model ID;&lt;/li&gt;
&lt;li&gt;protocol;&lt;/li&gt;
&lt;li&gt;HTTP status and a privacy-reviewed error category;&lt;/li&gt;
&lt;li&gt;the next observed pass for the same scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Do not publish API keys, account identifiers, full request bodies, raw responses, or collection credentials.&lt;/p&gt;

&lt;h2&gt;
  
  
  Public evidence
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/pitfalls" rel="noopener noreferrer"&gt;Failure and retest timeline&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/reports/model-compatibility" rel="noopener noreferrer"&gt;Model compatibility matrix&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/en/reports/billing-reconciliation" rel="noopener noreferrer"&gt;Ten-request billing reconciliation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://airelaycheck.com/data/latest/failure-recovery.csv" rel="noopener noreferrer"&gt;Privacy-reviewed failure sequence CSV&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Website uptime, API reachability, model compatibility, and account billing are four different questions. A useful result preserves the conditions under which it was observed and relies on repeated samples, rather than turning one error into a permanent provider-wide verdict.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; AI Relay Check has referral relationships with some tested providers. Referral status is excluded from test outcomes. Unverified model identity, cache behavior, pricing, and billing remain explicitly unverified.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>api</category>
      <category>testing</category>
      <category>claude</category>
    </item>
  </channel>
</rss>
