1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//! The Messages API.
//!
//! The headline endpoint of the Anthropic API. Build a request via
//! [`CreateMessageRequest::builder`], then send it through the
//! [`Messages`] namespace handle obtained from
//! [`Client::messages`](crate::Client::messages).
//!
//! # Endpoints
//!
//! | Method | Path | Function |
//! |---|---|---|
//! | `POST` | `/v1/messages` | [`Messages::create`] (non-streaming) |
//! | `POST` | `/v1/messages` | [`Messages::create_stream`] (SSE) |
//! | `POST` | `/v1/messages/count_tokens` | [`Messages::count_tokens`] |
//!
//! # Quick start
//!
//! ```no_run
//! use claude_api::{Client, messages::CreateMessageRequest, types::ModelId};
//! # async fn run() -> Result<(), claude_api::Error> {
//! let client = Client::new("sk-ant-...");
//! let resp = client.messages().create(
//! CreateMessageRequest::builder()
//! .model(ModelId::SONNET_4_6)
//! .max_tokens(256)
//! .system("Be concise.")
//! .user("What is the capital of France?")
//! .build()?,
//! ).await?;
//! # Ok(()) }
//! ```
//!
//! # Module layout
//!
//! - [`request`] -- [`CreateMessageRequest`], [`CountTokensRequest`],
//! builders
//! - [`response`] -- [`Message`], [`CountTokensResponse`],
//! [`ContainerInfo`]
//! - [`content`] -- [`ContentBlock`] / [`KnownBlock`] union with
//! forward-compat fallthrough
//! - [`stream`] -- [`StreamEvent`], [`ContentDelta`], the
//! `EventStream` aggregator + `on_*` callbacks
//! - [`tools`] -- [`Tool`], [`BuiltinTool`], [`CustomTool`],
//! [`ToolChoice`]
//! - [`cache`] -- [`CacheControl`] for prompt caching
//! - [`thinking`] -- [`ThinkingConfig`] for extended thinking
//! - [`mcp`] -- [`McpServerConfig`] for MCP server invocation
//! - [`citation`] -- typed [`Citation`] enum
//! - [`input`] -- [`MessageInput`], [`SystemPrompt`] helpers
//! - [`metadata`] -- [`MessageMetadata`], [`RequestServiceTier`]
//!
//! For streaming, see [`stream`] for the wire-event types and
//! [`api::Messages::create_stream`] for the namespace method.
pub use CacheControl;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ThinkingConfig;
pub use ;
pub use Messages;