# Genspark custom agent API endpoint and webhook: what exists

Genspark documents no REST endpoint or outbound webhook for a custom agent. What it does document: the gsk CLI task, Slack and LINE publishing, Workflows.

**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](https://www.genspark.ai/helpcenter/custom-super-agent), [@genspark/cli README](https://unpkg.com/@genspark/cli/README.md)).

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](https://www.genspark.ai/helpcenter/custom-super-agent)). 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](https://unpkg.com/@genspark/cli/README.md)).

Install and sign in:

```bash
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:

```bash
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:

```bash
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:

```text
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](https://www.genspark.ai/slack_bot_registration); page blocks automated fetches, steps as indexed 2026-11-07) describes publishing from the custom agent's Develop page:

1. Click **Publish**, find the Slack channel and click **Configure**.
2. Enter your Slack app's **Bot Token** and **Signing Secret**, then **Save**.
3. Select Slack and click **Publish**. A popup shows "Configuration Successful" with webhook URLs.
4. 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](https://www.genspark.ai/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](https://www.genspark.ai/helpcenter/workflows)).

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 login` writes the key and base URL to a local config file; `GSK_API_KEY` overrides 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](https://www.genspark.ai/helpcenter/team-enterprise-plans)).
- **Audit API.** Audit data is available through the Organization Audit & Analytics API with "an API key with the `gsk:org-audit` scope", 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>` and `gsk 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:

```bash
#!/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](/mcp-controls) shows how ACP does that for MCP tool traffic.

## Frequently asked questions



## Where to read more

- [Genspark Custom Agent help](https://www.genspark.ai/helpcenter/custom-super-agent)
- [Genspark Workflows help](https://www.genspark.ai/helpcenter/workflows)
- [Genspark Team and Enterprise plans help](https://www.genspark.ai/helpcenter/team-enterprise-plans)
- [Genspark Slack bot registration](https://www.genspark.ai/slack_bot_registration)
- [Genspark LINE bot registration](https://www.genspark.ai/line_bot_registration)
- [@genspark/cli README](https://unpkg.com/@genspark/cli/README.md)
