BaseAPIResponse Class — anthropic-sdk-python Architecture
Architecture documentation for the BaseAPIResponse class in _response.py from the anthropic-sdk-python codebase.
Entity Profile
Dependency Diagram
graph TD 6ba97a89_3a56_ffff_f6de_ddab1cb32b30["BaseAPIResponse"] db3528f4_d56c_fc6e_955a_06508f166b4e["JSONLDecoder"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|extends| db3528f4_d56c_fc6e_955a_06508f166b4e ae5d86ac_c756_fcd6_d559_608e6815f980["AsyncJSONLDecoder"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|extends| ae5d86ac_c756_fcd6_d559_608e6815f980 17ce5647_6f06_0676_a4a5_e378a3f57cb1["BaseModel"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|extends| 17ce5647_6f06_0676_a4a5_e378a3f57cb1 2e9c15bb_de03_aa91_93be_0e05db0a552e["_response.py"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|defined in| 2e9c15bb_de03_aa91_93be_0e05db0a552e 62747d39_6ee4_a16d_3f3b_feb94275f67b["__init__()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 62747d39_6ee4_a16d_3f3b_feb94275f67b 17e7dbd8_5260_fd8d_07de_63d5d70a7300["headers()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 17e7dbd8_5260_fd8d_07de_63d5d70a7300 7b155117_8a6c_3893_ab0a_a8772b615a74["http_request()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 7b155117_8a6c_3893_ab0a_a8772b615a74 553c0a00_4144_5f0d_0ce0_51b9c12e1b23["status_code()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 553c0a00_4144_5f0d_0ce0_51b9c12e1b23 e9ef9ecd_bbcd_8325_c74d_baf8771d479b["url()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| e9ef9ecd_bbcd_8325_c74d_baf8771d479b a74701f9_47db_6d15_988c_970f312f498f["method()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| a74701f9_47db_6d15_988c_970f312f498f 765cbaa6_64f8_60d5_0935_7fe60f81c70c["http_version()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 765cbaa6_64f8_60d5_0935_7fe60f81c70c 5d7f68be_71bd_d246_ef7d_d2977db81101["elapsed()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 5d7f68be_71bd_d246_ef7d_d2977db81101 4fb1af32_3eeb_58a9_87b3_1789da90425e["is_closed()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 4fb1af32_3eeb_58a9_87b3_1789da90425e 2b05844a_4bee_26b8_b0a2_93f76aac0e7b["__repr__()"] 6ba97a89_3a56_ffff_f6de_ddab1cb32b30 -->|method| 2b05844a_4bee_26b8_b0a2_93f76aac0e7b
Relationship Graph
Source Code
src/anthropic/_response.py lines 49–295
class BaseAPIResponse(Generic[R]):
_cast_to: type[R]
_client: BaseClient[Any, Any]
_parsed_by_type: dict[type[Any], Any]
_is_sse_stream: bool
_stream_cls: type[Stream[Any]] | type[AsyncStream[Any]] | None
_options: FinalRequestOptions
http_response: httpx.Response
retries_taken: int
"""The number of retries made. If no retries happened this will be `0`"""
def __init__(
self,
*,
raw: httpx.Response,
cast_to: type[R],
client: BaseClient[Any, Any],
stream: bool,
stream_cls: type[Stream[Any]] | type[AsyncStream[Any]] | None,
options: FinalRequestOptions,
retries_taken: int = 0,
) -> None:
self._cast_to = cast_to
self._client = client
self._parsed_by_type = {}
self._is_sse_stream = stream
self._stream_cls = stream_cls
self._options = options
self.http_response = raw
self.retries_taken = retries_taken
@property
def headers(self) -> httpx.Headers:
return self.http_response.headers
@property
def http_request(self) -> httpx.Request:
"""Returns the httpx Request instance associated with the current response."""
return self.http_response.request
@property
def status_code(self) -> int:
return self.http_response.status_code
@property
def url(self) -> httpx.URL:
"""Returns the URL for which the request was made."""
return self.http_response.url
@property
def method(self) -> str:
return self.http_request.method
@property
def http_version(self) -> str:
return self.http_response.http_version
@property
def elapsed(self) -> datetime.timedelta:
"""The time taken for the complete request/response cycle to complete."""
return self.http_response.elapsed
@property
def is_closed(self) -> bool:
"""Whether or not the response body has been closed.
If this is False then there is response data that has not been read yet.
You must either fully consume the response body or call `.close()`
before discarding the response to prevent resource leaks.
"""
return self.http_response.is_closed
@override
def __repr__(self) -> str:
return (
f"<{self.__class__.__name__} [{self.status_code} {self.http_response.reason_phrase}] type={self._cast_to}>"
)
def _parse(self, *, to: type[_T] | None = None) -> R | _T:
Domain
Defined In
Source
Frequently Asked Questions
What is the BaseAPIResponse class?
BaseAPIResponse is a class in the anthropic-sdk-python codebase, defined in src/anthropic/_response.py.
Where is BaseAPIResponse defined?
BaseAPIResponse is defined in src/anthropic/_response.py at line 49.
What does BaseAPIResponse extend?
BaseAPIResponse extends JSONLDecoder, AsyncJSONLDecoder, BaseModel.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free