---
title: "ETH Zurich SPH LLM API free inference"
description: "A recurring no-cost API allowance covering 5 cataloged models."
canonical_url: "https://freeinferencing.com/provider/eth_sph_llm_api/"
md_url: "https://freeinferencing.com/provider/eth_sph_llm_api.md"
last_updated: "2026-09-19"
---

# ETH Zurich SPH LLM API

> A recurring no-cost API allowance covering 5 cataloged models.

## Classification

- **Directory:** Current
- **Free access:** Always-free quota
- **Status:** Restricted access
- **Confidence:** Medium High
- **Payment card:** No
- **Account:** Not documented
- **Equivalent paid value:** $30.00/mo
- **API endpoint:** `https://litellm.sph-prod.ethz.ch`

## Models mentioned

- `openrouter/openai/gpt-4.1-mini`
- `openrouter/google/gemini-2.5-flash`
- `openrouter/google/gemini-2.5-flash-image`
- `openrouter/deepseek/deepseek-v4-flash`
- `openrouter/meta-llama/llama-3.3-70b-instruct`

## Limits and terms

```yaml
recurring_budget_usd_per_month: 30
concurrent_requests: 2
requests_per_minute: 30
tokens_per_minute: 300000
```

## What happens to your prompts?

**Partially private.** SPH routes requests through OpenRouter aliases and publishes no plan-specific prompt/output retention, training, operator-access, or deletion commitment.

Privacy is audited separately from price. Review the current governing terms before sending sensitive or regulated data.

## Data governance and agreements

```yaml
data_governance:
  review_status: partial
  plan_scope: ETH Student Project House LLM API keys for active supported projects.
  prompt_retention: The public SPH service page does not publish a prompt-retention period.
  response_retention: not_documented
  ordinary_logging: not_documented
  model_training: No SPH-plan no-training commitment was found; selected upstream
    OpenRouter model-provider terms can differ.
  product_improvement: not_documented
  human_or_operator_access: SPH, OpenRouter, and the selected upstream provider
    may process request content; access controls are not publicly described.
  subprocessors_and_routing: Every documented model ID uses an openrouter/ prefix,
    making OpenRouter and its selected model provider additional processing
    parties.
  deletion_controls: No SPH or upstream per-request deletion control is documented
    on the public page.
  caveat: The USD 30 project allowance and limits are public, but data handling
    requires route-specific OpenRouter and upstream-provider review before
    sensitive use.
```

## Eligibility

```yaml
supported_project_required: true
application_or_project_approval_required: true
payment_method_required: false
```

## API compatibility and modalities

- **Compatibility:** OpenAI Compatible Litellm
- **Modalities:** Text generation, Image / vision
- **Geography:** Switzerland

## Before you build with ETH Zurich SPH LLM API

### Read the classification narrowly

This record describes the bounded offer supported by evidence on 2026-09-19; it does not guarantee permanence, production suitability, uptime, latency, model quality, or access from every account and region. “Always-free quota” should be interpreted together with the Current directory placement, Medium High confidence, No payment-card status, and the plan-specific sources below.

### Resolve the live model route

The snapshot records 5 model IDs. Match the exact ID against the provider's current catalog before using it in code because zero-price routes, aliases, context limits, and feature support can rotate while an older documentation page remains online.

### Match the quota to the workload shape

Translate the allowance into peak requests per minute, input and output tokens, concurrency, retries, and every daily or monthly ceiling that applies to the intended account. The first limit reached by the workload is the practical ceiling. A large token pool can still fail interactive bursts, and a high request limit can still fail long-context work. Include tool calls and retry traffic, test the largest realistic payload, and treat research, experimental, and community access as conditional on their eligibility and fair-use terms.

### Preserve billing and privacy boundaries

The recorded payment-card requirement is No, and account access is not documented. Confirm both in the live signup flow, set provider-side budgets when charges are possible, and observe the balance or usage fields after a complete request. The prompt-handling classification is **Partially private** because SPH routes requests through OpenRouter aliases and publishes no plan-specific prompt/output retention, training, operator-access, or deletion commitment. Re-read the terms for the exact route and plan before sending sensitive, regulated, or proprietary content.

### Follow the evidence, then re-check it

This record links 2 first-party sources covering the offer, catalog, limits, pricing, terms, privacy, or adoption evidence available to the audit. Prefer the newest and most specific governing document or live catalog when sources disagree. A dated finding can become stale even when the page remains online, so retain the source and snapshot that supported the decision and submit a correction when a provider changes a material term.

### Plan fallback without policy drift

A fallback should preserve modality, context length, streaming, structured output, tools, safety controls, and data terms, not only API syntax. Decide which errors may retry, cap retry storms, and prevent an exhausted free route from silently switching to a billable model. Rotating aliases and free pools can change behavior without changing the endpoint, so retain the response model field and test at least one substitute route before the primary offer becomes unavailable.

### Monitor the offer as a dependency

Capture the model ID, response model, rate-limit headers, usage fields, latency, HTTP status, and provider request identifier. Watch authorization failure, quota exhaustion, catalog removal, policy revision, and balance movement as separate failure modes. Re-check the live catalog and governing sources on a schedule proportionate to the workload's importance, and keep an owner and exit path for any production dependency on volatile free capacity.

### Test one complete request before scaling

Start with the smallest permitted request using the exact credential, model ID, endpoint, region, and account type intended for deployment. Record the status, headers, usage fields, response model, latency, and dashboard balance movement. Then exercise an invalid model, quota exhaustion, or rate limit so failure is explicit and cannot silently switch to a paid route. Validate streaming, structured output, and tool calls separately because a free model can expose fewer features than its paid counterpart. Keep a budget ceiling outside the application whenever billing is possible, and do not send sensitive data until the observed route matches the reviewed agreement.

## Primary sources

- [SPH tools and machines - AI](https://sph.ethz.ch/tools-machines?category=ai): Official Product
- [OpenRouter privacy documentation](https://openrouter.ai/docs/features/privacy-and-logging): Linked Upstream

## Sitemap

See the full [semantic sitemap](/sitemap.md) for every page and markdown mirror.
