> For the complete documentation index, see [llms.txt](https://docs.roboflow.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.roboflow.com/developer/python-sdk/universe-search.md).

# Universe Search

[Roboflow Universe](https://universe.roboflow.com) is the public catalog of community-shared projects, datasets, and models. The Python SDK exposes a low-level adapter you can use to search Universe programmatically.

## Search

```python
from roboflow.adapters import rfapi

results = rfapi.search_universe(
    "vehicles",
    api_key="YOUR_API_KEY",
    project_type="object-detection",  # optional
    limit=12,
    page=1,
)

for project in results.get("results", []):
    print(project["workspace"], project["project"], project["name"])
```

### Parameters

* `query` (str, positional) - search term.
* `api_key` (str, kw-only) - your Roboflow API key. Required for Universe rate limits.
* `project_type` (str, kw-only, optional) - filter by project type. One of `object-detection`, `classification`, `instance-segmentation`, `semantic-segmentation`, `keypoint-detection`.
* `limit` (int, kw-only, default `12`) - page size.
* `page` (int, kw-only, default `1`) - 1-indexed page number.

### Response

The function returns the JSON response body verbatim. Each result entry includes the workspace slug, project slug, project name, type, image count, and (for trained models) version metadata you can plug straight into `Roboflow().workspace(...).project(...).version(...).model.predict()`.

Each result also includes `thumbnail` and `annotationThumbnail` fields (both nullable strings). `thumbnail` is a URL to the project's thumbnail image, and `annotationThumbnail` is a URL to a sample annotated image from the project. Either field is `null` when the corresponding data is unavailable.

## Run a Universe model directly

Once you've found a model with `search_universe`, run inference on it the same way you would your own model:

```python
import roboflow

rf = roboflow.Roboflow(api_key="YOUR_API_KEY")
project = rf.workspace("roboflow-100").project("poker-cards-cxcvz")
model = project.version(1).model

predictions = model.predict("hand.jpg", confidence=50, overlap=30).json()
```

See [Run a Model on an Image](/developer/python-sdk/run-a-model-on-an-image.md) for details on `predict()` across task types.

## CLI equivalent

```bash
roboflow universe search vehicles --type object-detection --limit 12
```

See [Universe Search (CLI)](/developer/command-line-interface/universe-search.md).
