tutorpackSee prices
All courses

AI at work · course 29 of 105

Claude API Requests Without the Rejections

Build Messages API requests the API will accept: required parameters, system prompts, content blocks, JSON output, tools, caching and thinking, all from Anthropic’s reference.

3 modules

Not on sale yet. When sales open: $4.99 USD for this course, paid once, or every course for $9.99 USD a month. Prices

Runs in Claude (claude.ai, the Claude apps or Claude Code) with your own Claude account. A course opens there as soon as your payment goes through; nothing is shipped.

Preview

What it teaches

How a Messages API request is put together, straight from Anthropic’s API reference: the three required body parameters, where a system prompt goes, content strings vs blocks, prefill; whether the API will accept a request (thinking budgets, effort values, cache lifetimes, service tiers, and the sampling settings newer models no longer accept); and which parameter does the job: stop sequences, JSON-schema structured output, tool definitions and tool_choice, prompt caching, adaptive thinking, streaming. The AI asks 3 questions, places you, shows a short card per module, then gives you one item at a time.

How long

32 items. About 20-60 rounds (a simulated student who knew the API took 19, a simulated beginner 61) plus a 12-item final: 1-3 sessions (estimate, not timed with a real student). The tutor gives a one-line save code at the end of each session.

The modules

3 modules, drilled one item at a time.

  1. M0

    The shape of a request

    The shape of a request: required parameters, system prompt, content blocks, prefill

  2. M1

    Will the API accept it?

    Will the API accept this request body? Accepted or Rejected, and why

  3. M2

    Pick the setting

    Pick the setting: the parameter and value for a task

Before it teaches, it asks

  1. 1
    What are you building with the Claude API (a chatbot, a tool-using agent, data extraction), and have you sent a request yet?
  2. 2
    A request body (assume the model was released after Claude Opus 4.6):
    {“model”: “claude-sonnet-5-5”, “messages”: [{“role”: “user”, “content”: “Hi”}]}
    Will the API accept it? Say why.
  3. 3
    Get the answer back as JSON that follows your own JSON schema. What do you put in the request?

What’s exact, and what isn’t

Show

Straight from the course’s own notes.

From the reference, checked by script
Every accept/reject verdict comes from a small validator written from the constraints the API reference states (it adds a few stricter checks and skips some limits no item touches), and each also has a hand-written verdict the script must agree with; every setting answer is merged into a basic request and must pass that validator; 37 quotes matched on the live pages 2026-10-11.
Not run against the live API
No request was sent (no API key is used). The verdicts are what the reference says, as read on 2026-10-11; the API can change.
Made up for practice
Every request and task.
Honest limits
Body parameters only, not SDK code; the reference’s own wording “models released after Claude Opus 4.6” is used without naming those models.
Not in it yet
Writing prompts (technique), SDK code, tool results and multi-turn tool loops, images and documents, citations, batches, files, server tools, pricing and rate limits.