with one click
roboflow-api-reference
// Protocol-level facts for Roboflow REST and Inference APIs — URL patterns, auth, parameters, error codes, and SDK quick-start. For deployment strategy and Workflow execution patterns, see roboflow-inference.
// Protocol-level facts for Roboflow REST and Inference APIs — URL patterns, auth, parameters, error codes, and SDK quick-start. For deployment strategy and Workflow execution patterns, see roboflow-inference.
Use when uploading images, labeling, organizing datasets, creating Roboflow projects (detection/segmentation/keypoint/classification), tags, splits, versions, or RoboQL search.
Use when searching for or using public datasets/models on Roboflow Universe (universe.roboflow.com), the open repository of 1M+ computer vision datasets and 50K+ pre-trained models.
Use when training Roboflow models or improving accuracy - covers architecture selection, model IDs, checkpoints, evaluation metrics, and the iterative improvement playbook.
Deployment option comparison (serverless, dedicated, self-hosted, batch) and Workflow execution patterns. For raw API URL patterns, auth, and request/response formats, see roboflow-api-reference.
Use when answering questions about Roboflow plans, credit usage, or cost estimation; directs users to roboflow.com/pricing for current dollar amounts.
Use when explaining where Roboflow features live in the app.roboflow.com web app, mapping intents like upload, annotate, train, deploy to specific page URLs.
| name | roboflow-api-reference |
| description | Protocol-level facts for Roboflow REST and Inference APIs — URL patterns, auth, parameters, error codes, and SDK quick-start. For deployment strategy and Workflow execution patterns, see roboflow-inference. |
For agents — source-of-truth: This skill is authored in
roboflow/computer-vision-skillsand shipped with the Roboflow plugin. If your client has loaded the plugin (you'll seeroboflow:<name>skills in your available skills list), use those local skills — they're read fresh from disk every session. The same content served as MCP resources atroboflow://skills/<name>/...is a fallback for clients without the plugin and may lag this repo. Don't callReadMcpResourceToolforroboflow://skills/...URIs when a localroboflow:<name>skill is available.
Tip: If you're connected to the Roboflow MCP server, prefer its tools (
projects_*,versions_*,models_*,workflows_*,images_*, …) over raw REST calls — they handle auth, pagination, and typed responses for you. The REST patterns below stay relevant if you're not using MCP.
| Host | Base URL | Purpose |
|---|---|---|
| Platform API | https://api.roboflow.com | CRUD for projects, images, versions, training, upload |
| Serverless Inference | https://serverless.roboflow.com | Model inference + Workflow execution |
| Dedicated Deployment | https://<name>.roboflow.cloud | Private GPU inference (same API as serverless) |
| Self-hosted Inference | http://localhost:9001 | Local inference server via inference package |
Use the inference-sdk Python package as the preferred client for all inference hosts. It handles auth, retries, and response parsing.
| Method | Where | Format |
|---|---|---|
| Query parameter | All hosts | ?api_key=YOUR_KEY |
| Request body | Platform API + Workflow inference | "api_key": "YOUR_KEY" in JSON body |
| Header | MCP server (mcp.roboflow.com) | x-api-key: YOUR_KEY (handled automatically by MCP) |
API keys are workspace-scoped. Get yours from Workspace Settings > API Keys in the Roboflow dashboard (app.roboflow.com/{workspace}/settings/api). Personal API keys are at /settings/account → API Keys tab.
| SDK | Install | Primary Use |
|---|---|---|
Python (inference-sdk) | pip install inference-sdk | Inference via InferenceHTTPClient |
Python (roboflow) | pip install roboflow | Upload, training, project management |
JavaScript (roboflow.js) | Browser script tag | Real-time on-device web inference |
| iOS (Swift) | CocoaPods/SPM | On-device mobile inference |
from inference_sdk import InferenceHTTPClient
CLIENT = InferenceHTTPClient(
api_url="https://serverless.roboflow.com", # or dedicated URL, or localhost
api_key="YOUR_KEY"
)
result = CLIENT.infer("image.jpg", model_id="your-project/1")
import roboflow
rf = roboflow.Roboflow(api_key="YOUR_KEY")
project = rf.workspace("my-workspace").project("my-project")
# Upload
project.upload(image_path="image.jpg", split="train")
# Inference
model = project.version(1).model
result = model.predict("image.jpg", confidence=40).json()
| Task | Host to Use |
|---|---|
| Run model inference | serverless.roboflow.com |
| Run Workflows | serverless.roboflow.com |
| Upload images | api.roboflow.com |
| Manage projects/versions | api.roboflow.com |
| Start training | api.roboflow.com |
| High-throughput / SLA inference | Dedicated deployment URL |
| Air-gapped / on-prem inference | Self-hosted localhost:9001 |
| Real-time video / webcam / RTSP | WebRTC via inference_sdk.webrtc against serverless or local — see roboflow://skills/inference/workflows ("Video Stream" section). Not a plain HTTP call. |
roboflow://skills/api-reference/inference — inference URL patterns, request/response formatsroboflow://skills/api-reference/rest-api — platform REST API endpoints (CRUD, upload, training)