modele

Anthropic: Claude Opus 5.5

Markdown · JSON

Anthropic: Claude Opus 5.5

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

O modelu

Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.

Długotrwała praca programistyczna i analityka zawodowa

Claude Opus 5.5 jest przeznaczony do wielogodzinnej pracy nad złożonymi zadaniami inżynierskimi. Anthropic podkreśla duże migracje, audyt bazy kodu, eliminowanie nieefektywności oprogramowania i badanie systemów. Model może analizować problem, planować zmiany, korzystać z wyników działań i kontynuować pracę aż do przygotowania wyniku końcowego.

Inne zastosowania obejmują badania, analizę finansową i materiały biznesowe. Przykładowy proces zawodowy łączy budowę modelu finansowego z przedstawieniem wniosków w prezentacji. Aplikacja potrzebuje do tego narzędzi pracy z danymi, plikami i oprawą graficzną; własna odpowiedź tekstowa modelu może zawierać analizę, strukturę materiału lub kod.

Wnioski, które można zrozumieć i sprawdzić

Osobny nacisk w tej wersji położono na komunikację. Według opisu Anthropic model umieszcza najważniejsze informacje na początku, używa mniej specjalistycznego żargonu i przestrzega ustalonych reguł pisania. W długotrwałej pracy pomaga to połączyć wykonane działania z jasnym wyjaśnieniem końcowym. Potrzebny poziom szczegółowości, ton i format należy opisać wprost.

Model przyjmuje tekst i obrazy. Może odczytywać wartości ze szczegółowych wykresów, diagramów i zrzutów interfejsów; przy szczególnie rozbudowanych materiałach nadal przydatne jest powiększanie lub kadrowanie za pomocą narzędzi. Odpowiedź powstaje w postaci tekstu, a gotowe dokumenty i materiały wizualne są tworzone za pomocą narzędzi środowiska.

Formaty standardowego wejścia wizualnego u producenta to JPEG/PNG/GIF/WebP, z pierwszą klatką animacji. Przy analizie natywnej: dłuższy bok — 2576 pikseli, 4784 tokeny wizualne; duże obrazy są zmniejszane przed analizą. Obsługa plików i parametrów zależy od metody aplikacji.

Rozumowanie jest zawsze włączone

Opus 5.5 wykorzystuje stale włączone rozumowanie adaptacyjne. Wyłączanie rozumowania i ręczny budżet extended thinking nie są obsługiwane. Główny parametr sterujący głębokością to effort: dostępne są low, medium, high, xhigh i max, a standardowa wartość wynosi medium.

Przy wysokich poziomach model może poświęcać więcej analizy pojedynczemu krokowi. Wspólny limit odpowiedzi obejmuje miejsce na rozumowanie i treść końcową, dlatego złożone zadanie wymaga odpowiedniego budżetu. Okno kontekstu wynosi 1 mln tokenów, a maksymalna odpowiedź w zwykłym trybie — 128 tys. tokenów. Wiarygodna granica wbudowanej wiedzy to czerwiec 2026 roku.

Narzędzia i historia długotrwałego zadania

Producent przewiduje budżety zadania, zmianę wysiłku i dostępnych narzędzi w trakcie rozmowy, kompresję historii na żądanie oraz pośrednie notatki między działaniami. Ich dostępność i sposób przedstawienia zależą od aplikacji. Jeśli aplikacja zwraca zachowane bloki rozumowania, zgodność jest ograniczona: Opus 5.5 odczytuje własne bloki, bloki Opus 5 oraz wcześniejszych modeli Opus, Sonnet i Haiku; nie odczytuje rozumowań Fable i Mythos. Inne pary modeli wymagają odpowiedniej obsługi przez metodę. Niezgodne bloki są wykluczane przed następną turą, która trwa dalej bez nich. Zmiana wcześniejszych wiadomości, instrukcji systemowej lub dawnego zestawu narzędzi może naruszyć powiązanie kolejnych bloków: podczas jego weryfikacji żądanie jest odrzucane albo bloki objęte zmianą są wykluczane.

Jeśli metoda udostępnia ustawienia narzędzi, model producenta dopuszcza automatyczny wybór auto i wyłączenie none. Nie można wymusić wywołania dowolnego narzędzia (any) ani konkretnego narzędzia wskazanego nazwą (tool). Odczytywanie dokumentów, wykonywanie kodu, sterowanie interfejsem i tworzenie plików są możliwe przez udostępnione narzędzia, a nie automatycznie na podstawie zwykłego żądania tekstowego.

W obszarach wysokiego ryzyka stosowane są mechanizmy ochronne. Anthropic wprost przyznaje, że wstępne sprawdzenia zachowania nie wykrywają wszystkich możliwych błędów. Dlatego jasne wyjaśnienie i samodzielna weryfikacja przez model są przydatne, lecz nie zastępują sprawdzenia wyniku końcowego w konkretnym zadaniu.

Zadanie praktyczne

Zadanie praktyczne

Przykład techniczny po angielsku

Design a reviewable schema migration

Prepare a migration proposal for a customer table. Existing columns: id, full_name. Target columns: id, given_name, family_name, display_name. Some full_name values contain one word or multiple family names. Preserve the original display name. Propose an expand-and-contract rollout, mark ambiguous splits for review and include acceptance tests and a rollback plan.

Oczekiwany wynik

A migration proposal with schema stages, backfill rules, ambiguity handling, acceptance cases and a reversible rollout sequence.

Sprawdź wynik

Check that ambiguous names are retained for review and that rollback can recover the exact original full_name.
Ailoot · Anthropic Messages POST /v1/messages claude-opus-5-5

claude-opus-5-5

Anthropic /claude-opus-5-5
ID modelu
  • claude-opus-5-5
  • claude-opus
  • claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst · Obrazy
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · Anthropic Messages POST /v1/messages
Wejście
text, image
Wyjście
text
Kontekst
1 000 000 tokens
Maksymalny wynik
131 072 tokens
Format wyjściowy
json lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
claude-opus-5-5
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstring|content_block[]WymaganieWymaganeWartości i limityDomyślnie—
PolesystemTypstring|content_block[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limity
Minimum: 1
Limit dotyczy: dokładny limit wybranego modelu/karty
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polestop_sequencesTypstring[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTyptool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].nameTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: udostępnione narzędzie
Domyślnie—
Poletools[].descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].input_schemaTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polethinking.typeTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polethinking.budget_tokensTypintegerWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleoutput_config.effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolemetadataTypobjectWymaganieOpcjonalneWartości i limityDomyślnie—
Polecache_controlTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content lub blok type=text

Tekst + obraz

{type:image,source:{type:base64,media_type,data}} lub źródło type=url

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktrzeczywista treść UTF-8 wstawiona jako tekst; ID/URLs plików wymagają oddzielnej, dokładnie określonej obsługi

Cykl życia: exact retained published method

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Wejście
0,004 USD / 1K
Wyjście
0,02 USD / 1K
Odczyt cache
0,0002 USD / 1K
Zapis do cache
0,005 USD / 1K
Zapis do cache, 5 min
0,005 USD / 1K tokens
Zapis do cache, 1 godz.
0,008 USD / 1K tokens
web_search_call
0,01 USD za wywołanie
Maks. liczba wywołań web_search_call
8
Mnożnik fast
×2

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Referencyjne tabele modelu

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaOpenAI Chat · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaOpenAI Chat · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Przykładowe żądania

Ailoot · Anthropic Messages

Przykład tekstowyWejście, obrazPython SDKNode.js SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5-5", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5-5", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="claude-opus-5-5",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "claude-opus-5-5",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='claude-opus-5-5',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot · Anthropic Messages

json lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot · OpenAI Responses POST /v1/responses claude-opus-5-5

claude-opus-5-5

Anthropic /claude-opus-5-5

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst · Obrazy
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · OpenAI Responses POST /v1/responses
Wejście
text, image
Wyjście
text
Kontekst
1 000 000 tokens
Maksymalny wynik
131 072 tokens
Format wyjściowy
json lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
claude-opus-5-5
Domyślnie—
PoleinputTypstring|input_item[]WymaganieWymaganeWartości i limityDomyślnie—
PoleinstructionsTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poleinput[].typeTypstringWymaganieOpcjonalneWartości i limity
message, reasoning, function_call, function_call_output
Domyślnie—
Poleinput[].contentTypstring|content_part[]WymaganieOpcjonalneWartości i limityDomyślnie—
Poleinput[].call_idTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: function_call_output; zachowaj rzeczywiście zwrócone call_id
Domyślnie—
Poleinput[].outputTypstring|content_part[]WymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: function_call_output
Domyślnie—
Polemax_output_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTyptool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletool_choiceTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleparallel_tool_callsTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polereasoning.effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polereasoning.summaryTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletext.formatTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletext.verbosityTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoleincludeTypstring[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolestoreTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprevious_response_idTypstringWymaganieOpcjonalneWartości i limity
Wymaganie dotyczące ID: Tylko rzeczywiste ID odpowiedzi z obsługiwanej kontynuacji
Zależy od modelu
Domyślnie—
Poleservice_tierTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprompt_cache_keyTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprompt_cache_optionsTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

tekst wejściowy lub część input_text

Tekst + obraz

{type:input_image,image_url}

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, input
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktrzeczywista treść UTF-8 wstawiona jako tekst; ID/URLs plików wymagają oddzielnej, dokładnie określonej obsługi

Cykl życia: exact retained published method

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot OpenAI ResponsesPOST /v1/responses
Wejście
0,004 USD / 1K
Wyjście
0,02 USD / 1K
Odczyt cache
0,0002 USD / 1K
Zapis do cache
0,005 USD / 1K
Zapis do cache, 5 min
0,005 USD / 1K tokens
Zapis do cache, 1 godz.
0,008 USD / 1K tokens
web_search_call
0,01 USD za wywołanie
Maks. liczba wywołań web_search_call
8
Mnożnik fast
×2

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Referencyjne tabele modelu

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaOpenAI Chat · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaOpenAI Chat · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Przykładowe żądania

Ailoot · OpenAI Responses

Przykład tekstowyWejście, obrazPython SDKNode.js SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5-5", "input": ""}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["input"]="Summarize this material and quote supporting source passages.\n\n"+text
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5-5", "input": [{"role": "user", "content": [{"type": "input_text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["input"][0]["content"].append({"type":"input_image","image_url":"data:"+mime+";base64,"+b64})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/responses \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(json.loads(Path("result.json").read_text(encoding="utf-8")))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.responses.create(model="claude-opus-5-5", input="Explain the difference between an observation and a hypothesis in three sentences.")
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.responses.create({ model: "claude-opus-5-5", input: "Explain the difference between an observation and a hypothesis in three sentences." });
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
with client.responses.stream(model="claude-opus-5-5", input="Explain the difference between an observation and a hypothesis in three sentences.") as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_response()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot · OpenAI Responses

json lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj każdy element wyjścia i część treści, rzeczywiste call_id funkcji, zaszyfrowane rozumowanie i dane użycia. W strumieniowaniu zachowaj pełną tożsamość zdarzenia/elementu.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PolestatusTypstring
Poleoutput[]Typmessage|reasoning|function_call|other item
Poleoutput[].content[]Typcontent part
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot · OpenAI Chat POST /v1/chat/completions claude-opus-5-5

claude-opus-5-5

Anthropic /claude-opus-5-5

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst · Obrazy
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · OpenAI Chat POST /v1/chat/completions
Wejście
text, image
Wyjście
text
Kontekst
1 000 000 tokens
Maksymalny wynik
131 072 tokens
Format wyjściowy
json lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
claude-opus-5-5
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
Przykłady: system, user, assistant, tool, function
Warunki: Te role są jawnie reprezentowane przez typy zgodności w kodzie źródłowym; dokładny zestaw ról pozostaje właściwy dla danego modelu.
Zależy od modelu
Domyślnie—
Polemessages[].contentTypstring|content_part[]|nullWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_callsTyptool_call[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_call_idTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: role=tool; użyj rzeczywiście zwróconego ID
Domyślnie—
Polemessages[].nameTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].reasoning_contentTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: Przekazuj z powrotem rzeczywiście zwróconą treść rozumowania, gdy ten model jej używa
Domyślnie—
Polemessages[].reasoning_detailsTypobject|arrayWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polemax_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
Polemax_completion_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Polestream_options.include_usageTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolestopTypstring|string[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTypfunction_tool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].typeTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].function.nameTypstringWymaganieWymaganeWartości i limity
Obowiązuje, gdy: udostępnione narzędzie funkcji
Domyślnie—
Poletools[].function.descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].function.parametersTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleparallel_tool_callsTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleresponse_formatTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polereasoning_effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolereasoningTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleservice_tierTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoleinstructionsTypstringWymaganieOpcjonalneWartości i limity
Pole zgodności
Domyślnie—
PolefunctionsTypfunction[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polefunction_callTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprompt_cache_optionsTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content

Tekst + obraz

{type:image_url,image_url:{url,detail}}

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, messages
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktrzeczywista treść UTF-8 wstawiona jako tekst; ID/URLs plików wymagają oddzielnej, dokładnie określonej obsługi

Cykl życia: exact retained published method

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot OpenAI ChatPOST /v1/chat/completions
Wejście
0,004 USD / 1K
Wyjście
0,02 USD / 1K
Odczyt cache
0,0002 USD / 1K
Zapis do cache
0,005 USD / 1K
Zapis do cache, 5 min
0,005 USD / 1K tokens
Zapis do cache, 1 godz.
0,008 USD / 1K tokens
web_search_call
0,01 USD za wywołanie
Maks. liczba wywołań web_search_call
8
Mnożnik fast
×2

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Referencyjne tabele modelu

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaOpenAI Chat · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaOpenAI Chat · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Przykładowe żądania

Ailoot · OpenAI Chat

Przykład tekstowyWejście, obrazPython SDKNode.js SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5-5", "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-5-5", "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image_url","image_url":{"url":"data:"+mime+";base64,"+b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = OpenAI(base_url="https://api.ailoot.ai/v1", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
resp = client.chat.completions.create(
    model="claude-opus-5-5",
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(resp.to_dict(mode="json"))
import OpenAI from "openai";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new OpenAI({ baseURL: "https://api.ailoot.ai/v1", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const resp = await client.chat.completions.create({
  model: "claude-opus-5-5",
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(resp);
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='claude-opus-5-5',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot · OpenAI Chat

json lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj każdy wariant i jego treść/wywołania narzędzi/rozumowanie. W SSE składaj przyrosty według indeksu wariantu/narzędzia, zachowując końcowy powód zakończenia i dane użycia.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot · Anthropic Messages POST /v1/messages claude-opus

claude-opus

Anthropic /claude-opus
ID modelu
  • claude-opus-5-5
  • claude-opus
  • claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst · Obrazy
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · Anthropic Messages POST /v1/messages
Wejście
text, image
Wyjście
text
Kontekst
1 000 000 tokens
Maksymalny wynik
131 072 tokens
Format wyjściowy
json or SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
claude-opus
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstring|content_block[]WymaganieWymaganeWartości i limityDomyślnie—
PolesystemTypstring|content_block[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limity
Minimum: 1
Limit dotyczy: dokładny limit wybranego modelu/karty
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polestop_sequencesTypstring[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTyptool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].nameTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: tool supplied
Domyślnie—
Poletools[].descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].input_schemaTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polethinking.typeTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polethinking.budget_tokensTypintegerWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleoutput_config.effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolemetadataTypobjectWymaganieOpcjonalneWartości i limityDomyślnie—
Polecache_controlTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content or type=text block

Tekst + obraz

{type:image,source:{type:base64,media_type,data}} or source type=url

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktrzeczywista treść UTF-8 wstawiona jako tekst; ID/URLs plików wymagają oddzielnej, dokładnie określonej obsługi

Cykl życia: exact retained published method

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Wejście
0,004 USD / 1K
Wyjście
0,02 USD / 1K
Odczyt cache
0,0002 USD / 1K
Zapis do cache
0,005 USD / 1K
Zapis do cache, 5 min
0,005 USD / 1K tokens
Zapis do cache, 1 godz.
0,008 USD / 1K tokens
web_search_call
0,01 USD za wywołanie
Maks. liczba wywołań web_search_call
8
Mnożnik fast
×2

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Referencyjne tabele modelu

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaOpenAI Chat · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaOpenAI Chat · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Przykładowe żądania

Ailoot · Anthropic Messages

Przykład tekstowyWejście, obrazPython SDKNode.js SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="claude-opus",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "claude-opus",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='claude-opus',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot · Anthropic Messages

json or SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot · Anthropic Messages POST /v1/messages claude-opus-latest

claude-opus-latest

Anthropic /claude-opus-latest
ID modelu
  • claude-opus-5-5
  • claude-opus
  • claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst · Obrazy
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · Anthropic Messages POST /v1/messages
Wejście
text, image
Wyjście
text
Kontekst
1 000 000 tokens
Maksymalny wynik
131 072 tokens
Format wyjściowy
json or SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
claude-opus-latest
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstring|content_block[]WymaganieWymaganeWartości i limityDomyślnie—
PolesystemTypstring|content_block[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limity
Minimum: 1
Limit dotyczy: dokładny limit wybranego modelu/karty
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polestop_sequencesTypstring[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTyptool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].nameTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: tool supplied
Domyślnie—
Poletools[].descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].input_schemaTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polethinking.typeTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polethinking.budget_tokensTypintegerWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleoutput_config.effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolemetadataTypobjectWymaganieOpcjonalneWartości i limityDomyślnie—
Polecache_controlTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content or type=text block

Tekst + obraz

{type:image,source:{type:base64,media_type,data}} or source type=url

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext, image
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktnull
Parametrcontent_typeKontraktapplication/json
Parametrtext_file_materialKontraktrzeczywista treść UTF-8 wstawiona jako tekst; ID/URLs plików wymagają oddzielnej, dokładnie określonej obsługi

Cykl życia: exact retained published method

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot Anthropic MessagesPOST /v1/messages
Wejście
0,004 USD / 1K
Wyjście
0,02 USD / 1K
Odczyt cache
0,0002 USD / 1K
Zapis do cache
0,005 USD / 1K
Zapis do cache, 5 min
0,005 USD / 1K tokens
Zapis do cache, 1 godz.
0,008 USD / 1K tokens
web_search_call
0,01 USD za wywołanie
Maks. liczba wywołań web_search_call
8
Mnożnik fast
×2

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Szczegóły taryfy referencyjnej

Referencyjne tabele modelu nie zmieniają wyboru metody, wyceny ani opłat. Naliczane opłaty korzystają ze stawek wybranej metody Ailoot.

Referencyjne tabele modelu

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaOpenAI Chat · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaOpenAI Chat · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Podstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaAnthropic Messages · Przedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Przykładowe żądania

Ailoot · Anthropic Messages

Przykład tekstowyWejście, obrazPython SDKNode.js SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 source-material file}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-latest", "max_tokens": 1024, "messages": []}')
f=Path(os.environ["AILOOT_TEXT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 source material")
text=f.read_text(encoding="utf-8")
if not text.strip():raise SystemExit("Source material must contain text")
p["messages"]=[{"role":"user","content":"Summarize this material and quote supporting source passages.\n\n"+text}]
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_IMAGE_FILE:?Set your actual PNG JPEG or WebP image}"
export AILOOT_IMAGE_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "claude-opus-latest", "max_tokens": 1024, "messages": [{"role": "user", "content": [{"type": "text", "text": "Read labels and numbers in this image; flag unreadable text."}]}]}')
import base64
f=Path(os.environ["AILOOT_IMAGE_FILE"])
if not f.is_file():raise SystemExit("Choose an actual PNG JPEG or WebP image")
raw=f.read_bytes()
mime="image/png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "image/jpeg" if raw.startswith(b"\xff\xd8") else "image/webp" if raw[:4]==b"RIFF" and raw[8:12]==b"WEBP" else None
if not mime:raise SystemExit("Use PNG JPEG or WebP")
b64=base64.b64encode(raw).decode()
p["messages"][0]["content"].append({"type":"image","source":{"type":"base64","media_type":mime,"data":b64}})
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT
import anthropic
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client = anthropic.Anthropic(base_url="https://api.ailoot.ai", api_key=os.environ["AILOOT_API_KEY"], max_retries=0)
msg = client.messages.create(
    model="claude-opus-latest",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}],
)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(msg.to_dict(mode="json"))
import Anthropic from "@anthropic-ai/sdk";

if (!process.env.AILOOT_API_KEY?.trim()) throw new Error("Set AILOOT_API_KEY before making a request");
const client = new Anthropic({ baseURL: "https://api.ailoot.ai", apiKey: process.env.AILOOT_API_KEY, maxRetries: 0 });
const msg = await client.messages.create({
  model: "claude-opus-latest",
  max_tokens: 1024,
  messages: [{ role: "user", content: "Explain the difference between an observation and a hypothesis in three sentences." }],
});
import { writeFileSync } from "node:fs";

function saveResult(data, stem = "result") {
  writeFileSync(stem + ".json", JSON.stringify(data, null, 2));
  console.log(JSON.stringify(data, null, 2));
  const saveBlob = (encoded, suffix, label) => {
    const raw = Buffer.from(encoded, "base64");
    const ext = raw.subarray(0,8).equals(Buffer.from([137,80,78,71,13,10,26,10])) ? "png" : raw[0]===255 && raw[1]===216 ? "jpg" : raw.subarray(0,4).toString()==="RIFF" && raw.subarray(8,12).toString()==="WEBP" ? "webp" : suffix;
    const file = `${stem}-${label}.${ext}`;
    writeFileSync(file, raw); console.log("Saved", file);
  };
  for (const [i, block] of (data.content || []).entries()) console.log("Content", i, JSON.stringify(block));
  for (const choice of data.choices || []) console.log("Choice", choice.index, JSON.stringify(choice.message || choice.delta || {}));
  for (const [i, item] of (data.output || []).entries()) {
    console.log("Output", i, JSON.stringify(item));
    if (item.type === "image_generation_call" && item.result) saveBlob(item.result, item.output_format || "bin", `output-${i}`);
  }
  for (const [ci, candidate] of (data.candidates || []).entries()) {
    for (const [pi, part] of (candidate.content?.parts || []).entries()) {
      console.log("Candidate/part", ci, pi, JSON.stringify(part));
      const blob = part.inlineData || part.inline_data;
      if (blob?.data) {
        const mime = blob.mimeType || blob.mime_type;
        const suffix = ({"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"})[mime] || "bin";
        saveBlob(blob.data, suffix, `candidate-${ci}-part-${pi}`);
      }
    }
  }
}

saveResult(msg);
import anthropic,os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=anthropic.Anthropic(base_url="https://api.ailoot.ai",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.messages.stream(model='claude-opus-latest',max_tokens=1024,messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_message()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot · Anthropic Messages

json or SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions anthropic/claude-opus-5.5

anthropic/claude-opus-5.5

Anthropic /anthropic/claude-opus-5.5
ID modelu
  • anthropic/claude-opus-5.5
  • ~anthropic/claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Wejście
text
Wyjście
text
Format wyjściowy
json lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
anthropic/claude-opus-5.5
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
Przykłady: system, user, assistant, tool, function
Warunki: Te role są jawnie reprezentowane przez typy zgodności w kodzie źródłowym; dokładny zestaw ról pozostaje właściwy dla danego modelu.
Zależy od modelu
Domyślnie—
Polemessages[].contentTypstring|content_part[]|nullWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_callsTyptool_call[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_call_idTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: role=tool; użyj rzeczywiście zwróconego ID
Domyślnie—
Polemessages[].nameTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].reasoning_contentTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: Przekazuj z powrotem rzeczywiście zwróconą treść rozumowania, gdy ten model jej używa
Domyślnie—
Polemessages[].reasoning_detailsTypobject|arrayWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polemax_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
Polemax_completion_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Polestream_options.include_usageTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolestopTypstring|string[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTypfunction_tool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].typeTypstringWymaganieOpcjonalneWartości i limity
function
Zależy od modelu
Domyślnie—
Poletools[].function.nameTypstringWymaganieWymaganeWartości i limity
Obowiązuje, gdy: udostępnione narzędzie funkcji
Domyślnie—
Poletools[].function.descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].function.parametersTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleparallel_tool_callsTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleresponse_formatTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polereasoning_effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolereasoningTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleservice_tierTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoleinstructionsTypstringWymaganieOpcjonalneWartości i limity
Pole zgodności
Domyślnie—
PolefunctionsTypfunction[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polefunction_callTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprompt_cache_optionsTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolemodalitiesTypstring[]WymaganieOpcjonalneWartości i limity
text
Domyślnie—
PoleproviderTypobjectWymaganieOpcjonalneWartości i limity
Warunki: provider.options jest odrzucane na tej tekstowej trasie Ultra
Domyślnie—
Polecache_control.ttlTypstringWymaganieOpcjonalneWartości i limity
Warunki: 1h jest odrzucane w rzeczywistych miejscach pamięci podręcznej promptów
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages
Parametrmaterial_typesKontrakttext
ParametrmessagesKontrakttablica wiadomości o strukturze role/content
Parametrfile_materialKontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku
Parametroptional_controlsKontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrcontrol_scopeKontraktwłaściwe dla modelu; narzędzia funkcji użytkownika różnią się od narzędzi hostowanych
Parametroutput_modalitiesKontrakttext
Parametrhosted_operationsKontraktfalse
Parametrmultimodal_input_bindingKontraktnull

Cykl życia: synchronous_or_streamed

Wyślij dokładne ID modelu wraz z messages.

Długość kontekstu nie jest limitem wyjścia.

Plik tekstowy może dostarczyć dosłowny tekst; wejścia obrazowe/dźwiękowe/obiekty plików wymagają dokładnego powiązania.

Cennik

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki
Stawka standardowa Gdy wybrany jest tryb szybki
Tryb flex
Stawka standardowa Gdy wybrany jest tryb flex
Maksymalna intensywność rozumowania
Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Intensywność rozumowania · high
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na high
Intensywność rozumowania · low
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na low
Intensywność rozumowania · max
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na max
Intensywność rozumowania · medium
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na medium
Intensywność rozumowania · xhigh
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na xhigh

Stawki Ailoot

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot Ultra · OpenAI Chat

curlPython SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "anthropic/claude-opus-5.5", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='anthropic/claude-opus-5.5',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='anthropic/claude-opus-5.5',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot Ultra · OpenAI Chat

json lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj każdy wariant i jego treść/wywołania narzędzi/rozumowanie. W SSE składaj przyrosty według indeksu wariantu/narzędzia, zachowując końcowy powód zakończenia i dane użycia.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot Ultra · Anthropic Messages POST /v1/messages anthropic/claude-opus-5.5

anthropic/claude-opus-5.5

Anthropic /anthropic/claude-opus-5.5
ID modelu
  • anthropic/claude-opus-5.5
  • ~anthropic/claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst
Wyniki
json · sse

Dostępne w Ailoot · dane wejściowe i metody

Ailoot Ultra · Anthropic Messages POST /v1/messages
Wejście
text
Wyjście
json, sse
Format wyjściowy
JSON lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
anthropic/claude-opus-5.5
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limityDomyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstringWymaganieWymaganeWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limityDomyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Kombinacje materiałów wejściowych

Tekst · tekst UTF-8

ciąg messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktstream
Parametrmaterial_typesKontrakttext
Parametrtext_file_materialKontraktOdczytaj rzeczywisty dokument UTF-8 i umieść jego tekst we wskazanym polu input lub w ciągu treści wiadomości.

Cykl życia: synchronous_or_streamed

Cennik

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki
Stawka standardowa Gdy wybrany jest tryb szybki
Tryb flex
Stawka standardowa Gdy wybrany jest tryb flex
Maksymalna intensywność rozumowania
Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Intensywność rozumowania · high
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na high
Intensywność rozumowania · low
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na low
Intensywność rozumowania · max
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na max
Intensywność rozumowania · medium
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na medium
Intensywność rozumowania · xhigh
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na xhigh

Stawki Ailoot

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot Ultra · Anthropic Messages

Kompletna minimalna treść żądania JSONcurl · użyj swojego dokumentu UTF-8Python · zapisz kompletny wynik
{
  "model": "anthropic/claude-opus-5.5",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'anthropic/claude-opus-5.5', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': 'anthropic/claude-opus-5.5', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Odbieranie i zapisywanie wyników

Ailoot Ultra · Anthropic Messages

JSON lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions ~anthropic/claude-opus-latest

~anthropic/claude-opus-latest

Anthropic /~anthropic/claude-opus-latest
ID modelu
  • anthropic/claude-opus-5.5
  • ~anthropic/claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst
Wyniki
Tekst

Dostępne w Ailoot · dane wejściowe i metody

Ailoot Ultra · OpenAI Chat POST /v1/chat/completions
Wejście
text
Wyjście
text
Format wyjściowy
json lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
~anthropic/claude-opus-latest
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limity
Minimalna liczba elementów: 1
Domyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
Przykłady: system, user, assistant, tool, function
Warunki: Te role są jawnie reprezentowane przez typy zgodności w kodzie źródłowym; dokładny zestaw ról pozostaje właściwy dla danego modelu.
Zależy od modelu
Domyślnie—
Polemessages[].contentTypstring|content_part[]|nullWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_callsTyptool_call[]WymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].tool_call_idTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: role=tool; użyj rzeczywiście zwróconego ID
Domyślnie—
Polemessages[].nameTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Polemessages[].reasoning_contentTypstringWymaganieOpcjonalneWartości i limity
Obowiązuje, gdy: Przekazuj z powrotem rzeczywiście zwróconą treść rozumowania, gdy ten model jej używa
Domyślnie—
Polemessages[].reasoning_detailsTypobject|arrayWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polemax_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
Polemax_completion_tokensTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 1
Zależy od modelu
Domyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Polestream_options.include_usageTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletemperatureTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletop_pTypnumberWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolestopTypstring|string[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoletoolsTypfunction_tool[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poletools[].typeTypstringWymaganieOpcjonalneWartości i limity
function
Zależy od modelu
Domyślnie—
Poletools[].function.nameTypstringWymaganieWymaganeWartości i limity
Obowiązuje, gdy: udostępnione narzędzie funkcji
Domyślnie—
Poletools[].function.descriptionTypstringWymaganieOpcjonalneWartości i limityDomyślnie—
Poletools[].function.parametersTypJSON_schemaWymaganieOpcjonalneWartości i limityDomyślnie—
Poletool_choiceTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleparallel_tool_callsTypbooleanWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleresponse_formatTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polereasoning_effortTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolereasoningTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleservice_tierTypstringWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PoleinstructionsTypstringWymaganieOpcjonalneWartości i limity
Pole zgodności
Domyślnie—
PolefunctionsTypfunction[]WymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Polefunction_callTypstring|objectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
Poleprompt_cache_optionsTypobjectWymaganieOpcjonalneWartości i limity
Zależy od modelu
Domyślnie—
PolemodalitiesTypstring[]WymaganieOpcjonalneWartości i limity
text
Domyślnie—
PoleproviderTypobjectWymaganieOpcjonalneWartości i limity
Warunki: provider.options jest odrzucane na tej tekstowej trasie Ultra
Domyślnie—
Polecache_control.ttlTypstringWymaganieOpcjonalneWartości i limity
Warunki: 1h jest odrzucane w rzeczywistych miejscach pamięci podręcznej promptów
Domyślnie—
Kombinacje materiałów wejściowych

Tekst · tekst UTF8

messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages
Parametrmaterial_typesKontrakttext
ParametrmessagesKontrakttablica wiadomości o strukturze role/content
Parametrfile_materialKontraktrzeczywisty dokument UTF-8 wstawiony jako dosłowny tekst; bez wywnioskowanego ID pliku
Parametroptional_controlsKontraktstream, temperature, top_p, stop, max_tokens, max_completion_tokens, reasoning, response_format, tools, tool_choice
Parametrcontrol_scopeKontraktwłaściwe dla modelu; narzędzia funkcji użytkownika różnią się od narzędzi hostowanych
Parametroutput_modalitiesKontrakttext
Parametrhosted_operationsKontraktfalse
Parametrmultimodal_input_bindingKontraktnull

Cykl życia: synchronous_or_streamed

Wyślij dokładne ID modelu wraz z messages.

Długość kontekstu nie jest limitem wyjścia.

Plik tekstowy może dostarczyć dosłowny tekst; wejścia obrazowe/dźwiękowe/obiekty plików wymagają dokładnego powiązania.

Cennik

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki
Stawka standardowa Gdy wybrany jest tryb szybki
Tryb flex
Stawka standardowa Gdy wybrany jest tryb flex
Maksymalna intensywność rozumowania
Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Intensywność rozumowania · high
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na high
Intensywność rozumowania · low
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na low
Intensywność rozumowania · max
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na max
Intensywność rozumowania · medium
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na medium
Intensywność rozumowania · xhigh
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na xhigh

Stawki Ailoot

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot Ultra · OpenAI Chat

curlPython SDKStrumień w Pythonie
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "~anthropic/claude-opus-latest", "messages": [{"role": "user", "content": "Explain the difference between an observation and a hypothesis in three sentences."}]}')

Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/chat/completions \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
r=json.loads(Path("result.json").read_text())
for x in r.get("choices",[]):
    if x.get("message",{}).get("content"): print(x["message"]["content"])
PY_RESULT
from openai import OpenAI
import os

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
result=client.chat.completions.create(model='~anthropic/claude-opus-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}])
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

save_result(result.to_dict(mode="json"))
from openai import OpenAI
import os
from pathlib import Path

if not os.environ.get("AILOOT_API_KEY", "").strip(): raise SystemExit("Set AILOOT_API_KEY before making a request")
client=OpenAI(base_url="https://api.ailoot.ai/v1",api_key=os.environ["AILOOT_API_KEY"],max_retries=0)
import base64, json
from pathlib import Path

def save_result(data, stem="result"):
    # Keep every field, including usage, IDs, reasoning and tool requests.
    Path(stem + ".json").write_text(json.dumps(data, ensure_ascii=False, indent=2), encoding="utf-8")
    print(json.dumps(data, ensure_ascii=False, indent=2))
    def save_blob(encoded, suffix, label):
        raw = base64.b64decode(encoded, altchars=b"-_", validate=True)
        ext = "png" if raw.startswith(b"\x89PNG\r\n\x1a\n") else "jpg" if raw.startswith(b"\xff\xd8") else "webp" if raw[:4] == b"RIFF" and raw[8:12] == b"WEBP" else suffix
        file = Path(stem + "-" + label + "." + ext)
        file.write_bytes(raw)
        print("Saved", file)
    for index, block in enumerate(data.get("content") or []):
        print("Content", index, json.dumps(block, ensure_ascii=False))
    for choice in data.get("choices") or []:
        print("Choice", choice.get("index"), json.dumps(choice.get("message", choice.get("delta", {})), ensure_ascii=False))
    for index, item in enumerate(data.get("output") or []):
        print("Output", index, json.dumps(item, ensure_ascii=False))
        if item.get("type") == "image_generation_call" and item.get("result"):
            save_blob(item["result"], item.get("output_format") or "bin", "output-" + str(index))
    for ci, candidate in enumerate(data.get("candidates") or []):
        for pi, part in enumerate((candidate.get("content") or {}).get("parts") or []):
            print("Candidate/part", ci, pi, json.dumps(part, ensure_ascii=False))
            blob = part.get("inlineData") or part.get("inline_data")
            if blob and blob.get("data"):
                mime = blob.get("mimeType") or blob.get("mime_type")
                suffix = {"image/png":"png", "image/jpeg":"jpg", "image/webp":"webp", "audio/wav":"wav", "audio/mpeg":"mp3", "video/mp4":"mp4"}.get(mime, "bin")
                save_blob(blob["data"], suffix, "candidate-" + str(ci) + "-part-" + str(pi))

with client.chat.completions.stream(model='~anthropic/claude-opus-latest',messages=[{"role":"user","content":"Explain observations and hypotheses in three sentences."}]) as stream:
    with Path("stream-events.jsonl").open("w",encoding="utf-8") as log:
        for event in stream:
            payload=event.to_dict(mode="json")
            log.write(json.dumps(payload,ensure_ascii=False)+"\n"); log.flush()
            print(json.dumps(payload,ensure_ascii=False))
    final=stream.get_final_completion()
    save_result(final.to_dict(mode="json"),"stream-result")

Odbieranie i zapisywanie wyników

Ailoot Ultra · OpenAI Chat

json lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj każdy wariant i jego treść/wywołania narzędzi/rozumowanie. W SSE składaj przyrosty według indeksu wariantu/narzędzia, zachowując końcowy powód zakończenia i dane użycia.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
Polechoices[].indexTypinteger
Polechoices[].message.contentTypstring|null
Polechoices[].message.tool_callsTyptool_call[]
Polechoices[].message.reasoning_contentTypstring
Polechoices[].message.reasoning_detailsTypobject|array
Polechoices[].finish_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

Ailoot Ultra · Anthropic Messages POST /v1/messages ~anthropic/claude-opus-latest

~anthropic/claude-opus-latest

Anthropic /~anthropic/claude-opus-latest
ID modelu
  • anthropic/claude-opus-5.5
  • ~anthropic/claude-opus-latest

Start

Claude Opus 5.5 służy do dużych zmian inżynierskich i długotrwałej analityki zawodowej. Pomaga sprawdzać wyniki i jasno wyjaśniać złożoną pracę, zachowując zadany styl.

Akceptowane dane wejściowe
Tekst
Wyniki
json · sse

Dostępne w Ailoot · dane wejściowe i metody

Ailoot Ultra · Anthropic Messages POST /v1/messages
Wejście
text
Wyjście
json, sse
Format wyjściowy
JSON lub SSE
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
~anthropic/claude-opus-latest
Domyślnie—
PolemessagesTypmessage[]WymaganieWymaganeWartości i limityDomyślnie—
Polemessages[].roleTypstringWymaganieWymaganeWartości i limity
user, assistant
Domyślnie—
Polemessages[].contentTypstringWymaganieWymaganeWartości i limityDomyślnie—
Polemax_tokensTypintegerWymaganieWymaganeWartości i limityDomyślnie—
PolestreamTypbooleanWymaganieOpcjonalneWartości i limityDomyślniefalse
Kombinacje materiałów wejściowych

Tekst · tekst UTF-8

ciąg messages[].content

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, messages, max_tokens
Parametroptional_controlsKontraktstream
Parametrmaterial_typesKontrakttext
Parametrtext_file_materialKontraktOdczytaj rzeczywisty dokument UTF-8 i umieść jego tekst we wskazanym polu input lub w ciągu treści wiadomości.

Cykl życia: synchronous_or_streamed

Cennik

Informacje taryfowe nie dodają opcji żądania. Obsługiwane parametry podano przy wybranej metodzie.

Tryb szybki
Stawka standardowa Gdy wybrany jest tryb szybki
Tryb flex
Stawka standardowa Gdy wybrany jest tryb flex
Maksymalna intensywność rozumowania
Stawka standardowa Gdy dla maksymalnej intensywności rozumowania stosowana jest domyślna korekta (default)
Intensywność rozumowania · high
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na high
Intensywność rozumowania · low
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na low
Intensywność rozumowania · max
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na max
Intensywność rozumowania · medium
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na medium
Intensywność rozumowania · xhigh
Stawka standardowa Gdy intensywność rozumowania jest ustawiona na xhigh

Stawki Ailoot

Ceny według konfiguracji

Dopasuj każdą opłatę do pokazanych warunków. Użyj jednej stawki dla każdego zestawu alternatywnych konfiguracji.

KonfiguracjaTabela stawekTokeny kontekstu, więcej niżTokeny kontekstu, do podanej wartości włącznieOpłata
KonfiguracjaPodstawowe stawki za tokenyTabela stawekStawka podstawowaTokeny kontekstu, więcej niż—Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów
KonfiguracjaPrzedział długości żądania 1Tabela stawek—Tokeny kontekstu, więcej niż0Tokeny kontekstu, do podanej wartości włącznieBez górnej granicyOpłata
Wejście · Tokeny wejściowe $0.008 / 1K tokenów
Wyjście · Tokeny wyjściowe $0.04 / 1K tokenów
Wejście · Odczyt cache $0.0004 / 1K tokenów
Wejście · Zapis do cache $0.01 / 1K tokenów
Wejście · Zapis do cache, 1 godz. $0.016 / 1K tokenów

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot Ultra · Anthropic Messages

Kompletna minimalna treść żądania JSONcurl · użyj swojego dokumentu UTF-8Python · zapisz kompletny wynik
{
  "model": "~anthropic/claude-opus-latest",
  "max_tokens": 128,
  "messages": [
    {
      "role": "user",
      "content": "Summarize the incident report."
    }
  ],
  "stream": false
}
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_TEXT_FILE:?Set your actual UTF-8 document}"
export AILOOT_TEXT_FILE
python3 - <<'PY_REQUEST'
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~anthropic/claude-opus-latest', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
Path('request.json').write_text(json.dumps(payload, ensure_ascii=False), encoding='utf-8')
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/messages \
  -H "x-api-key: $AILOOT_API_KEY" -H 'anthropic-version: 2023-06-01' -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))
PY_RESULT
import json, os
from pathlib import Path

source_file = Path(os.environ['AILOOT_TEXT_FILE'])
if not source_file.is_file():
    raise SystemExit('Set AILOOT_TEXT_FILE to your actual UTF-8 document')
text = source_file.read_text(encoding='utf-8')
if not text.strip():
    raise SystemExit('Choose a document containing text')
payload = {'model': '~anthropic/claude-opus-latest', 'max_tokens': 128, 'messages': [{'role': 'user', 'content': 'Summarize the incident report.'}]}
payload['messages'][0]['content'] = 'Summarize this material and quote supporting source passages.\n\n' + text
from urllib.request import Request, urlopen
from urllib.error import HTTPError

api_key = os.environ['AILOOT_API_KEY']
if not api_key.strip():
    raise SystemExit('Set AILOOT_API_KEY before making a request')
headers = {'x-api-key': 'PLACEHOLDER_KEY', 'anthropic-version': '2023-06-01', 'Content-Type': 'application/json'}
headers['x-api-key'] = api_key
request = Request('https://api.ailoot.ai/v1/messages', data=json.dumps(payload, ensure_ascii=False).encode('utf-8'), headers=headers, method='POST')
try:
    with urlopen(request, timeout=120) as response:
        raw = response.read()
        Path('response-headers.txt').write_text(str(response.headers), encoding='utf-8')
except HTTPError as error:
    Path('result.json').write_bytes(error.read())
    Path('response-headers.txt').write_text(str(error.headers), encoding='utf-8')
    raise
Path('result.json').write_bytes(raw)
import json
from pathlib import Path

result = json.loads(Path('result.json').read_text(encoding='utf-8'))
print(json.dumps(result, ensure_ascii=False, indent=2))

Odbieranie i zapisywanie wyników

Ailoot Ultra · Anthropic Messages

JSON lub SSE

Zachowaj wszystkie ukończone wyniki

Zachowaj każdą kompletną zwróconą odpowiedź, plik i część treści.

Zachowaj wszystkie bloki treści, sygnatury myślenia i rzeczywiste ID użycia narzędzi. Złóż wszystkie przyrosty bloków SSE; pierwszy blok tekstowy nie jest pełnym wyjściem.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Zachowaj ID i nagłówki żądań/odpowiedzi. Nie udostępniono ogólnego URL pobierania zadania tekstowego.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PolemodelTypstring
Polecontent[]Typtext|thinking|tool_use|other content block
Polestop_reasonTypstring|null
PoleusageTypobject
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.

Aliasy

Aliasy modelu

Ailoot claude-opus-5-5, claude-opus, claude-opus-latest
Ailoot Ultra anthropic/claude-opus-5.5, ~anthropic/claude-opus-latest

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

anthropic/claude-opus-5.5, claude-opus, claude-opus-latest, ~anthropic/claude-opus-latest, claude-opus-5-5

FAQ · Anthropic: Claude Opus 5.5
Jakie dane wejściowe i wyniki są dostępne?

POST /v1/messages · claude-opus-5-5: text, image → text

POST /v1/responses · claude-opus-5-5: text, image → text

POST /v1/chat/completions · claude-opus-5-5: text, image → text

POST /v1/messages · claude-opus: text, image → text

POST /v1/messages · claude-opus-latest: text, image → text

POST /v1/chat/completions · anthropic/claude-opus-5.5: text → text

POST /v1/messages · anthropic/claude-opus-5.5: text → json, sse

POST /v1/chat/completions · ~anthropic/claude-opus-latest: text → text

POST /v1/messages · ~anthropic/claude-opus-latest: text → json, sse

Jakich pól używa żądanie?

POST /v1/messages · claude-opus-5-5: model, messages, system, max_tokens, stream, metadata

POST /v1/responses · claude-opus-5-5: model, input, instructions, stream

POST /v1/chat/completions · claude-opus-5-5: model, messages, stream

POST /v1/messages · claude-opus: model, messages, system, max_tokens, stream, metadata

POST /v1/messages · claude-opus-latest: model, messages, system, max_tokens, stream, metadata

POST /v1/chat/completions · anthropic/claude-opus-5.5: model, messages, stream, modalities, provider

POST /v1/messages · anthropic/claude-opus-5.5: model, messages, max_tokens, stream

POST /v1/chat/completions · ~anthropic/claude-opus-latest: model, messages, stream, modalities, provider

POST /v1/messages · ~anthropic/claude-opus-latest: model, messages, max_tokens, stream

Jakie limity obowiązują?

POST /v1/messages · claude-opus-5-5: ctx: 1000000; max_out: 131072; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/responses · claude-opus-5-5: ctx: 1000000; max_out: 131072

POST /v1/chat/completions · claude-opus-5-5: ctx: 1000000; max_out: 131072; messages.min_items: 1

POST /v1/messages · claude-opus: ctx: 1000000; max_out: 131072; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/messages · claude-opus-latest: ctx: 1000000; max_out: 131072; messages.min_items: 1; max_tokens.minimum: 1

POST /v1/chat/completions · anthropic/claude-opus-5.5: messages.min_items: 1

POST /v1/chat/completions · ~anthropic/claude-opus-latest: messages.min_items: 1

Więcej szczegółów

Połącz Ailoot z Claude Code, OpenCode, Hermes albo własną aplikacją.

Firma i jej portfel projektów

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

Kupuj tokeny z rabatem.

Rabat subskrypcji do regularnej pracy. Kody promocyjne — do 50% na tokeny.

Subskrypcja
Wybierz plan z rabatem do regularnych żądań.
Kod promocyjny do 50%
Wpisz kod przy zakupie. Cena zostanie przeliczona według aktualnej promocji.
Koszty w historii
Model, tokeny i kwota są zapisywane dla każdego żądania.

Wybierz subskrypcję · Sprawdź ceny modeli

Połącz API z produktem, który sprzedajesz.

SaaS, aplikacje i boty na warunkach oferty i umowy licencyjnej Ailoot. Do odsprzedaży poproś o licencję resellerską.

Aplikacja komercyjna
Wbuduj generowanie tekstu, obrazów, wideo i dźwięku w płatne funkcje usługi.
Licencja resellerska
Prześlij opis projektu i schemat dostępu. Poproś o pisemne warunki używania i odsprzedaży.
Dokumenty na stronie
Oferta, umowa licencyjna i polityka przetwarzania danych są dostępne przed połączeniem.

Poproś o licencję resellerską · Oferta i umowa licencyjna