rest-graphql-debug

Diagnose REST and GraphQL API failures through layered connectivity, auth, and schema checks.

Updated Sep 10, 2026
One-click install
npx skills add https://github.com/loteiron/ZeusAgent --skill rest-graphql-debug-loteiron
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rest-graphql-debug
Source: https://github.com/loteiron/ZeusAgent/tree/main/optional-skills/software-development/rest-graphql-debug
Command: npx skills add https://github.com/loteiron/ZeusAgent --skill rest-graphql-debug-loteiron

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires requests, pytest.

What problem does it solve? API integrations fail in opaque ways: a 200 OK can hide broken data, a 500 can mask a one-character auth typo, and GraphQL servers return HTTP 200 even when queries fail. This Skill provides a systematic layered debugging flow that isolates the failing layer before guessing at fixes. ## Core Features & Use Cases - Layered Diagnosis: Walk connectivity, timeouts, TLS, authentication, request format, response parsing, and semantic validation in order using curl and Python requests. - HTTP Status Playbook: Step-by-step checklists for 401, 403, 404, 409, 422, 429, and 5xx responses, including exponential backoff for rate limits. - Contract & Regression Testing: Validate response schemas against expected field types and drop in a pytest smoke-test template for ongoing API health. - Use Case: Your integration works in Postman but fails in code with a 422. Use the request-format layer to discover the Content-Type/body mismatch, capture the correlation ID, and produce a redacted repro curl for the vendor. ## Quick Start Ask the agent to debug why your POST request to the API endpoint returns a 422 error, following the layered diagnostic flow.

Frequently Asked Questions about rest-graphql-debug

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I debug a REST API that returns unexpected status codes?▼

Debug REST API status codes by walking layers in order: connectivity, timeouts, TLS, authentication, request format, then response parsing. Use curl -v to inspect the full exchange and match the status code to the playbook checklist for 401, 403, 404, 422, 429, or 5xx.

Why does my GraphQL query return HTTP 200 but no data?▼

GraphQL servers often return HTTP 200 even when the query fails, placing error details in the errors field of the response body. Always inspect the errors array regardless of status code and check each error's message and path fields.

How do I handle 429 rate limit errors in Python requests?▼

Handle 429 responses with exponential backoff: read the Retry-After header when present, otherwise wait 2^attempt seconds between retries. Check X-RateLimit-* headers to understand your quota and cap retries at a fixed number of attempts.

Why does my POST request work in Postman but fail in Python code?▼

This usually indicates a Content-Type and body mismatch: passing data= with a JSON string sends form-encoded data while the header claims JSON. Use requests.post(url, json=payload) so the library serializes the body and sets the header correctly.

How do I check if a JWT token is expired?▼

Decode the JWT payload by splitting the token on dots, base64url-decoding the middle segment with padding correction, and reading the exp claim. Compare it against the current time to confirm whether a 401 is caused by token expiry.

When should I not use this API debugging approach?▼

Skip this layered API flow for UI rendering bugs, database query tuning, or DNS and firewall infrastructure problems, which should be escalated instead. It targets application-layer HTTP and GraphQL diagnosis, not frontend or infrastructure issues.