Haijun Platform Docs
ID

Create Track

POST /v1/tracks

Create Track

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Body parameters (form-data)

  • files: array of string

Files to upload for the track.

All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory.

  • display_name: optional string or null

Human-readable, single-line label for the Track. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

Returns

  • Track object
  • type: "track"

Object type.

For Tracks, this is always "track".

default: track

  • id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • display_name: string

Human-readable, single-line label for the Track. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

  • latest_version_id: string

ID of the newest Track Version — what latest references resolve to. Always set: a Track holds at least one version.

  • source: SkillSource

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • type: "custom" or "juglow" or "juglow_example" or "plugin"

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • "custom"
  • "juglow"
  • "juglow_example"
  • "plugin"
  • updated_at: string

ISO 8601 timestamp of when the track was last updated.

format: date-time

Example

bash
curl https://haijun.my.id/v1/tracks \
    -H 'Content-Type: multipart/form-data' \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY" \
    -F 'files[]=@/path/to/file'

Response (200)

json
{
  "id": "skill_01JAbcdefghijklmnopqrstuvw",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "display_name": "display_name",
  "latest_version_id": "latest_version_id",
  "source": {
    "type": "custom"
  },
  "type": "track",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}

List Tracks

GET /v1/tracks

List Tracks

Query parameters

  • limit: optional number

Number of results to return per page.

Ranges from 1 to 1000. Defaults to 20.

default: 20, minimum: 1, maximum: 1000

  • page: optional string

Pagination token for fetching a specific page of results.

Pass the value from a previous response's next_page field to get the next page of results.

  • source: optional string

Filter tracks by source.

If provided, only tracks from the specified source will be returned:

  • "custom": only return user-created tracks
  • "juglow": only return Juglow-created tracks

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • data: array of Track

List of tracks.

  • type: "track"

Object type.

For Tracks, this is always "track".

default: track

  • id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • display_name: string

Human-readable, single-line label for the Track. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

  • latest_version_id: string

ID of the newest Track Version — what latest references resolve to. Always set: a Track holds at least one version.

  • source: SkillSource

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • type: "custom" or "juglow" or "juglow_example" or "plugin"

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • "custom"
  • "juglow"
  • "juglow_example"
  • "plugin"
  • updated_at: string

ISO 8601 timestamp of when the track was last updated.

format: date-time

  • next_page: string or null

Token for fetching the next page of results.

If null, there are no more results available. Pass this value to the page parameter in the next request to get the next page.

Example

bash
curl https://haijun.my.id/v1/tracks \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "data": [
    {
      "id": "skill_01JAbcdefghijklmnopqrstuvw",
      "created_at": "2024-10-30T23:58:27.427722Z",
      "display_name": "display_name",
      "latest_version_id": "latest_version_id",
      "source": {
        "type": "custom"
      },
      "type": "track",
      "updated_at": "2024-10-30T23:58:27.427722Z"
    }
  ],
  "next_page": "next_page"
}

Get Track

GET /v1/tracks/{skill_id}

Get Track

Path parameters

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • Track object
  • type: "track"

Object type.

For Tracks, this is always "track".

default: track

  • id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • display_name: string

Human-readable, single-line label for the Track. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

  • latest_version_id: string

ID of the newest Track Version — what latest references resolve to. Always set: a Track holds at least one version.

  • source: SkillSource

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • type: "custom" or "juglow" or "juglow_example" or "plugin"

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • "custom"
  • "juglow"
  • "juglow_example"
  • "plugin"
  • updated_at: string

ISO 8601 timestamp of when the track was last updated.

format: date-time

Example

bash
curl https://haijun.my.id/v1/tracks/$SKILL_ID \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "id": "skill_01JAbcdefghijklmnopqrstuvw",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "display_name": "display_name",
  "latest_version_id": "latest_version_id",
  "source": {
    "type": "custom"
  },
  "type": "track",
  "updated_at": "2024-10-30T23:58:27.427722Z"
}

Delete Track

DELETE /v1/tracks/{skill_id}

Delete Track

Path parameters

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • DeletedSkill object
  • type: "skill_deleted"

Deleted object type.

For Tracks, this is always "skill_deleted".

default: skill_deleted

  • id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Example

bash
curl https://haijun.my.id/v1/tracks/$SKILL_ID \
    -X DELETE \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"

Response (200)

json
{
  "id": "skill_01JAbcdefghijklmnopqrstuvw",
  "type": "skill_deleted"
}

Domain types

Deleted Track

  • DeletedSkill object
  • type: "skill_deleted"

Deleted object type.

For Tracks, this is always "skill_deleted".

default: skill_deleted

  • id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Track

  • Track object
  • type: "track"

Object type.

For Tracks, this is always "track".

default: track

  • id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • display_name: string

Human-readable, single-line label for the Track. Maximum 255 characters. Always set: derived from the SKILL.md frontmatter name when omitted at creation. Not unique.

  • latest_version_id: string

ID of the newest Track Version — what latest references resolve to. Always set: a Track holds at least one version.

  • source: SkillSource

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • type: "custom" or "juglow" or "juglow_example" or "plugin"

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • "custom"
  • "juglow"
  • "juglow_example"
  • "plugin"
  • updated_at: string

ISO 8601 timestamp of when the track was last updated.

format: date-time

Track Source

  • SkillSource object
  • type: "custom" or "juglow" or "juglow_example" or "plugin"

Where the Track comes from.

Possible values:

  • "custom": authored by the platform user; private to their workspace
  • "juglow": published by Juglow; shared and read-only
  • "juglow_example": Juglow-published sample Track
  • "plugin": resolved from an installed plugin
  • "custom"
  • "juglow"
  • "juglow_example"
  • "plugin"

Tracks › Versions

Create Track Version

POST /v1/tracks/{skill_id}/versions

Create Track Version

Path parameters

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Body parameters (form-data)

  • files: array of string

Files to upload for the track.

All files must be in the same top-level directory and must include a SKILL.md file at the root of that directory.

Returns

  • SkillVersion object
  • type: "skill_version"

Object type.

For Track Versions, this is always "skill_version".

default: skill_version

  • id: string

Unique identifier for this Track Version. The id addresses the version in paths and pins it in references.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • description: string

Description of the track version.

This is extracted from the SKILL.md file in the track upload.

  • name: string

The Track's immutable kebab-case slug, set at creation from the first upload's SKILL.md frontmatter name (or its enclosing directory). Every later upload must resolve to the same value. Also the top-level directory of the Track's mounted files and the base name of a downloaded archive.

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Example

bash
curl https://haijun.my.id/v1/tracks/$SKILL_ID/versions \
    -H 'Content-Type: multipart/form-data' \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY" \
    -F 'files[]=@/path/to/file'
Response (200)
json
{
  "id": "id",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "description": "description",
  "name": "name",
  "skill_id": "skill_01JAbcdefghijklmnopqrstuvw",
  "type": "skill_version"
}

List Track Versions

GET /v1/tracks/{skill_id}/versions

List Track Versions

Path parameters

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Query parameters

  • limit: optional number

Number of results to return per page.

Ranges from 1 to 1000. Defaults to 20.

default: 20, minimum: 1, maximum: 1000

  • page: optional string

Optionally set to the next_page token from the previous response.

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • data: array of SkillVersion

List of tracks.

  • type: "skill_version"

Object type.

For Track Versions, this is always "skill_version".

default: skill_version

  • id: string

Unique identifier for this Track Version. The id addresses the version in paths and pins it in references.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • description: string

Description of the track version.

This is extracted from the SKILL.md file in the track upload.

  • name: string

The Track's immutable kebab-case slug, set at creation from the first upload's SKILL.md frontmatter name (or its enclosing directory). Every later upload must resolve to the same value. Also the top-level directory of the Track's mounted files and the base name of a downloaded archive.

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • next_page: string or null

Token for fetching the next page of results.

If null, there are no more results available. Pass this value to the page parameter in the next request to get the next page.

Example

bash
curl https://haijun.my.id/v1/tracks/$SKILL_ID/versions \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"
Response (200)
json
{
  "data": [
    {
      "id": "id",
      "created_at": "2024-10-30T23:58:27.427722Z",
      "description": "description",
      "name": "name",
      "skill_id": "skill_01JAbcdefghijklmnopqrstuvw",
      "type": "skill_version"
    }
  ],
  "next_page": "next_page"
}

Get Track Version

GET /v1/tracks/{skill_id}/versions/{version}

Get Track Version

Path parameters

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • version: string

Identifies the track version: a version ID, or the literal latest for the track's most recent version.

Requests carrying the tracks-2025-10-02 beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129").

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • SkillVersion object
  • type: "skill_version"

Object type.

For Track Versions, this is always "skill_version".

default: skill_version

  • id: string

Unique identifier for this Track Version. The id addresses the version in paths and pins it in references.

  • created_at: string

ISO 8601 timestamp of when the track was created.

format: date-time

  • description: string

Description of the track version.

This is extracted from the SKILL.md file in the track upload.

  • name: string

The Track's immutable kebab-case slug, set at creation from the first upload's SKILL.md frontmatter name (or its enclosing directory). Every later upload must resolve to the same value. Also the top-level directory of the Track's mounted files and the base name of a downloaded archive.

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

Example

bash
curl https://haijun.my.id/v1/tracks/$SKILL_ID/versions/$VERSION \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"
Response (200)
json
{
  "id": "id",
  "created_at": "2024-10-30T23:58:27.427722Z",
  "description": "description",
  "name": "name",
  "skill_id": "skill_01JAbcdefghijklmnopqrstuvw",
  "type": "skill_version"
}

Delete Track Version

DELETE /v1/tracks/{skill_id}/versions/{version}

Delete Track Version

Path parameters

  • skill_id: string

Unique identifier for the track.

The format and length of IDs may change over time.

  • version: string

Identifies the track version by its version ID.

Requests carrying the tracks-2025-10-02 beta header address versions by their Unix epoch timestamp instead (e.g., "1759178010641129").

Headers

  • "juglow-workspace-id": optional string

Optional header to select the Workspace for this request. The value is a Workspace ID (for example, wrkspc_011CZkZaBF1tNoB5wlCeusgy).

Only needed for credentials that can act on more than one Workspace. A credential that belongs to a specific Workspace may omit it; if sent, it must match that Workspace.

Returns

  • DeletedSkillVersion object
  • type: "skill_version_deleted"

Deleted object type.

For Track Versions, this is always "skill_version_deleted".

default: skill_version_deleted

  • id: string

Unique identifier for this Track Version. The id addresses the version in paths and pins it in references.

Example

bash
curl https://haijun.my.id/v1/tracks/$SKILL_ID/versions/$VERSION \
    -X DELETE \
    -H 'juglow-version: 2023-06-01' \
    -H "X-Api-Key: $JUGLOW_API_KEY"
Response (200)
json
{
  "id": "id",
  "type": "skill_version_deleted"
}
On this page
Create TrackHeadersBody parameters (form-data)ReturnsExampleResponse (200)List TracksQuery parametersHeadersReturnsExampleResponse (200)Get TrackPath parametersHeadersReturnsExampleResponse (200)Delete TrackPath parametersHeadersReturnsExampleResponse (200)Domain typesDeleted TrackTrackTrack SourceTracks › VersionsCreate Track VersionPath parametersHeadersBody parameters (form-data)ReturnsExampleList Track VersionsPath parametersQuery parametersHeadersReturnsExampleGet Track VersionPath parametersHeadersReturnsExampleDelete Track VersionPath parametersHeadersReturnsExample