curl --request POST \
--url https://direct.evolink.ai/v1/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/messages"
payload = {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'claude-opus-5',
max_tokens: 1024,
messages: [{role: 'user', content: 'Hello, world'}]
})
};
fetch('https://direct.evolink.ai/v1/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'claude-opus-5',
'max_tokens' => 1024,
'messages' => [
[
'role' => 'user',
'content' => 'Hello, world'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/messages"
payload := strings.NewReader("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"model": "claude-haiku-4-5-20251001",
"id": "msg_bdrk_017XLrAa77zWvfBGQ6ESvrxz",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "# Hey there!\n\nHow's it going? What can I help you with today?"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 8,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 24
}
}{
"error": {
"message": "Ungültige Anfrage",
"type": "invalid_request_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Authentifizierungsfehler",
"type": "authentication_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Abrechnungsfehler",
"type": "billing_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}{
"error": {
"message": "Permission denied",
"type": "permission_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Nicht gefunden",
"type": "not_found_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Rate limited",
"type": "rate_limit_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 60 seconds"
}{
"error": {
"message": "Interner Serverfehler",
"type": "api_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "try again later"
}{
"error": {
"message": "Overloaded",
"type": "overloaded_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 30 seconds"
}{
"error": {
"message": "Request timeout",
"type": "timeout_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "Bitte wechseln Sie die BaseURL zu https://direct.evolink.ai; dieser Endpunkt eignet sich besser für lange Aufgaben"
}Claude - Nachrichten-API
- Senden Sie eine strukturierte Liste von Eingabenachrichten mit Text- und/oder Bildinhalten, und das Modell generiert die nächste Nachricht in der Konversation.
- Die Messages API kann sowohl für einzelne Abfragen als auch für zustandslose Mehrfachdurchlauf-Konversationen verwendet werden.
curl --request POST \
--url https://direct.evolink.ai/v1/messages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
'import requests
url = "https://direct.evolink.ai/v1/messages"
payload = {
"model": "claude-opus-5",
"max_tokens": 1024,
"messages": [
{
"role": "user",
"content": "Hello, world"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
model: 'claude-opus-5',
max_tokens: 1024,
messages: [{role: 'user', content: 'Hello, world'}]
})
};
fetch('https://direct.evolink.ai/v1/messages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://direct.evolink.ai/v1/messages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'model' => 'claude-opus-5',
'max_tokens' => 1024,
'messages' => [
[
'role' => 'user',
'content' => 'Hello, world'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://direct.evolink.ai/v1/messages"
payload := strings.NewReader("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://direct.evolink.ai/v1/messages")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://direct.evolink.ai/v1/messages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"model\": \"claude-opus-5\",\n \"max_tokens\": 1024,\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello, world\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"model": "claude-haiku-4-5-20251001",
"id": "msg_bdrk_017XLrAa77zWvfBGQ6ESvrxz",
"type": "message",
"role": "assistant",
"content": [
{
"type": "text",
"text": "# Hey there!\n\nHow's it going? What can I help you with today?"
}
],
"stop_reason": "end_turn",
"stop_sequence": null,
"usage": {
"input_tokens": 8,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0,
"output_tokens": 24
}
}{
"error": {
"message": "Ungültige Anfrage",
"type": "invalid_request_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Authentifizierungsfehler",
"type": "authentication_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Abrechnungsfehler",
"type": "billing_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "https://evolink.ai/dashboard/billing"
}{
"error": {
"message": "Permission denied",
"type": "permission_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Nicht gefunden",
"type": "not_found_error"
},
"request_id": "<string>",
"type": "error"
}{
"error": {
"message": "Rate limited",
"type": "rate_limit_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 60 seconds"
}{
"error": {
"message": "Interner Serverfehler",
"type": "api_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "try again later"
}{
"error": {
"message": "Overloaded",
"type": "overloaded_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "retry after 30 seconds"
}{
"error": {
"message": "Request timeout",
"type": "timeout_error"
},
"request_id": "<string>",
"type": "error",
"fallback_suggestion": "Bitte wechseln Sie die BaseURL zu https://direct.evolink.ai; dieser Endpunkt eignet sich besser für lange Aufgaben"
}https://direct.evolink.ai und bietet bessere Unterstützung für Textmodelle sowie persistente Verbindungen. https://api.evolink.ai ist der primäre Endpunkt für multimodale Dienste und dient bei Textmodellen als Ausweichadresse.Autorisierungen
##Alle APIs erfordern Bearer-Token-Authentifizierung##
API-Schlüssel erhalten:
Besuchen Sie die API-Schlüsselverwaltungsseite, um Ihren API-Schlüssel zu erhalten
Zum Anfrage-Header hinzufügen:
Authorization: Bearer YOUR_API_KEY
Body
Das Modell, das zum Erzeugen der Antwort verwendet wird. Wählen Sie eine der unten aufgeführten unterstützten Modell-IDs.
claude-haiku-4-5-20251001, claude-sonnet-4-5-20250929, claude-opus-4-5-20251101, claude-opus-4-6, claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6, claude-sonnet-5 "claude-opus-5"
Die maximale Anzahl von Tokens, die vor dem Stoppen generiert werden sollen.
Beachten Sie, dass unsere Modelle möglicherweise vor Erreichen dieses Maximums stoppen. Dieser Parameter gibt nur die absolute maximale Anzahl der zu generierenden Tokens an.
x >= 11024
Eingabenachrichten.
Unsere Modelle sind darauf trainiert, abwechselnd user- und assistant-Gesprächsrunden zu verarbeiten. Beim Erstellen einer neuen Message geben Sie die vorherigen Gesprächsrunden mit dem Parameter messages an, und das Modell generiert dann die nächste Message in der Konversation. Aufeinanderfolgende user- oder assistant-Runden in Ihrer Anfrage werden zu einer einzelnen Runde zusammengefasst.
Jede Eingabenachricht muss ein Objekt mit role und content sein. Sie können eine einzelne user-Rollennachricht angeben oder mehrere user- und assistant-Nachrichten einschließen.
1 - 100000 elementsShow child attributes
Show child attributes
Container-Parameter mit zu ladenden Skills.
Show child attributes
Show child attributes
Configuration options for the model's output, such as the output format.
Show child attributes
Show child attributes
Benutzerdefinierte Textsequenzen, die das Modell zum Stoppen der Generierung veranlassen.
Ob die Antwort inkrementell mittels Server-Sent Events gestreamt werden soll.
System-Prompt.
"Today's date is 2024-06-01."
Menge an Zufälligkeit, die in die Antwort eingebracht wird.
Standardwert ist 1.0. Bereich von 0.0 bis 1.0.
0 <= x <= 11
Konfiguration für Claudes erweitertes Denken.
type: "enabled" erfordert budget_tokens mit mindestens 1.024 und wird auf max_tokens angerechnet.
type: "adaptive" lässt Claude anhand der Anfragekomplexität entscheiden, wann und wie viel erweitertes Denken verwendet wird.
type: "disabled" deaktiviert erweitertes Denken.
- Enabled
- Adaptive
- Disabled
Show child attributes
Show child attributes
Wie das Modell die bereitgestellten Werkzeuge verwenden soll.
- Auto
- Any
- Tool
- None
Show child attributes
Show child attributes
Definitionen clientseitiger Tools, die das Modell verwenden kann. Jedes Tool enthält name, optional description und input_schema.
Show child attributes
Show child attributes
Nur aus den Top-K-Optionen für jedes nachfolgende Token samplen.
x >= 05
Nucleus-Sampling verwenden.
0 <= x <= 10.7
Antwort
Nachrichtenobjekt
Eindeutiger Objektbezeichner.
Format und Länge der IDs können sich im Laufe der Zeit ändern.
"msg_013Zva2CMHLNnXjNJJKqJ2EF"
Objekttyp.
Für Messages ist dies immer "message".
"message"Gesprächsrolle der generierten Nachricht.
Dies ist immer "assistant".
"assistant"Vom Modell generierter Inhalt.
Dies ist ein Array von Inhaltsblöcken, von denen jeder einen type hat, der seine Struktur bestimmt.
- Text
- Thinking
- Geschwärztes Denken
- Tool use
- Verwendung von Server-Tools
- Websuche-Tool-Ergebnis
- ResponseWebFetchToolResultBlock
- Code-Ausführungs-Tool-Ergebnis
- ResponseBashCodeExecutionToolResultBlock
- ResponseTextEditorCodeExecutionToolResultBlock
- MCP-Werkzeugverwendung
- MCP-Werkzeugergebnis
- Container-Upload
Show child attributes
Show child attributes
Das Modell, das die Anfrage verarbeitet hat.
claude-haiku-4-5-20251001, claude-sonnet-4-5-20250929, claude-opus-4-5-20251101, claude-opus-4-6, claude-fable-5-1, claude-fable-5, claude-opus-5, claude-opus-4-8, claude-opus-4-7, claude-sonnet-4-6, claude-sonnet-5 "claude-opus-5"
Der Grund für das Stoppen.
end_turn, max_tokens, stop_sequence, tool_use, pause_turn, refusal, model_context_window_exceeded Welche benutzerdefinierte Stoppsequenz generiert wurde, falls vorhanden.
Abrechnungs- und Ratenlimit-Nutzung.
Show child attributes
Show child attributes
Kontextverwaltungsantwort.
Show child attributes
Show child attributes
Informationen über den in dieser Anfrage verwendeten Container.
Show child attributes
Show child attributes