Skip to content

LLM API: 300+ AI Models

Try for free

Use GPT, Claude, Gemini, Grok, DeepSeek, Llama and 300+ other AI models without your own API keys. Run a batch of prompts, or call it as an OpenAI-compatible API from any SDK. Models via OpenRouter.

πŸ€– LLM API: 300+ AI Models

Use GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Mistral, Llama and 300+ other AI models with your Scrape.ly account, with no OpenAI, Anthropic or Google API keys of your own. Run a batch of prompts from the dashboard and get one row per answer, or point the OpenAI SDK at this actor and use it as an OpenAI-compatible API. Models come through OpenRouter, so any model ID from openrouter.ai/models works.

✨ Why use LLM API?

  • πŸ”‘ No extra API keys: one Scrape.ly account and balance for scraping and AI. No separate accounts or invoices at OpenAI, Anthropic, Google or OpenRouter.
  • 🧠 Every major model: pick from the list (GPT-5.6, Claude Opus/Sonnet/Haiku 5.5, Gemini 3.8 Flash, Grok 4.7, DeepSeek V4.1, Qwen3.8, Mistral Medium 3.5, Muse Spark) or type any OpenRouter model ID.
  • πŸ“‹ Batch prompts: paste many prompts, run them in parallel, and get a table with every answer, its token counts and any error.
  • 🧩 Structured output: give a JSON schema, or tick Answer as JSON, and the parsed answer lands in its own json field, ready for spreadsheets and integrations.
  • πŸ”Œ OpenAI-compatible endpoint: in Standby mode the actor serves /v1/chat/completions, /v1/responses, /v1/messages, /v1/embeddings and /v1/models, streaming included. Existing OpenAI, OpenRouter and Anthropic SDK code works by changing the base URL and key.
  • πŸ–ΌοΈ Images in and out: send images as links or pasted image data for the model to read, one by one or all at once, and get generated images back as files from models that make images.
  • πŸ’Έ Free actor: no fee for the actor itself. You pay only for the model's tokens and the run, no subscription.

🎯 Use cases

  • 🌍 Translate scraped reviews, product pages or posts.
  • 🏷️ Classify and tag leads, companies, tickets or reviews (sentiment, category, B2B or B2C).
  • πŸ“ Summarize articles, transcripts and long pages.
  • πŸ”Ž Extract fields from scraped text into clean JSON with a schema.
  • ✍️ Write product descriptions, outreach drafts and ad copy in bulk.
  • πŸ› οΈ Power your own app with any model through one OpenAI-compatible API.

πŸš€ How to use

In the dashboard (batch)

  1. Pick a Model, or type any OpenRouter model ID.
  2. Write your Prompt, and add more lines to More prompts for a batch (one prompt per line).
  3. Optionally add Images (links or pasted data:image/...;base64,... data) and choose whether every prompt sees all of them or each image gets its own request.
  4. Optionally add a System prompt, a Temperature, Max output tokens or a JSON schema, or tick Generate images with a model that makes images (for example google/gemini-3.1-flash-image); generated images are saved to the run's storage and linked in the images field.
  5. Click Start. Each prompt becomes one row; download the results as JSON, CSV or Excel or send them on with an integration.

As an API (OpenAI-compatible)

Use your Scrape.ly API token as the API key and this base URL:

https://api.scrape.ly/v2/querystone/llm-api/v1
import OpenAI from 'openai';

const client = new OpenAI({
    baseURL: 'https://api.scrape.ly/v2/querystone/llm-api/v1',
    apiKey: process.env.SCRAPELY_TOKEN,
});

const res = await client.chat.completions.create({
    model: 'anthropic/claude-sonnet-5.5',
    messages: [{ role: 'user', content: 'Write a haiku about web scraping.' }],
});
console.log(res.choices[0].message.content);
from openai import OpenAI

client = OpenAI(base_url="https://api.scrape.ly/v2/querystone/llm-api/v1", api_key="YOUR_SCRAPELY_TOKEN")
stream = client.chat.completions.create(
    model="openai/gpt-5.6-luna",
    messages=[{"role": "user", "content": "Explain rate limiting in one paragraph."}],
    stream=True,
)
for chunk in stream:
    print(chunk.choices[0].delta.content or "", end="")
curl https://api.scrape.ly/v2/querystone/llm-api/v1/chat/completions \
  -H "Authorization: Bearer $SCRAPELY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"model": "google/gemini-3.8-flash", "messages": [{"role": "user", "content": "Hello!"}]}'

The first request after a quiet period starts the actor, which takes a few seconds. After that it stays warm while requests keep coming, and stops on its own after 5 idle minutes.

πŸ“₯ Input example

{
    "model": "anthropic/claude-haiku-5.5",
    "systemPrompt": "You classify customer reviews.",
    "prompts": [
        "The battery died after two days, total waste of money.",
        "Der Kundenservice war sehr hilfsbereit und schnell."
    ],
    "jsonSchema": {
        "type": "object",
        "properties": {
            "sentiment": { "type": "string", "enum": ["positive", "negative", "neutral"] },
            "language": { "type": "string" },
            "summary": { "type": "string" }
        },
        "required": ["sentiment", "language", "summary"],
        "additionalProperties": false
    }
}

πŸ“€ Output example

{
    "index": 1,
    "prompt": "Der Kundenservice war sehr hilfsbereit und schnell.",
    "model": "anthropic/claude-haiku-5.5",
    "answer": "{\"sentiment\": \"positive\", \"language\": \"German\", \"summary\": \"The customer found the customer service very helpful and fast.\"}",
    "json": { "sentiment": "positive", "language": "German", "summary": "The customer found the customer service very helpful and fast." },
    "finishReason": "stop",
    "inputTokens": 308,
    "outputTokens": 41,
    "error": null
}
FieldWhat it is
answerThe model's answer as text
jsonThe parsed answer when Answer as JSON or a JSON schema is set
inputImagesThe images sent with this prompt (pasted image data is shortened)
imagesLinks to the images the model generated, saved in the run's storage
finishReasonstop when the answer is complete, length when it hit the output limit
inputTokens, outputTokensTokens used by the prompt and the answer
errorWhy a prompt failed, otherwise empty

πŸ’° Pricing

  • The actor is free: no fee per prompt or per API call.
  • Model usage: the model's own token price, billed to your account as AI model usage at your plan's AI rate. It shows up in the run's cost breakdown. Prices per model are listed on openrouter.ai/models.
  • Platform usage: the run's compute, billed on top. The actor runs with 256 MB of memory, so this is a fraction of a cent for most runs.

The Free plan has a daily AI spending limit and a cap on output tokens per request; paid plans don't.

❓ FAQ

Which models can I use? Every model on openrouter.ai/models. Type its ID (author/model) in Model, or pass it as model in the API.

Does streaming work? Yes. Send stream: true and the answer is streamed as it is generated.

Can I use the Anthropic SDK? Yes. Use https://api.scrape.ly/v2/querystone/llm-api as the base URL (the SDK adds /v1/messages itself).

Can I cap what a run spends? Yes. Set a maximum charge for the run (maxTotalChargeUsd); model usage counts toward it, and requests that would go over it are refused.

Related actors

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes.

No credit card. No setup calls.