ESC
Start typing to search documentation...
JoonWeb Dev

Themes Endpoints

Detailed technical documentation and implementation guide for Themes Endpoints.

Overview #

List themes #

GET /api/admin/26.0/themes

Parameters

Field Type Description
limit integer [Optional] Number of results to return (default 20, max 10000)
page integer [Optional] Page number to fetch (default 1)
sort_by string [Optional] Field to sort by (e.g. created_at, title)
sort_order string [Optional] Sort direction: asc or desc

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "themes": [
        {
            "id": 102,
            "name": "Velocity Modern",
            "role": "main",
            "created_at": "2026-08-27T11:31:04+02:00",
            "updated_at": "2026-08-27T11:31:04+02:00",
            "previewable": true,
            "processing": false
        }
    ],
    "pagination": {
        "current_page": 1,
        "per_page": 20,
        "total": 1,
        "total_pages": 1
    },
    "access_level": "full"
}

Get theme details #

GET /api/admin/26.0/themes/{id}

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "theme": {
        "id": 102,
        "name": "Velocity Modern",
        "role": "main",
        "created_at": "2026-08-27T11:31:04+02:00",
        "updated_at": "2026-08-27T11:31:04+02:00",
        "previewable": true,
        "processing": false
    },
    "access_level": "full"
}

List theme files #

GET /api/admin/26.0/themes/{id}/files

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "theme_name": "velocity-modern",
    "theme_details": {
        "id": 102,
        "name": "Velocity Modern",
        "role": "main",
        "created_at": "2026-08-27T11:31:04+02:00",
        "updated_at": "2026-08-27T11:31:04+02:00",
        "previewable": true,
        "processing": false
    },
    "files": [
        {
            "type": "folder",
            "name": "layout",
            "path": "\/layout",
            "children": [
                {
                    "type": "file",
                    "name": "theme.jw",
                    "path": "\/layout\/theme.jw"
                }
            ]
        }
    ]
}

Get theme file #

GET /api/admin/26.0/themes/{id}/files/file

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "file": {
        "name": "theme.jw",
        "path": "layout\/theme.jw",
        "type": "file",
        "extension": "jw",
        "last_modified": "2026-08-27T11:31:04+02:00",
        "created": "2026-08-27T11:31:04+02:00",
        "cdn": false,
        "content": "{% rules %}\n{\n  \"name\": \"Theme\",\n  \"schema\": []\n}\n{% endrules %}"
    },
    "theme": {
        "id": "{id}",
        "name": "Theme",
        "handle": "{id}"
    }
}

Create/Update theme file #

POST /api/admin/26.0/themes/{id}/files

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle
key string [Required] File path/key (e.g. layout/theme.jw)
value string [Required] File content to save

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Request Body
{
    "file": {
        "path": "example_path",
        "content": "example_content"
    }
}
Response
200 OK
{
    "success": true,
    "message": "File created successfully"
}

Update Theme File #

PUT /api/admin/26.0/themes/{id}/files/file

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle
key string [Required] File path/key (e.g. layout/theme.jw)
value string [Required] File content to save

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Request Body
{
  "key": "layout/theme.jw",
  "value": "{% rules %}
..."
}
Response
200 OK
{
    "success": true,
    "message": "File updated successfully"
}

Delete theme file #

DELETE /api/admin/26.0/themes/{id}/files/file

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "success": true,
    "message": "File deleted successfully"
}

List theme assets #

GET /api/admin/26.0/themes/{id}/assets

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "theme_name": "velocity-modern",
    "theme_details": {
        "id": 102,
        "name": "Velocity Modern",
        "role": "main",
        "created_at": "2026-08-27T11:31:04+02:00",
        "updated_at": "2026-08-27T11:31:04+02:00",
        "previewable": true,
        "processing": false
    },
    "assets": [
        {
            "type": "folder",
            "name": "layout",
            "path": "\/layout",
            "children": [
                {
                    "type": "file",
                    "name": "theme.jw",
                    "path": "\/layout\/theme.jw"
                }
            ]
        }
    ]
}

Get theme asset #

GET /api/admin/26.0/themes/{id}/assets/file

Parameters

Field Type Description
id integer/string [Required] The resource ID or handle

Headers

Header Value
X-Joonweb-Access-Token jw_at_xxxxxxxxxxxx
Content-Type application/json
Request Example
Response
200 OK
{
    "file": {
        "name": "theme.jw",
        "path": "layout\/theme.jw",
        "type": "file",
        "extension": "jw",
        "last_modified": "2026-08-27T11:31:04+02:00",
        "created": "2026-08-27T11:31:04+02:00",
        "cdn": false,
        "content": "{% rules %}\n{\n  \"name\": \"Theme\",\n  \"schema\": []\n}\n{% endrules %}"
    },
    "theme": {
        "id": "{id}",
        "name": "Theme",
        "handle": "{id}"
    }
}

What's Next? #

Last modified: Aug 25, 2026