Skip to the content.

Discover your Skool community’s label IDs

Every Skool community has categories (labels) for posts — “Anuncios”, “General”, “Reflexiones”, “Recursos”, whatever you set up. Each category has an internal labelId that the Skool admin UI never shows you. To filter posts by category programmatically or to create a post tagged with a specific label, you need that labelId.

This recipe is the discovery flow — pull your group’s label map once, save it, and use the IDs in your downstream automations. Takes ~30 seconds, eliminates a friction point every category-aware recipe runs into.

Quick reference (TL;DR for agents)

   
Goal Map your Skool community’s category names → labelId for use in posts:filter / posts:create
Stack Any HTTP client + the Apify-hosted actor
Actions used groups:get → optional: posts:filter to verify
Setup time ~3 min
Ongoing cost $0.01 per groups:get call
Frequency Once per community, then cache. Re-run only when you add/rename categories

Prerequisites

Step 1 — Call groups:get

{
  "action": "groups:get",
  "cookies": "...",
  "groupSlug": "your-community"
}

Response includes the full group config. The labels live under metadata.post_categories (Skool internal field name — varies slightly by group version, see gotchas):

{
  "success": true,
  "group": {
    "id": "group_32hex",
    "name": "Your Community",
    "slug": "your-community",
    "metadata": {
      "post_categories": [
        { "id": "label_abc123", "name": "📣 Anuncios", "color": "#FF6B6B", "order": 1 },
        { "id": "label_def456", "name": "💬 General", "color": "#4ECDC4", "order": 2 },
        { "id": "label_ghi789", "name": "🧠 Reflexiones", "color": "#9D4EDD", "order": 3 },
        { "id": "label_jkl012", "name": "🛠 Recursos", "color": "#06D6A0", "order": 4 }
      ],
      "...": "..."
    }
  }
}

Step 2 — Save the map

Pull the labels into a flat name→ID dict and save it (env vars, a small JSON file, your secrets store — wherever your automations read config from):

labels = {cat["name"]: cat["id"] for cat in response["group"]["metadata"]["post_categories"]}
# {'📣 Anuncios': 'label_abc123', '💬 General': 'label_def456', ...}

Or for env vars:

SKOOL_LABEL_ANUNCIOS=label_abc123
SKOOL_LABEL_GENERAL=label_def456
SKOOL_LABEL_REFLEXIONES=label_ghi789
SKOOL_LABEL_RECURSOS=label_jkl012

Step 3 — Verify with posts:filter

Confirm a labelId resolves to the expected posts:

{
  "action": "posts:filter",
  "cookies": "...",
  "groupSlug": "your-community",
  "params": {
    "labelId": "label_abc123",
    "limit": 10
  }
}

You should get the most recent 10 posts tagged “Anuncios”. If you get unrelated posts, the labelId mapping is wrong — re-check step 1.

Step 4 — Use in downstream automations

Once the map exists, every category-aware recipe gets simpler:

Post a reminder tagged “Anuncios”:

{
  "action": "posts:create",
  "cookies": "...",
  "groupSlug": "your-community",
  "params": {
    "title": "📅 Mañana: Cafecito Startup",
    "content": "...",
    "labelId": "label_abc123"
  }
}

Audit which categories underperform: Loop posts:filter per labelId → count comments/likes per category → see which ones get engagement vs. which are dead.

Migrate posts to a new category: List all posts in old labelId → posts:update with new labelId.

Production gotchas

See also


Use this in production — no setup

The hardest part of building Skool automation isn’t the API logic — it’s the auth (cookies expire every ~3.5 days, WAF token rotation, weekly Skool buildId changes). The Skool All-in-One API actor on Apify handles all of that.

→ Open the actor on Apify

New to Skool? Launch your community here — 14-day free trial.