Skip to content
Navigation

Create a skill

Create a custom skill for the authenticated user.

POST
https://truememory-api.mvstg.com/skills
View as Markdown

Authorization

  • HTTPBearerHTTPrequired

Header parameters

  • X-On-Behalf-Ofoptional

    One of the following:

    • string
    • null
  • X-External-User-Idoptional

    One of the following:

    • string
    • null
  • X-App-Idoptional

    One of the following:

    • string
    • null

Request bodyJSONrequired

  • keystringrequired

    Stable client-facing identifier (e.g. for slash commands). Lowercase letters, digits, hyphens, underscores; must start and end with a letter or digit.

    maxLength: 64 · minLength: 2
  • namestringrequired

    Display name for the skill.

    maxLength: 255 · minLength: 1
  • promptstringrequired

    Prompt body executed when the skill is invoked.

    minLength: 1
  • descriptionoptional

    Short human-readable description of what the skill does.

    One of the following:

    • string
    • null
  • categoryoptional

    Optional grouping label (e.g. 'productivity', 'writing').

    One of the following:

    • string
    • null
  • app_idsoptional

    Apps this skill is assigned to. NULL (or omitted) means all apps — visible to every app. A non-empty list scopes it to those apps. The legacy scalar app_id is still accepted and folded into a one-element list.

    One of the following:

    • array<string>
    • null
  • iconoptional

    Icon identifier or URL — interpreted by the caller.

    One of the following:

    • string
    • null
  • argument_hintoptional

    Hint shown to the user about expected arguments.

    One of the following:

    • string
    • null
  • allowed_toolsoptionalarray ofstring

    Tool names the skill is allowed to use. Empty list means no restriction at this layer.

  • metadataoptionalobject

    Free-form caller-defined metadata.

  • is_activeoptionalboolean

    Whether the skill is currently enabled. Off skills are still listable.

    default: true
  • sort_orderoptionalinteger

    Caller-defined display order; lower sorts earlier.

    default: 0
  • use_caseoptional

    When this skill applies, in natural language — e.g. 'Triggers when a user shares a photo of food, a menu, or ingredients.' Read by skill selection, so write it to describe the trigger, not the behaviour.

    One of the following:

    • string
    • null
  • detection_patternsoptional

    Example utterances that should invoke this skill. Matched semantically, not literally, so paraphrases count — list distinct phrasings rather than keyword variants.

    One of the following:

    • array<string>
    • null
  • licenseoptional

    SKILL.md license: a license name, or the file in the skill that holds it.

    One of the following:

    • string
    • null
  • compatibilityoptional

    SKILL.md compatibility: what the skill needs to run.

    One of the following:

    • string
    • null
  • forked_from_skill_idoptional

    If set, the new skill is a fork of this preset skill. Only preset skills (is_preset = TRUE) may be forked.

    One of the following:

    • string
    • null

Returns

201

Successful Response

JSON
  • idstringrequired
  • user_idrequired

    Owner user_id, NULL for presets.

    One of the following:

    • string
    • null
  • app_idsrequired

    Apps this skill is assigned to. NULL means all apps (global/unscoped).

    One of the following:

    • array<string>
    • null
  • keystringrequired
  • namestringrequired
  • descriptionrequired

    One of the following:

    • string
    • null
  • promptstringrequired
  • categoryrequired

    Freeform grouping label (legacy string). Distinct from categories.

    One of the following:

    • string
    • null
  • iconrequired

    One of the following:

    • string
    • null
  • argument_hintrequired

    One of the following:

    • string
    • null
  • allowed_toolsarray ofstringrequired
  • metadataobjectrequired
  • is_presetbooleanrequired
  • is_activebooleanrequired
  • sort_orderintegerrequired
  • forked_from_skill_idrequired

    One of the following:

    • string
    • null
  • usage_countintegerrequired

    Global invocation count, bumped via POST /skills/{id}/usage.

  • last_used_atrequired

    When the skill was last invoked, NULL if never.

    One of the following:

    • string
    • null
  • parent_synced_atrequired

    For forks: the preset updated_at this fork is synced to. The fork is stale when its preset's updated_at is newer. NULL for non-forks.

    One of the following:

    • string
    • null
  • created_atstringrequired
    format: date-time
  • updated_atstringrequired
    format: date-time
  • app_idrequired

    DEPRECATED, read app_ids instead. Legacy single-app scalar derived from app_ids for pre-multi-app consumers: the first app id, or null for all apps. Lossy for multi-app skills.

    One of the following:

    • string
    • null
  • categoriesoptionalarray ofobject

    Category entities assigned via the registry. Returned by the list endpoints, the single-skill reads (user and admin) and PUT /admin/skills/{skill_id}/categories; omitted by writes.

    • idstringrequired
    • namestringrequired
  • use_caseoptional

    When this skill applies, in natural language. Read by skill selection.

    One of the following:

    • string
    • null
  • detection_patternsoptional

    Example utterances that should invoke this skill.

    One of the following:

    • array<string>
    • null
  • licenseoptional

    SKILL.md license: a license name, or the file in the skill that holds it.

    One of the following:

    • string
    • null
  • compatibilityoptional

    SKILL.md compatibility: what the skill needs to run (product, packages, network).

    One of the following:

    • string
    • null

422

Validation Error
JSON
  • detailoptionalarray ofobject
    • locarray ofrequired

      One of the following:

      • string
      • integer
    • msgstringrequired
    • typestringrequired
    • inputoptionalunknown
    • ctxoptionalobject

Type to search…

↑↓ navigate↵ selectEsc close