Overview
LemonData supports the native Anthropic Messages API path, so you can use the official Anthropic SDK directly for Claude models.
For the Anthropic SDK, use https://api.lemondata.cc as the base URL, without appending /v1 yourself.
Installation
from anthropic import Anthropic
client = Anthropic(
api_key = "sk-your-lemondata-key" ,
base_url = "https://api.lemondata.cc" ,
)
Basic Usage
message = client.messages.create(
model = "claude-sonnet-4-6" ,
max_tokens = 1024 ,
messages = [
{ "role" : "user" , "content" : "Explain LemonData in one sentence." }
]
)
print (message.content[ 0 ].text)
Streaming
with client.messages.stream(
model = "claude-sonnet-4-6" ,
max_tokens = 1024 ,
messages = [{ "role" : "user" , "content" : "Write a short poem about coding." }]
) as stream:
for text in stream.text_stream:
print (text, end = "" , flush = True )
Vision
import base64
message = client.messages.create(
model = "claude-sonnet-4-6" ,
max_tokens = 1024 ,
messages = [{
"role" : "user" ,
"content" : [
{ "type" : "text" , "text" : "What's in this image?" },
{
"type" : "image" ,
"source" : {
"type" : "url" ,
"url" : "https://example.com/image.jpg"
}
}
]
}]
)
with open ( "image.png" , "rb" ) as f:
image_data = base64.b64encode(f.read()).decode()
message = client.messages.create(
model = "claude-sonnet-4-6" ,
max_tokens = 1024 ,
messages = [{
"role" : "user" ,
"content" : [
{ "type" : "text" , "text" : "Describe this image" },
{
"type" : "image" ,
"source" : {
"type" : "base64" ,
"media_type" : "image/png" ,
"data" : image_data
}
}
]
}]
)
message = client.messages.create(
model = "claude-sonnet-4-6" ,
max_tokens = 1024 ,
tools = [{
"name" : "get_weather" ,
"description" : "Get the weather for a location" ,
"input_schema" : {
"type" : "object" ,
"properties" : {
"location" : { "type" : "string" }
},
"required" : [ "location" ]
}
}],
messages = [{ "role" : "user" , "content" : "What's the weather in Tokyo?" }]
)
for block in message.content:
if block.type == "tool_use" :
print (block.name)
print (block.input)
Extended Thinking
message = client.messages.create(
model = "claude-opus-4-6" ,
max_tokens = 16000 ,
thinking = {
"type" : "enabled" ,
"budget_tokens" : 10000
},
messages = [{ "role" : "user" , "content" : "Solve this complex problem step by step." }]
)
for block in message.content:
if block.type == "thinking" :
print (block.thinking)
elif block.type == "text" :
print (block.text)
Recommended Claude Models
Model Best For claude-opus-4-6Deep reasoning, long-form analysis claude-sonnet-4-6Coding, general assistant tasks claude-haiku-4-5Fast, lightweight responses
Troubleshooting
Use https://api.lemondata.cc
Do not manually append /v1 when configuring the Anthropic SDK
Check that your LemonData API key starts with sk-
Confirm the key is active in LemonData dashboard
Let the Anthropic SDK manage the auth header instead of adding custom headers manually
Verify the Claude model name exactly
Check current availability in the LemonData model catalog