---
title: "Create Workspace Registry"
method: POST
path: "/v1/workspaces/{workspace}/workspace-registries"
tags: ["v1", "protected", "registries"]
---

# Create Workspace Registry

`POST /v1/workspaces/{workspace}/workspace-registries`

## Request

- The document declares no server URL.
- Auth: HTTP bearer

## Path parameters

- `workspace` string, required: Slug of the workspace the request acts in

## Request body

- WorkspaceRegistryCreate
  - `credentials_secret_id` string, uuid, nullable: A workspace secret holding the token a private source is read with
  - `description` string, nullable
  - `mode` 'mirror' | 'upstream': 'mirror' stores every skill's content when the registry syncs, so an install needs no network; 'upstream' fetches it on first install. A source read with credentials is mirrored.
  - `name` string, required
  - `registry_type` 'skills' | 'agents'
  - `source_path` string, nullable: GitHub: the folder whose skill folders are indexed; the root if unset
  - `source_ref` string, nullable: GitHub: branch, tag or commit; the default branch if unset
  - `source_type` 'url' | 'github', required: 'url': an index in the platform format; 'github': a repository
  - `source_url` string, required: The index URL, or the repository as owner/repo
  - `trust` 'private' | 'community'

## Response `201`

Successful Response

- RegistryResponse
  - `created_at` string, date-time, required
  - `credentials_secret_id` string, uuid, nullable
  - `description` string, nullable, required
  - `id` string, uuid, required
  - `is_active` boolean, required
  - `item_count` integer, required
  - `last_sync_error` string, nullable, required
  - `last_synced_at` string, date-time, nullable, required
  - `mode` 'mirror' | 'upstream', required
  - `name` string, required
  - `recommendation_priority` integer, required
  - `registry_type` string, required
  - `scope` 'platform' | 'workspace', required
  - `source_path` string, nullable
  - `source_ref` string, nullable
  - `source_type` string, required
  - `source_url` string, required
  - `trust` 'official' | 'verified' | 'community' | 'private', required
  - `updated_at` string, date-time, required
  - `workspace_id` string, nullable

## Other responses

- `422`: Validation Error

## Changes

- **2026-10-20** `2dff4ebbb4eb`: 1 breaking
  - removed the required property `sync_mode` from the response with the `201` status
- **2026-10-19** `32e3ecc10543`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/agentarea/apis/agentarea-api/changes/v1/workspaces/:workspace/workspace-registries/post.md)

---

[API](https://skmtc.dev/agentarea/apis/agentarea-api.md) - [All operations](https://skmtc.dev/agentarea/apis/agentarea-api/llms.txt) - [OpenAPI document](https://skmtc.dev/agentarea/apis/agentarea-api/revisions/5b651833a114?raw)
