Jina Search Foundation API
Best-in-class embeddings, rerankers, and classifiers. Search AI for multilingual and multimodal data. ## Capabilities - **Text Embeddings**: Dense vector representations for semantic search, similarity, and classification - **Multimodal Embeddings**: Process images, PDFs, and text in a unified vector space - **Reranking**: Refine search results with precise relevance scoring - **Classification**: Zero-shot and few-shot text classification - **Multi-vector Embeddings**: Token-level embeddings for ColBERT and late interaction ## Authentication Include your API key in the `Authorization` header: ``` Authorization: Bearer jina_YOUR_API_KEY ``` Get your API key at [jina.ai/api-dashboard/key-manager](https://jina.ai/api-dashboard/key-manager). New users receive **10M free tokens**. ## Rate Limits | Tier | RPM | TPM | Concurrency | |------|-----|-----|-------------| | Free | 500 | 1M | 5 | | Tier 1 | 500 | 10M | 50 | | Tier 2 | 5,000 | 100M | 500 | Rate limit headers are included in responses: `X-RateLimit-Remaining-Requests`, `X-RateLimit-Remaining-Tokens`. ## Error Codes All endpoints may return the following errors. Endpoint-specific errors are documented per operation. | Code | Status | Description | |------|--------|-------------| | `INPUT_MODEL_NOT_FOUND` | 400 | Model 'X' not found | | `INPUT_INVALID_LABELS` | 400 | Invalid training labels | | `INPUT_LABEL_LIMIT_EXCEEDED` | 400 | Label limit exceeded: {current} labels provided, maximum N allowed for your plan | | `AUTH_MISSING_API_KEY` | 401 | Authentication required | | `AUTH_INVALID_API_KEY` | 401 | Invalid API key | | `AUTH_INVALID_FORMAT` | 401 | Invalid authorization format | | `AUTHZ_INSUFFICIENT_BALANCE` | 403 | Insufficient account balance | | `AUTHZ_RESOURCE_LIMIT_EXCEEDED` | 403 | Resource limit exceeded for your plan | | `RESOURCE_NOT_FOUND` | 404 | {resource_type} '{resource_id}' not found or access denied | | `CONFLICT_RESOURCE_BUSY` | 409 | {resource_type} '{resource_id}' is currently being modified | | `RATE_REQUEST_LIMIT_EXCEEDED` | 429 | Request rate limit exceeded: {current}/N requests per minute | | `RATE_TOKEN_LIMIT_EXCEEDED` | 429 | Token rate limit exceeded: {current:,}/{limit:,} tokens per minute | | `RATE_CONCURRENCY_LIMIT_EXCEEDED` | 429 | Concurrency limit exceeded: {current}/N concurrent requests | | `RATE_IP_LIMIT_EXCEEDED` | 429 | IP rate limit exceeded | | `INTERNAL_ERROR` | 500 | An unexpected error occurred | | `SERVICE_UNAVAILABLE` | 503 | Service temporarily unavailable | | `SERVICE_TIMEOUT` | 504 | Request timed out after {timeout_seconds} seconds |
