Genspark custom agent API endpoint and webhook: what exists
Genspark does not publish a REST API endpoint or an outbound webhook for calling a custom agent. As of November 7, 2026, its help center describes custom agents as something you build, share and invoke inside Genspark, and the only documented programmatic route to one is the gsk command-line tool, which runs a custom_super_agent task with your API key and lets you poll for the result (Custom Agent help, @genspark/cli README).
The webhook URLs you may have seen are inbound URLs for Slack and LINE when you publish an agent to those channels. They let Slack or LINE deliver messages to Genspark. They are not an endpoint your own code can call with a prompt.
Everything below is from Genspark’s own pages. What they don’t document is marked.
What a Genspark custom agent is
Genspark’s help center calls Custom Agent a “one-prompt AI agent creation platform.” You describe the job, Genspark writes the agent’s instructions, and you test it in a preview window (Custom Agent help). Every documented way to use one is inside the product:
- Type
@in a Super Agent conversation to invoke a custom agent, and combine several in one task. - Share it as “Only me”, “Anyone with the link” or to the “Custom Agent Store”. Organization and Group sharing “need a Team or Enterprise plan”.
- Bookmark it so it shows up in a Hub’s agent picker.
That page does not mention an API, an API key, a webhook, a schedule or MCP.
The documented programmatic path: the gsk CLI
Genspark publishes a CLI on npm as @genspark/cli. Its README describes gsk as the command-line interface for the Genspark platform (README).
Install and sign in:
npm install -g @genspark/cli # Node.js 18 or later
gsk login # browser sign-in; saves the API key and base URL
gsk me # shows the signed-in account and credit balance
For a server or CI job, pass the key without the browser step:
export GSK_API_KEY="gsk_..."
# optional overrides
export GSK_BASE_URL="https://www.genspark.ai"
Precedence, per the README, is command-line options, then environment variables (GSK_API_KEY, GSK_BASE_URL, GSK_PROJECT_ID), then the config file that gsk login writes.
Running a custom agent as a task
The README lists custom_super_agent among the task types and describes it as “a user-created custom agent; requires agent_config_id”. The general task commands are:
gsk task create <type> --task_name "..." --query "..." --instructions "..."
gsk task status <run_id>
gsk task info <project_id>
gsk task ask <project_id> -m "follow-up message"
gsk task stop <run_id>
task create also takes --follow and --wait true to stay attached until the run ends, and --file to attach input.
What the README does not show: a worked custom_super_agent example, the flag that carries agent_config_id, or where in the Genspark UI to copy that ID. Check the CLI’s own help output for the current flag before scripting against it.
Scheduling
The README’s capability map lists “One-shot and recurring agent runs” under gsk cron, gsk workflow and gsk schedule, with no syntax. The commands exist, but the README doesn’t explain them.
The HTTP calls underneath
The CLI talks to Genspark over HTTPS with an X-Api-Key header. The README documents a small contract under <base_url>/api/tool_cli. It covers hosted projects (create, preflight checks, upload a source ZIP, deploy), not agent runs:
POST /developer/projects {kind, name}
GET /developer/projects/{id}
GET /developer/preflight?kind=...&operation=...&project_id=...
POST /hosted/source application/zip, X-Project-ID header
It also names an OpenAI-compatible model endpoint at /api/llm_proxy/v1/chat/completions that accepts a gsk key. That reaches models, not your custom agent’s instructions and tools.
The request and response shape for creating a custom_super_agent run over raw HTTP is not published. Calling it directly means reverse-engineering the CLI, which can change without notice.
The webhook URLs: Slack and LINE publishing
Genspark’s Slack setup guide (Slack bot registration; page blocks automated fetches, steps as indexed 2026-11-07) describes publishing from the custom agent’s Develop page:
- Click Publish, find the Slack channel and click Configure.
- Enter your Slack app’s Bot Token and Signing Secret, then Save.
- Select Slack and click Publish. A popup shows “Configuration Successful” with webhook URLs.
- In the Slack app settings, open Event Subscriptions, turn on Enable Events and paste the Event Request URL.
After that, people mention the bot in Slack to talk to the agent. The direction matters: Slack sends events to Genspark at those URLs, signed with your Slack signing secret. Genspark’s LINE guide works the same way, setting the webhook URL when you publish and asking you to turn on “Use webhook” in the LINE Developers Console (LINE bot registration; page blocks automated fetches, steps as indexed 2026-11-07).
So if you control a Slack app, a Slack message is a documented way for another system to reach a custom agent. It is chat-shaped, not a request and response API.
Workflows: schedule and email triggers
Genspark Workflows can run a custom agent as a step: the integrations list includes “Custom Agents: Connect any Custom Agent you’ve built in Genspark” (Workflows help).
The documented triggers are two:
- Schedule: daily, weekly, monthly or a custom interval such as every 30 minutes.
- Email: a new message in Gmail or Outlook.
“Each workflow currently supports one trigger.” No webhook or HTTP trigger is documented. A Test Run “is a real run”: it sends email, changes data and spends credits.
An email trigger is the nearest documented thing to an inbound webhook: a system that can send mail to a connected inbox can start a workflow that runs your agent.
Auth, keys and audit
- Key format and storage.
gsk loginwrites the key and base URL to a local config file;GSK_API_KEYoverrides it. - Team controls. On Team and Enterprise plans, the admin dashboard has an API Keys page to “View and revoke API keys created by team members”, and the audit log records changes to “API access, publishing, and connectors” (Team and Enterprise help).
- Audit API. Audit data is available through the Organization Audit & Analytics API with “an API key with the
gsk:org-auditscope”, with 400 days of history by default. - Connectors. Admins choose which third-party connectors members can use, org-wide or per group, not per person. From the CLI,
gsk connector list,gsk connector tools <identifier>andgsk connector call <identifier> -t <tool> -a '<json>'reach connectors; the README says the connector flow also covers MCP servers you add yourself.
Limits and cost
Runs spend Genspark credits; gsk me shows the balance. The README states a default CLI timeout of 1,800,000 ms (30 minutes) and that signed download URLs expire one to two hours after the call. It gives no request rate limit, and the help pages state none for custom agents.
What is not documented
As of this writing, none of Genspark’s help center, its Slack and LINE guides or the CLI README document:
- A REST endpoint that takes a prompt and a custom agent ID and returns a result.
- An outbound webhook or callback when a custom agent run finishes.
- A webhook or HTTP trigger for Workflows.
- Signing, retry or delivery guarantees for anything Genspark would send to you.
- Rate limits for agent runs.
Third-party pages that mention a “Genspark API key or webhook URL” usually mean the Slack and LINE inbound URLs above, or unofficial cookie-based proxies around the web app. Neither is a supported API.
What to build if you need a webhook today
The supported shape is a small job you own:
#!/usr/bin/env bash
# Runs on your server or CI with GSK_API_KEY set.
# 1. Start the custom agent run with gsk task create custom_super_agent
# (pass agent_config_id with the flag shown by the CLI's help output).
# 2. Poll gsk task status <run_id>, or create with --follow --wait true.
# 3. When it finishes, POST the result to your own endpoint.
Your endpoint is the webhook and the CLI is the client. If Genspark publishes a run API later, swap step 1 for it.
If that job calls tools on your side, put a policy check and a log in front of those tools. MCP server controls shows how ACP does that for MCP tool traffic.
Frequently asked questions
Does Genspark have an API endpoint for a custom agent?
Not a documented REST endpoint. The documented programmatic path is Genspark’s own CLI, gsk, whose task types include custom_super_agent (“a user-created custom agent; requires agent_config_id”), authenticated with a gsk_ API key (@genspark/cli README). The HTTP calls the CLI makes for tasks are not published as an API reference.
Can a Genspark custom agent call a webhook when it finishes?
Genspark documents no outbound completion webhook or callback for custom agent runs. The CLI documents polling instead: gsk task status <run_id>, or --follow and --wait on create. If your system needs a callback, run the CLI from your own job and post to your endpoint when the status comes back.
What are the webhook URLs Genspark shows when I publish a custom agent?
They are inbound URLs for a messaging channel. When you publish a custom agent to Slack, Genspark asks for your Slack app’s Bot Token and Signing Secret and then shows webhook URLs you paste into the Slack app’s Event Subscriptions. Slack calls Genspark; they are not a general API for your own code. LINE publishing works the same way with LINE’s webhook setting.
How do I get a Genspark API key?
Install the CLI and run gsk login, which opens a browser and saves the key; you can also set GSK_API_KEY. On Team and Enterprise plans, admins can view and revoke members’ keys on the API Keys page, and a key with the gsk:org-audit scope reads the Organization Audit & Analytics API (Genspark help).
Where to read more
- Genspark Custom Agent help
- Genspark Workflows help
- Genspark Team and Enterprise plans help
- Genspark Slack bot registration
- Genspark LINE bot registration
- @genspark/cli README
Running coding agents? ACP records each tool call its hook sees and makes the dangerous shell commands (a force-push, destructive SQL, curl | sh) wait for you. One command, free up to 5 agents:
curl -fsSL https://agenticcontrolplane.com/install.sh | bash
irm https://agenticcontrolplane.com/install.ps1 | iex