Developer access

Marketplace API

Add listings to the marketplace from your own tools, automations, or agent workflows. The API is intentionally small: authenticate with a bearer token and send one JSON request.

Authentication

Every request needs the private listing token in an Authorization header. Keep the token in your automation's secret manager—never commit it to source code or publish it in a listing.

Authorization: Bearer YOUR_LISTINGS_API_TOKEN

Create a listing

Send a POST request to /api/skills/create. The endpoint accepts all five marketplace types: apps, agents,brains, prompts, and skills.

curl -X POST 'https://YOUR-MARKETPLACE-DOMAIN/api/skills/create' \
  -H 'Authorization: Bearer YOUR_LISTINGS_API_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Quote Follow-Up Writer",
    "kind": "skills",
    "blurb": "Drafts follow-ups on open quotes",
    "tags": ["sales", "email"],
    "repo": "https://github.com/your-org/your-repo"
  }'

Custom DRO content

Custom DR Outsourcing content should live in a repository owned by the droutsourcing organization. Put shared or general marketplace content in the marketplace content repository. Use a standalone repository when the content is a complete tool, needs its own release cycle, or should be maintained separately.

Submit the GitHub repository, folder, or file URL in the repo field. The marketplace stores that source as the listing's delivery source.

"repo": "https://github.com/droutsourcing/your-marketplace-content-repo"

Request fields

FieldRequiredDescription
titleYesListing name.
kindYesapps, agents, brains, prompts, or skills.
blurbNoShort card description. Defaults to the title.
longNoLong description. Defaults to a placeholder.
tagsNoAn array of tags, normalized by the marketplace.
repoNoGitHub repository, file, or folder URL used as the delivery source.
priceLabelNoOptional display label for pricing.
deliveryModeNoDOWNLOAD (default) or REQUEST.
audienceNoCLIENT (default) or EMPLOYEE.

Responses

A successful request returns 201 Created:

{
  "ok": true,
  "slug": "quote-follow-up-writer",
  "title": "Quote Follow-Up Writer",
  "url": "/listing/quote-follow-up-writer"
}
  • 400 — invalid JSON, missing title, unsupported kind, or invalid GitHub URL.
  • 401 — missing or incorrect bearer token.
  • 409 — that repository is already listed.
  • 503 — the production API token has not been configured.
← Back to the marketplace