# Themes API documentation missing

**URL:** <https://forum.ghost.org/t/themes-api-documentation-missing/18175>\
**Category:** Developer help\
**Created:** [November 10, 2020, 10:18pm UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175 "2020-11-10T22:18:36Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![gempain](https://avatars.discourse-cdn.com/v4/letter/g/e8c25b/32.png) [@gempain](https://forum.ghost.org/u/gempain)\
**Post date:** [November 10, 2020, 10:18pm UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175/1 "2020-11-10T22:18:36Z")

</div>

Hi there,

In the ghost REST API docs, there is a list of [endpoints](https://ghost.org/docs/api/v3/admin/#endpoints) among which `/themes`, but there’s no link to it and it’s not described in the page.

I found these topics on the subject, but I’d rather rely on an official documentation for API v3:

- [Using API to upload a theme](https://forum.ghost.org/t/using-api-to-upload-a-theme/6511)
- [Uploading a theme via the admin API](https://forum.ghost.org/t/uploading-a-theme-via-the-admin-api/12249)

The docs mention that the API is **stable** and allows **upload** and **activation** of a theme.

Any idea ?

Thanks a lot for your help, and keep up the great work !

---

<div class="post-metadata">

**Author:** ![naz](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/naz/32/30666_2.png) [@naz](https://forum.ghost.org/u/naz)\
**Post date:** [November 10, 2020, 11:00pm UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175/2 "2020-11-10T23:00:58Z")

</div>

Hey @gempain. The themes API is stable and wont introduce breaking changes within current API version. We just didn’t have time to properly document it. At the moment you can rely on stability index itself and confidently build a functionality against it. Or do you have a more specific question?

---

<div class="post-metadata">

**Author:** ![gempain](https://avatars.discourse-cdn.com/v4/letter/g/e8c25b/32.png) [@gempain](https://forum.ghost.org/u/gempain)\
**Post date:** [November 12, 2020, 8:22pm UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175/3 "2020-11-12T20:22:13Z")

</div>

@naz thanks for the quick response ! Good to know that it’s stable. I might have missed something, but to what I can see there is docs at all. I don’t know what the routes, methods and parameters are. Is [this](https://github.com/TryGhost/Ghost/blob/master/core/server/api/v2/themes.js) a good place to start ?

---

<div class="post-metadata">

**Author:** ![naz](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/naz/32/30666_2.png) [@naz](https://forum.ghost.org/u/naz)\
**Post date:** [November 15, 2020, 11:13pm UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175/4 "2020-11-15T23:13:10Z")

</div>

@gempain the code you’ve referenced is a good start. It is a v2 Admin API, but it’s best to start building up on the v3 functionality which can be found in canary folder. The routes for all the endpoints can be found here:

> <https://github.com/TryGhost/Ghost/blob/cfac18cb32963017405fcdb48913029dbb5e60af/core/server/web/api/canary/admin/routes.js#L131-L153>

The `canary` is equal to `v3` API. Only some of the endpoints there - such as themes, are considered stable.

---

<div class="post-metadata">

**Author:** ![gempain](https://avatars.discourse-cdn.com/v4/letter/g/e8c25b/32.png) [@gempain](https://forum.ghost.org/u/gempain)\
**Post date:** [November 16, 2020, 8:50am UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175/5 "2020-11-16T08:50:00Z")

</div>

Awesome, thanks a lot, that’s exactly what I was looking for !

---

<div class="post-metadata">

**Author:** ![naz](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/naz/32/30666_2.png) [@naz](https://forum.ghost.org/u/naz)\
**Post date:** [November 18, 2020, 9:44pm UTC](https://forum.ghost.org/t/themes-api-documentation-missing/18175/6 "2020-11-18T21:44:51Z")

</div>

To add to this discussion and clarify which endpoints from `/themes/*` are stable - always refer to our documentation:  
[https://ghost.org/docs/api/v3/admin/#endpoints](https://ghost.org/docs/api/v3/admin/#endpoints)

At the moment we only consider Upload (`POST /themes/upload/`) & Activate (`PUT //themes/activate/`) endpoints stable.
