Lap Aggregators Api Service

v1.0.0

Aggregators API Service API skill. Use when working with Aggregators API Service for podcast-bot, api, stats. Covers 61 endpoints.

0· 18·0 current·0 all-time
Security Scan
Capability signals
Requires OAuth tokenRequires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description describe an Aggregators API for podcast/stats endpoints and the SKILL.md enumerates 61 relevant endpoints on https://api.zeno.fm. The single required env var (an API key) is appropriate for this API-focused purpose.
Instruction Scope
Instructions are limited to calling API endpoints (set Authorization header, verify access, call reload). They do not instruct reading local files or unrelated system state. Minor ambiguity: SKILL.md mentions both an ApiKey header (x-zeno-api-key) and using a Bearer token; it’s unclear which the agent should use or how AGGREGATORS_API_SERVICE_API_KEY maps to those headers.
Install Mechanism
No install spec and no code files are present (instruction-only). Nothing will be written to disk as part of an install, which is the lowest-risk pattern.
Credentials
Only one environment variable is required (AGGREGATORS_API_SERVICE_API_KEY), which is proportionate. Small mismatch: the env var name implies an API key, but the setup instructs to set an Authorization Bearer token; clarify which credential type and header the agent will actually use.
Persistence & Privilege
always:false (not force-included) and normal model invocation allowed. The skill does not request persistence or system-wide config access.
Assessment
This skill appears to be a straightforward, instruction-only wrapper for the Zeno/Aggregators podcast API and only asks for a single API key. Before installing: 1) Confirm whether the API expects an x-zeno-api-key header or a Bearer token and how AGGREGATORS_API_SERVICE_API_KEY should be provided to the agent; 2) Store the API key in a secure secret store and give it least privilege possible; 3) Test with a limited-account key first (read-only or minimal scope) to confirm behavior; 4) Note there is no local install, so the agent will make network calls to api.zeno.fm if invoked — ensure you trust that endpoint. If you need the agent to not call the API autonomously, disable model invocation for this skill or avoid granting it the key.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

EnvAGGREGATORS_API_SERVICE_API_KEY
latestvk97fc0ndemq1j3em5rf537hebh8574gn
18downloads
0stars
1versions
Updated 3h ago
v1.0.0
MIT-0

Aggregators API Service

API version: 0.78-ddd79bd

Auth

ApiKey x-zeno-api-key in header | Bearer basic

Base URL

https://api.zeno.fm

Setup

  1. Set Authorization header with your Bearer token
  2. GET /podcast-bot/podcasts/list -- verify access
  3. POST /stats/mounts/{mount}/auth-cache/reload -- create first reload

Endpoints

61 endpoints across 4 groups. See references/api-spec.lap for full details.

podcast-bot

MethodPathDescription
GET/podcast-bot/podcasts/{podcastKey}Get podcast
PUT/podcast-bot/podcasts/{podcastKey}Update podcast info
DELETE/podcast-bot/podcasts/{podcastKey}Delete podcast
GET/podcast-bot/podcasts/{podcastKey}/recordingConfigGet podcast recording configuration
PUT/podcast-bot/podcasts/{podcastKey}/recordingConfigUpdate podcast recording configuration
DELETE/podcast-bot/podcasts/{podcastKey}/recordingConfigDelete podcast recording configuration
GET/podcast-bot/podcasts/{podcastKey}/processingPresetsGet podcast processing presets
PUT/podcast-bot/podcasts/{podcastKey}/processingPresetsUpdate podcast processing presets
GET/podcast-bot/podcasts/{podcastKey}/interviewPresetsGet podcast interview extraction presets
PUT/podcast-bot/podcasts/{podcastKey}/interviewPresetsUpdate podcast interview extraction presets
PUT/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/unpublishUnpublish podcast episode
PUT/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/publishPublish podcast episode
GET/podcast-bot/podcasts/{podcastKey}/aiAdsPresetsGet podcast AI Ads presets
PUT/podcast-bot/podcasts/{podcastKey}/aiAdsPresetsUpdate podcast AI Ads presets
POST/podcast-bot/workflows/process-fileProcess file
POST/podcast-bot/podcasts/{podcastKey}/upload/prerollAudioUpload pre-roll audio - prepended to every episode
POST/podcast-bot/podcasts/{podcastKey}/upload/postrollAudioUpload post-roll audio - appended to every episode
POST/podcast-bot/podcasts/{podcastKey}/upload/editOutroAudioUpload outro audio for edit recording
POST/podcast-bot/podcasts/{podcastKey}/upload/editIntroAudioUpload intro audio for edit recording
POST/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/reprocessReprocess episode
POST/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/reprocess/customReprocess episode with custom presets
POST/podcast-bot/podcasts/recording/createCreate recording podcast
GET/podcast-bot/workflows/{workflowId}/detailsGet workflow details
GET/podcast-bot/podcasts/{podcastKey}/episodesGet podcast episodes
GET/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}Get podcast episode
DELETE/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}Delete podcast episode
GET/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/transcriptGet transcript for a podcast episode
GET/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/metadataGet metadata for a podcast episode
GET/podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/adsMarkersGet Ads markers info for a podcast episode
GET/podcast-bot/podcasts/{podcastKey}/episodes/interviewsGet podcast interviews
GET/podcast-bot/podcasts/listList podcasts
GET/podcast-bot/jobs/podcasts/{podcastKey}Get all processing jobs for a podcast
GET/podcast-bot/jobs/podcasts/{podcastKey}/episodes/{episodeKey}Get processing jobs for a podcast episode

api

MethodPathDescription
GET/api/v2/podcasts/{podcastKey}Get podcast
PUT/api/v2/podcasts/{podcastKey}Update podcast
DELETE/api/v2/podcasts/{podcastKey}Delete podcast
GET/api/v2/podcasts/{podcastKey}/episodes/{episodeKey}Get podcast episode
PUT/api/v2/podcasts/{podcastKey}/episodes/{episodeKey}Update podcast episode
DELETE/api/v2/podcasts/{podcastKey}/episodes/{episodeKey}Delete podcast episode
POST/api/v2/stations/searchSearch stations
POST/api/v2/stations/listener/locationGet top stations by listener location
POST/api/v2/podcasts/{podcastKey}/episodes/createCreate podcast episode
POST/api/v2/podcasts/searchSearch podcasts
POST/api/v2/podcasts/createCreate podcast
GET/api/v2/stations/{stationKey}Get station
GET/api/v2/stations/listList stations
GET/api/v2/stations/languagesGet the list of Languages that can be used to filter stations in the search stations request
GET/api/v2/stations/genresGet the list of Genres that can be used to filter stations in the search stations request
GET/api/v2/stations/countriesGet the list of Countries that can be used to filter stations in the search stations request
GET/api/v2/stations/browseBrowse all stations
GET/api/v2/podcasts/{podcastKey}/episodesGet podcast episodes
GET/api/v2/podcasts/languagesGet the list of Languages that can be used to filter podcasts in the search podcasts request
GET/api/v2/podcasts/countriesGet the list of Countries that can be used to filter podcasts in the search podcasts request
GET/api/v2/podcasts/categoriesGet the list of Categories that can be used to filter podcasts in the search podcasts request

stats

MethodPathDescription
POST/stats/mounts/{mount}/auth-cache/reloadRetrieve total numer of live stats for a specific mount
POST/stats/mounts/{mount}/auth-cache/reload/allRetrieve total numer of live stats for a specific mount
GET/stats/mounts/{mount}/live/totalRetrieve total numer of live stats for a specific mount

partners

MethodPathDescription
POST/partners/streamsGet the partner information for a list of streams.
GET/partners/{partnerId}/ads/statsRetrieve partner stats
GET/partners/streams/{streamId}Get the stream partner information.
GET/partners/streams/{streamId}/tracksGet the stream partner information.

Common Questions

Match user requests to endpoints in references/api-spec.lap. Key patterns:

  • "Get podcast details?" -> GET /podcast-bot/podcasts/{podcastKey}
  • "Update a podcast?" -> PUT /podcast-bot/podcasts/{podcastKey}
  • "Delete a podcast?" -> DELETE /podcast-bot/podcasts/{podcastKey}
  • "List all recordingConfig?" -> GET /podcast-bot/podcasts/{podcastKey}/recordingConfig
  • "List all processingPresets?" -> GET /podcast-bot/podcasts/{podcastKey}/processingPresets
  • "List all interviewPresets?" -> GET /podcast-bot/podcasts/{podcastKey}/interviewPresets
  • "List all aiAdsPresets?" -> GET /podcast-bot/podcasts/{podcastKey}/aiAdsPresets
  • "Get podcast details?" -> GET /api/v2/podcasts/{podcastKey}
  • "Update a podcast?" -> PUT /api/v2/podcasts/{podcastKey}
  • "Delete a podcast?" -> DELETE /api/v2/podcasts/{podcastKey}
  • "Get episode details?" -> GET /api/v2/podcasts/{podcastKey}/episodes/{episodeKey}
  • "Update a episode?" -> PUT /api/v2/podcasts/{podcastKey}/episodes/{episodeKey}
  • "Delete a episode?" -> DELETE /api/v2/podcasts/{podcastKey}/episodes/{episodeKey}
  • "Create a reload?" -> POST /stats/mounts/{mount}/auth-cache/reload
  • "Create a all?" -> POST /stats/mounts/{mount}/auth-cache/reload/all
  • "Create a process-file?" -> POST /podcast-bot/workflows/process-file
  • "Create a prerollAudio?" -> POST /podcast-bot/podcasts/{podcastKey}/upload/prerollAudio
  • "Create a postrollAudio?" -> POST /podcast-bot/podcasts/{podcastKey}/upload/postrollAudio
  • "Create a editOutroAudio?" -> POST /podcast-bot/podcasts/{podcastKey}/upload/editOutroAudio
  • "Create a editIntroAudio?" -> POST /podcast-bot/podcasts/{podcastKey}/upload/editIntroAudio
  • "Create a reprocess?" -> POST /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/reprocess
  • "Create a custom?" -> POST /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/reprocess/custom
  • "Create a create?" -> POST /podcast-bot/podcasts/recording/create
  • "Create a stream?" -> POST /partners/streams
  • "Create a search?" -> POST /api/v2/stations/search
  • "Create a location?" -> POST /api/v2/stations/listener/location
  • "Create a create?" -> POST /api/v2/podcasts/{podcastKey}/episodes/create
  • "Create a search?" -> POST /api/v2/podcasts/search
  • "Create a create?" -> POST /api/v2/podcasts/create
  • "List all total?" -> GET /stats/mounts/{mount}/live/total
  • "List all details?" -> GET /podcast-bot/workflows/{workflowId}/details
  • "List all episodes?" -> GET /podcast-bot/podcasts/{podcastKey}/episodes
  • "Get episode details?" -> GET /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}
  • "Delete a episode?" -> DELETE /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}
  • "List all transcript?" -> GET /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/transcript
  • "List all metadata?" -> GET /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/metadata
  • "List all adsMarkers?" -> GET /podcast-bot/podcasts/{podcastKey}/episodes/{episodeKey}/adsMarkers
  • "List all interviews?" -> GET /podcast-bot/podcasts/{podcastKey}/episodes/interviews
  • "List all list?" -> GET /podcast-bot/podcasts/list
  • "Get podcast details?" -> GET /podcast-bot/jobs/podcasts/{podcastKey}
  • "Get episode details?" -> GET /podcast-bot/jobs/podcasts/{podcastKey}/episodes/{episodeKey}
  • "List all stats?" -> GET /partners/{partnerId}/ads/stats
  • "Get stream details?" -> GET /partners/streams/{streamId}
  • "List all tracks?" -> GET /partners/streams/{streamId}/tracks
  • "Get station details?" -> GET /api/v2/stations/{stationKey}
  • "List all list?" -> GET /api/v2/stations/list
  • "List all languages?" -> GET /api/v2/stations/languages
  • "List all genres?" -> GET /api/v2/stations/genres
  • "List all countries?" -> GET /api/v2/stations/countries
  • "List all browse?" -> GET /api/v2/stations/browse
  • "List all episodes?" -> GET /api/v2/podcasts/{podcastKey}/episodes
  • "List all languages?" -> GET /api/v2/podcasts/languages
  • "List all countries?" -> GET /api/v2/podcasts/countries
  • "List all categories?" -> GET /api/v2/podcasts/categories
  • "How to authenticate?" -> See Auth section

Response Tips

  • Check response schemas in references/api-spec.lap for field details
  • List endpoints may support pagination; check for limit, offset, or cursor params
  • Create/update endpoints typically return the created/updated object

CLI

# Update this spec to the latest version
npx @lap-platform/lapsh get aggregators-api-service -o references/api-spec.lap

# Search for related APIs
npx @lap-platform/lapsh search aggregators-api-service

References

  • Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas

Generated from the official API spec by LAP

Comments

Loading comments...