---
title: "Publish markdown into an organization namespace"
method: POST
path: "/orgs/{slug}/imports/markdown-to-harness"
---

# Publish markdown into an organization namespace

`POST /orgs/{slug}/imports/markdown-to-harness`

## Request

- Base URL: `https://superskill.sh/api`
- URL: `https://superskill.sh/api/orgs/{slug}/imports/markdown-to-harness`
- Auth: HTTP bearer

Requires ORGS_ENABLED=true and a Bearer org token with publish scope. The generated manifest is marked visibility: org.

## Path parameters

- `slug` string, required

## Request body

- object
  - `name` string
  - `markdown` string, required

## Response `200`

Imported org harness

- object
  - `item` RegistryItem
    - `owner` string, required
    - `ownerLabel` string
    - `name` string, required
    - `title` string, required
    - `summary` string, required
    - `tags` string[], required
    - `job` string
    - `outcome` string
    - `runtime` string
    - `forgeUrl` string: Public repository or upstream URL when available. Local filesystem paths are never exposed.
    - `contentType` 'harness' | 'directory', required
    - `directory` object
      - `url` string
      - `itemCount` integer
      - `category` string
      - `notes` string
    - `compatibility` object, required
      - `targets` object[], required
        - `id` string
        - `name` string
        - `status` 'planned' | 'available' | 'verified', required
        - `notes` string
        - `last_verified_at` string, date-time
    - `valid` boolean, required
    - `riskScore` number
    - `riskTier` string, required
    - `evalStatus` string, required
    - `evalScore` number
    - `contextCost` ContextCost, required: Deterministic estimate from markdown instruction files. It is not a measured LLM bill.
      - `approxTokens` number, required
      - `files` number, required
      - `bytes` number, required
      - `status` 'estimated', required
    - `standard` 'conformant' | 'partial', required
    - `stars` number
    - `forks` number
    - `threads` number
    - `runs` number
    - `installConfirms` number
    - `signalCount` number
    - `heatQualified` boolean
    - `heat` number
    - `heatDelta` number
    - `freshness` string
    - `badge` string
    - `cliCommand` string, required
    - `updatedAt` string
  - `snapshotVersion` string

## Other responses

- `400`: Bad request
- `401`: Authorization required
- `403`: Authorization was provided but is not allowed for this action
- `404`: Resource not found

---

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