Developer API
A simple JSON REST API over HTTPS. It works with every programming language. Base address: https://themeharvest.com/api/v1 · Rate limit: 60 requests per minute per IP (license calls: 30).
Catalog (no key needed)
GET /items | Live items. Query: q, category (slug), author (username), sort=sales, per_page (1–50), page. |
GET /items/{id} | One item with price, rating, sales, version, tags, demo and compatibility. |
GET /categories | All categories: id, parent_id, market, name, slug. |
curl "https://themeharvest.com/api/v1/items?sort=sales&per_page=5"
Authors: verify a purchase code
Create your personal token in Studio → API & purchase codes and send it as a Bearer token. Only sales of your own items are found.
GET /author/purchase/verify?code=… | Is this purchase code real? Item, buyer, license, support date, refunded. |
GET /author/sales | Your latest sales (50 per page) and your balance. |
GET /author/items | All your items with their status. |
curl -H "Authorization: Bearer YOUR_TOKEN" -H "Accept: application/json" \ "https://themeharvest.com/api/v1/author/purchase/verify?code=PURCHASE-CODE"
License activation (inside your item)
Your item calls these from the buyer's server. No token is needed: the purchase code + Item ID is the proof. Fields: code, item_id, domain (form or JSON).
POST /license/activate | On install. 200 {"active":true} · 404 not_found · 409 limit_reached · 403 refunded |
GET /license/check | Once a day — still valid? |
POST /license/deactivate | On uninstall — frees the domain. |
curl -X POST https://themeharvest.com/api/v1/license/activate -d code=PURCHASE-CODE -d item_id=ITEM_ID -d domain=example.com
Authors: ready code for PHP, WordPress, Node.js, Python, Java, C#, Go and Flutter with your Item ID filled in is in Studio → My items → 🔑 License & API.
Automatic updates
GET /updates/check?item_id=…&code=…&version=1.0.0 | Latest version, changelog and a download link valid for 30 minutes (needs an active purchase). |
GET /updates/{id}/info | Public version information of an item. |
Errors
| 401 | Token missing or wrong |
| 404 | Not found (wrong code, item or a code of another item) |
| 422 | A field is missing or not valid |
| 429 | Too many requests — wait a minute |
Every answer is JSON. Send "Accept: application/json".