curl --request GET \
--url https://cool.jobmojito.com/functions/v1/catalogue-tag-list \
--header 'Authorization: Bearer <token>'import requests
url = "https://cool.jobmojito.com/functions/v1/catalogue-tag-list"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://cool.jobmojito.com/functions/v1/catalogue-tag-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cool.jobmojito.com/functions/v1/catalogue-tag-list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://cool.jobmojito.com/functions/v1/catalogue-tag-list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://cool.jobmojito.com/functions/v1/catalogue-tag-list")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://cool.jobmojito.com/functions/v1/catalogue-tag-list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "sales-coaching-en",
"has_content_page": true,
"is_start_directory": true,
"name": "<string>",
"description": "<string>",
"mojito_language_code": "en",
"visibility": "<string>",
"status": "<string>",
"coach_plan": "<string>",
"cover_image_url": "<string>",
"merchant_id": "<string>",
"tags_sub": [
"<string>"
],
"tags_interview_set_filter": [
"<string>"
],
"created_at": "<string>",
"updated_at": "<string>"
}
],
"pagination": {
"total": 137,
"limit": 50,
"offset": 0,
"has_more": true
}
}{
"error": "Field is required.",
"name": "interview_result_id"
}{
"error": "Field is required.",
"name": "interview_result_id"
}{
"error": "Field is required.",
"name": "interview_result_id"
}{
"error": "Field is required.",
"name": "interview_result_id"
}List coaching catalogue directories
Paginated list of the coaching-catalogue directories visible to you: your merchant’s own, plus the platform-wide public ones unless you set include_public=false. Use it to find a directory id before updating one, to pick a parent_tag, or to walk the tree with parent_tag. The custom Markdown page is not included — fetch it per directory with catalogue-tag-get.
curl --request GET \
--url https://cool.jobmojito.com/functions/v1/catalogue-tag-list \
--header 'Authorization: Bearer <token>'import requests
url = "https://cool.jobmojito.com/functions/v1/catalogue-tag-list"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://cool.jobmojito.com/functions/v1/catalogue-tag-list', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://cool.jobmojito.com/functions/v1/catalogue-tag-list",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://cool.jobmojito.com/functions/v1/catalogue-tag-list"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://cool.jobmojito.com/functions/v1/catalogue-tag-list")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://cool.jobmojito.com/functions/v1/catalogue-tag-list")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": "sales-coaching-en",
"has_content_page": true,
"is_start_directory": true,
"name": "<string>",
"description": "<string>",
"mojito_language_code": "en",
"visibility": "<string>",
"status": "<string>",
"coach_plan": "<string>",
"cover_image_url": "<string>",
"merchant_id": "<string>",
"tags_sub": [
"<string>"
],
"tags_interview_set_filter": [
"<string>"
],
"created_at": "<string>",
"updated_at": "<string>"
}
],
"pagination": {
"total": 137,
"limit": 50,
"offset": 0,
"has_more": true
}
}{
"error": "Field is required.",
"name": "interview_result_id"
}{
"error": "Field is required.",
"name": "interview_result_id"
}{
"error": "Field is required.",
"name": "interview_result_id"
}{
"error": "Field is required.",
"name": "interview_result_id"
}Authorizations
Supabase JWT — Authorization: Bearer <token>.
Query Parameters
Optional merchant to scope to. Admins and sub-merchant operators only; other callers always use their token's merchant.
"28106cba-1c27-4e53-b149-32113e5e8e31"
Filter by lifecycle status. Omit to include every status you can see (deleted directories are never returned).
draft, active, archived "active"
Filter by visibility.
public, merchant_public, merchant_invite, merchant_unlisted "merchant_public"
Filter by the directory language. Omit for all languages.
ar, bg, zh, hr, cs, da, nl, en, fil, fi, fr, de, el, hi, hu, id, it, ja, ko, ms, no, pl, pt, br, ro, ru, sk, es, sv, ta, th, tr, uk, vi "en"
Case-insensitive search on the directory id, name and description.
Return only the directories nested directly under this one (its tags_sub), in the parent's own order. Combine with the other filters to narrow further.
Include the platform-wide public directories shared across merchants.
true, false "true"
Maximum number of records to return (1–1000).
1 <= x <= 100050
Number of records to skip from the start of the result set.
x >= 00