Back to Blog
Anthropic
💻

Claude Certified Developer – Foundations: 2026 Developer Exam Guide

Learn how to build production applications with the Anthropic Messages API, Tool Use (Function Calling), Prompt Caching, and pass the Claude Certified Developer exam ($125).

BetaStudy Team
September 4, 2026
12 min read

Introduction

For software engineers actively coding applications powered by Claude, the Claude Certified Developer – Foundations is the essential credential validating hands-on implementation proficiency.

Unlike architectural exams that focus on high-level system design, this exam tests your concrete coding skills using the Anthropic Messages API, Tool Use, Assistant Prefilling, Prompt Caching, and error resilience.

Here is your complete guide to passing the exam and mastering the Anthropic developer platform.

---

Exam Overview

* Certification Code: `CLAUDE-CERTIFIED-DEVELOPER-FOUNDATIONS`

* Exam Duration: 90 minutes

* Number of Questions: 50 multiple-choice questions

* Passing Score: 720 / 1000 (72%)

* Registration Fee: $125 USD

* Target Audience: Fullstack developers, Python/TypeScript backend engineers, and AI application developers.

---

4 Core Exam Domains

Domain 1: Anthropic API Fundamentals & Authentication (25%)

* API Endpoints: The `/v1/messages` endpoint structure, required headers (`x-api-key`, `anthropic-version`), and official client libraries.

* Message Roles: System parameter (passed at top level, not in messages array), user messages, and assistant turns.

* Parameters: `max_tokens` (required), `temperature`, `top_p`, `top_k`, and `stop_sequences`.

* Streaming Responses: Consuming Server-Sent Events (SSE) using streaming helpers and handling delta text blocks.

Domain 2: Structured Prompting, XML Tags & Prefilling (25%)

* XML Tag Conventions: Structuring complex prompts using clear XML tags: ``, ``, ``, ``.

* Assistant Turn Prefilling: Prefilling the assistant turn (e.g. `{"role": "assistant", "content": "{"}`) to eliminate preamble conversational filler and force strict JSON or XML outputs.

* Few-Shot Prompting: Providing clean input/output demonstration pairs within `` blocks to steer formatting and style.

Domain 3: Tool Use, Function Calling & Structured Outputs (25%)

* Tool Definitions: Defining tool schemas using JSON Schema specification (`name`, `description`, `input_schema`).

* Tool Choice Parameter: Controlling tool execution: `{"type": "auto"}`, `{"type": "any"}`, or forcing a specific tool `{"type": "tool", "name": "get_weather"}`.

* Tool Execution Cycle: Handling `stop_reason == "tool_use"`, executing the local function, and returning the `tool_result` content block with the matching `tool_use_id`.

* Multi-Tool Calling: Processing and responding to multiple concurrent tool invocations in a single turn.

Domain 4: Application Architecture, Error Handling & Prompt Caching (25%)

* Prompt Caching: Implementing `"cache_control": {"type": "ephemeral"}` on tools, system prompts, or conversation turns to achieve a 90% discount on cache read tokens.

* Error Resilience: Gracefully catching and handling HTTP 400 (Bad Request), 401 (Auth), 429 (Rate Limit), and 529 (Overloaded) errors with exponential backoff and jitter.

* Token Management: Calculating token consumption, inspecting `usage` objects (`input_tokens`, `output_tokens`, `cache_creation_input_tokens`, `cache_read_input_tokens`).

---

Essential Code Example: Tool Use Flow

```python

import anthropic

client = anthropic.Anthropic()

# 1. Define tool schema

tools = [

{

"name": "lookup_customer",

"description": "Retrieve customer details by ID",

"input_schema": {

"type": "object",

"properties": {

"customer_id": {"type": "string"}

},

"required": ["customer_id"]

}

}

]

# 2. Initial request with tools

response = client.messages.create(

model="claude-3-5-sonnet-20241022",

max_tokens=1024,

tools=tools,

messages=[{"role": "user", "content": "Find account details for CUST-4091"}]

)

# 3. Check if Claude wants to use a tool

if response.stop_reason == "tool_use":

tool_block = next(b for b in response.content if b.type == "tool_use")

# 4. Return tool result in follow-up message

follow_up = client.messages.create(

model="claude-3-5-sonnet-20241022",

max_tokens=1024,

tools=tools,

messages=[

{"role": "user", "content": "Find account details for CUST-4091"},

{"role": "assistant", "content": response.content},

{

"role": "user",

"content": [

{

"type": "tool_result",

"tool_use_id": tool_block.id,

"content": '{"name": "Alice Smith", "tier": "Enterprise"}'

}

]

}

]

)

```

---

Preparation Tips

* Practice writing clean tool schemas and multi-turn loops.

* Know the difference between `cache_creation_input_tokens` and `cache_read_input_tokens`.

* Use BetaStudy's practice questions to master tricky edge cases on API error codes and prefilling rules.

Anthropic
Claude Developer
Messages API
Tool Use
Prompt Caching
Function Calling
BT

BetaStudy Team

Certification Exam Prep Experts
15+ years of experience

The BetaStudy team consists of certified cloud architects, DevOps engineers, and IT professionals with decades of combined experience. Our team holds over 100 certifications across AWS, Azure, GCP, Kubernetes, CompTIA, and other major platforms. We're dedicated to helping IT professionals pass their certification exams on the first try.

Certifications & Credentials
100+ Combined Certifications
AWS, Azure, GCP Experts
Kubernetes Specialists
CompTIA Certified Professionals

Certifications Mentioned in This Article

Click any certification below to start practicing with our comprehensive question banks.

Related Certifications

Continue your learning journey with these related certifications

Ready to Start Practicing?

Apply what you learned with 250,000+ practice questions across 50+ certifications.