---
title: "POST /v1/workspaces/{workspaceNameOrID}/skill-inventories"
method: POST
path: "/v1/workspaces/{workspaceNameOrID}/skill-inventories"
tags: ["SkillInventory"]
---

# POST /v1/workspaces/{workspaceNameOrID}/skill-inventories

`POST /v1/workspaces/{workspaceNameOrID}/skill-inventories`

Creates (or returns) the workspace's skill inventory for a connected SCM provider, deriving the org-equivalent from the workspace's integration. This is the backend-driven bootstrap for the read-only scan model: after connecting a provider, create the inventory here, opt it into private indexing, then start a scan. Returns 422 (scm_not_connected) when the workspace has no integration for the requested provider. `created` is false when the inventory already existed.

## Path parameters

- `workspaceNameOrID` string, required

## Headers

- `Authorization` string

## Request body

- object
  - `provider` union, required
    - 'github'
    - 'gitlab'
    - 'bitbucket'

## Response `200`

Default Response

- object
  - `links` object, required
    - `self` string, uri, required
  - `data` object, required
    - `id` string, uuid, required
    - `type` 'skill-inventory', required
    - `attributes` object, required
      - `githubOrgName` string, required
      - `provider` string, required
      - `created` boolean, required

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Unprocessable Entity
- `500` — Internal Server Error

---

[API](https://skmtc.net/tessl/apis/tessl-api.md) · [All operations](https://skmtc.net/tessl/apis/tessl-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tessl/tessl-api/versions/fbb186825642/schema)
