Marketplace
Browse, publish, install and rate agents, skills, personas, prompts, templates and tools.
Each listing has a validated manifest the router can load; `GET /registry/{slug}/manifest` is what `registry://` references resolve to.
get /api /v1 /me /installs
My Installs
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| x-goog-api-key | header | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s "$OSR_URL/api/v1/me/installs" \
-H "Authorization: Bearer $OSR_API_KEY"get /api /v1 /me /listings
My Listings
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| x-goog-api-key | header | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s "$OSR_URL/api/v1/me/listings" \
-H "Authorization: Bearer $OSR_API_KEY"get /api /v1 /registry
Search
No authentication
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| q | query | string | "" | |
| kind | query | string | null | ||
| tag | query | string | null | ||
| price | query | string | null | ||
| featured | query | boolean | null | ||
| sort | query | string | "popular" | |
| limit | query | integer | 24 | |
| offset | query | integer | 0 |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
curl -s "$OSR_URL/api/v1/registry?q=&sort=popular"post /api /v1 /registry
Create
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| x-goog-api-key | header | string | null |
Request bodyListingIn
| Field | Type | Default | Description |
|---|---|---|---|
| domains | string[] | ||
| kind(required) | string | ||
| license | string | "Apache-2.0" | |
| manifest | object | ||
| name(required) | string | ||
| price_usd | number | 0 | |
| readme | string | "" | |
| slug | string | null | ||
| submit | boolean | false | |
| summary | string | "" | |
| tags | string[] | ||
| version | string | "1.0.0" |
Responses
| 201 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X POST "$OSR_URL/api/v1/registry" \
-H "Authorization: Bearer $OSR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "kind": "string", "name": "default" }'{
"kind": "string",
"name": "default"
}get /api /v1 /registry /kinds
Kinds
No authentication
Responses
| 200 | Successful Response |
curl -s "$OSR_URL/api/v1/registry/kinds"get /api /v1 /registry /sitemap
Sitemap
slug and updated_at of the published listings worth indexing, for the XML sitemap (no auth, cheap
to page): native listings and imported ones with substance - a README, an install, a rating or a mark.
No authentication
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| limit | query | integer | 5000 | |
| offset | query | integer | 0 |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
curl -s "$OSR_URL/api/v1/registry/sitemap?limit=5000&offset=0"get /api /v1 /registry /{slug}
Get Listing
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s "$OSR_URL/api/v1/registry/<slug>" \
-H "Authorization: Bearer $OSR_API_KEY"patch /api /v1 /registry /{slug}
Patch
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Request bodyListingPatch
| Field | Type | Default | Description |
|---|---|---|---|
| domains | string[] | null | ||
| license | string | null | ||
| manifest | object | null | ||
| name | string | null | ||
| price_usd | number | null | ||
| readme | string | null | ||
| summary | string | null | ||
| tags | string[] | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X PATCH "$OSR_URL/api/v1/registry/<slug>" \
-H "Authorization: Bearer $OSR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "domains": [], "license": "string", "manifest": {}, "name": "default", "price_usd": 0.5, "readme": "string", "summary": "string", "tags": [] }'{
"domains": [],
"license": "string",
"manifest": {},
"name": "default",
"price_usd": 0.5,
"readme": "string",
"summary": "string",
"tags": []
}post /api /v1 /registry /{slug} /archive
Archive
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X POST "$OSR_URL/api/v1/registry/<slug>/archive" \
-H "Authorization: Bearer $OSR_API_KEY"post /api /v1 /registry /{slug} /install
Install
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X POST "$OSR_URL/api/v1/registry/<slug>/install" \
-H "Authorization: Bearer $OSR_API_KEY"get /api /v1 /registry /{slug} /manifest
Manifest
No authentication
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| version | query | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
curl -s "$OSR_URL/api/v1/registry/<slug>/manifest"get /api /v1 /registry /{slug} /reviews
Reviews
No authentication
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
curl -s "$OSR_URL/api/v1/registry/<slug>/reviews"put /api /v1 /registry /{slug} /reviews
Review
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Request bodyReviewIn
| Field | Type | Default | Description |
|---|---|---|---|
| body | string | "" | |
| rating(required) | integer | ||
| title | string | "" |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X PUT "$OSR_URL/api/v1/registry/<slug>/reviews" \
-H "Authorization: Bearer $OSR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "rating": 1 }'{
"rating": 1
}delete /api /v1 /registry /{slug} /reviews
Delete Review
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Responses
| 204 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X DELETE "$OSR_URL/api/v1/registry/<slug>/reviews" \
-H "Authorization: Bearer $OSR_API_KEY"post /api /v1 /registry /{slug} /submit
Submit
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X POST "$OSR_URL/api/v1/registry/<slug>/submit" \
-H "Authorization: Bearer $OSR_API_KEY"post /api /v1 /registry /{slug} /unarchive
Unarchive
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Responses
| 200 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X POST "$OSR_URL/api/v1/registry/<slug>/unarchive" \
-H "Authorization: Bearer $OSR_API_KEY"post /api /v1 /registry /{slug} /versions
Add Version
Requires an API key
Parameters
| Name | In | Type | Default | Description |
|---|---|---|---|---|
| slug(required) | path | string | ||
| x-goog-api-key | header | string | null |
Request bodyVersionIn
| Field | Type | Default | Description |
|---|---|---|---|
| changelog | string | "" | |
| manifest(required) | object | ||
| version(required) | string |
Responses
| 201 | Successful Response |
| 422 | Validation ErrorHTTPValidationError |
| 401 | Missing, invalid or revoked API key |
curl -s -X POST "$OSR_URL/api/v1/registry/<slug>/versions" \
-H "Authorization: Bearer $OSR_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "manifest": {}, "version": "string" }'{
"manifest": {},
"version": "string"
}Something wrong or out of date on this page? Tell us - the page is named for you, so a one-line note is enough.
MCP server
Model Context Protocol server for IDEs and agents (VS Code, Cursor, Claude, Windsurf): `POST /mcp` speaks JSON-RPC with tools to route, quote, recommend, explain and ask; `GET /mcp` describes it.
Model providers
Model providers: `GET /providers` is the public, OpenRouter-style view of what this deployment executes on (provider, upstream model, prices, health per executable target - never credentials); the `/admin/providers` endpoints add, check and map OpenAI-compatible endpoints at run time, and every API replica picks the change up without a restart.