> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fetchbean.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Catalog

> Every provider and method fetchbean exposes through one key, with parameters and pricing.

Call any method below through `POST /v1/run` with a `provider`, `endpoint`, and `input`. Browse the same catalog interactively at [fetchbean.com/catalog](https://fetchbean.com/catalog).

## Exa

Neural web search built for retrieval across the open web. *(web-search)*

### Search

Search the open web for ranked links (title, url, snippet, score). The default web search; use `read` to fetch a result's full text.

**Cost:** 100 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `numResults`              | integer | no       |
| `type`                    | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"exa","endpoint":"/search","input":{"query":"best vector databases","numResults":10}}'
```

## Jina

Reader and web search: clean markdown from any URL, plus ranked web results. *(scrape)*

### Read

Fetch a URL and return clean markdown, no nav or clutter.

**Cost:** 10 to 300 credits

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `url`     | string | yes      |
| `format`  | string | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"jina","endpoint":"/read","input":{"url":"https://example.com/post"}}'
```

### Search

Search the web for ranked links (title, url, snippet). Use `read` to fetch a result's full page.

**Cost:** 10 to 100 credits

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `q`                       | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"jina","endpoint":"/search","input":{"q":"best vector databases"}}'
```

## Firecrawl

Scrape and search the web as clean, LLM-ready markdown, with JS rendering. *(scrape)*

### Scrape

Scrape a URL to clean, LLM-ready markdown with JS rendering. Handles dynamic, script-heavy pages a plain reader misses.

**Cost:** 50 to 2500 credits

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `url`                     | string    | yes      |
| `formats`                 | string\[] | no       |
| `onlyMainContent`         | boolean   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"firecrawl","endpoint":"/scrape","input":{"url":"https://firecrawl.dev"}}'
```

### Search

Search the web and get ranked results (title, url, description). Fetch a result's full text with the read or firecrawl\_scrape tool.

**Cost:** 50 to 1200 credits

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"firecrawl","endpoint":"/search","input":{"query":"best vector databases","limit":5}}'
```

## Tikhub

Social data, including public Instagram profiles. *(social)*

### Instagram profile

Fetch a public Instagram profile by username.

> **Beta** — gated to orgs with beta access.

**Cost:** 20 credits per call

| Parameter  | Type   | Required |
| ---------- | ------ | -------- |
| `username` | string | no       |
| `user_id`  | string | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tikhub","endpoint":"/api/v1/instagram/v2/fetch_user_info","input":{"username":"nasa"}}'
```

## OpenWeather

On-demand weather data by city or coordinates. *(weather)*

### Current weather

Current conditions for a place by name or lat/lon.

**Cost:** 20 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `q`                       | string | no       |
| `lat`                     | number | no       |
| `lon`                     | number | no       |
| `units`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"openweather","endpoint":"/data/2.5/weather","input":{"q":"Tokyo"}}'
```

## Context.dev

Brand intelligence — logos, colors, fonts, and company data for any domain, email, name, or ticker. *(brand-data)*

### Brand data

Structured brand profile (logos, colors, description, socials, industry, address) for a company by domain, email, name, or ticker.

**Cost:** 300 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `domain`                  | string  | no       |
| `email`                   | string  | no       |
| `name`                    | string  | no       |
| `ticker`                  | string  | no       |
| `force_language`          | string  | no       |
| `maxSpeed`                | boolean | no       |
| `maxAgeMs`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"contextdev","endpoint":"/brand/retrieve","input":{"domain":"stripe.com"}}'
```

### NAICS code

Classify a company into 2022 NAICS industry codes (code, name, confidence) by domain or company name.

**Cost:** 300 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `input`                   | string  | yes      |
| `minResults`              | integer | no       |
| `maxResults`              | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"contextdev","endpoint":"/web/naics","input":{"input":"stripe.com"}}'
```

### SIC code

Classify a company into SIC industry codes (code, name, major group, confidence) by domain or company name. type: original\_sic (default) or latest\_sec.

**Cost:** 300 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `input`                   | string  | yes      |
| `type`                    | string  | no       |
| `minResults`              | integer | no       |
| `maxResults`              | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"contextdev","endpoint":"/web/sic","input":{"input":"stripe.com"}}'
```

## Logo.dev

Brand search: resolve a company or brand name to its domain. *(brand-data)*

### Brand search

Resolve a company or brand name to its domain — fuzzy search over logo.dev's brand index.

**Cost:** 10 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `q`                       | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"logodev","endpoint":"/search","input":{"q":"stripe"}}'
```

## Tavily

Agent-focused web search with optional synthesized answers. *(web-search)*

### Search

Search the web with an optional synthesized answer (set include\_answer). Good for quick factual lookups.

**Cost:** 115 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `query`                   | string  | yes      |    |
| `search_depth`            | string  | no       |    |
| `topic`                   | string  | no       |    |
| `max_results`             | integer | no       |    |
| `include_answer`          | boolean | string   | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tavily","endpoint":"/search","input":{"query":"agent frameworks"}}'
```

## Perplexity

Web search with synthesized answers. *(web-search)*

### Search

Search the web and get a written, synthesized answer (not just links). Use when you want an answer, not sources.

**Cost:** 70 credits per call

| Parameter                 | Type    | Required  |     |
| ------------------------- | ------- | --------- | --- |
| `query`                   | string  | string\[] | yes |
| `max_results`             | integer | no        |     |
| `max_tokens_per_page`     | integer | no        |     |
| *(other provider fields)* | any     | no        |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"perplexity","endpoint":"/search","input":{"query":"latest llm benchmarks"}}'
```

## Parallel

multi-query web search, url extraction, and deep research runs. *(web-search)*

### Search

Run several web search queries in one call (pass search\_queries). Use to batch multiple distinct queries.

**Cost:** 100 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `search_queries`          | string\[] | yes      |
| `objective`               | string    | no       |
| `mode`                    | string    | no       |
| `advanced_settings`       | any       | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"parallel","endpoint":"/v1/search","input":{"search_queries":["vector databases"]}}'
```

### Extract

Turn public URLs (including JS-heavy pages and PDFs) into markdown.

**Cost:** 20 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `urls`                    | string\[] | yes      |
| `objective`               | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"parallel","endpoint":"/v1/extract","input":{"urls":["https://example.com"]}}'
```

### Deep research (start)

Kick off a deep web research run and get a run\_id back. Poll it with task\_result. processor: lite (fast/cheap), base (default), or core (deepest).

**Cost:** 200 to 900 credits

| Parameter       | Type   | Required |        |        |        |        |    |
| --------------- | ------ | -------- | ------ | ------ | ------ | ------ | -- |
| `input`         | string | yes      |        |        |        |        |    |
| `processor`     | string | string   | string | string | string | string | no |
| `output_schema` | any    | no       |        |        |        |        |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"parallel","endpoint":"/v1/tasks/runs","input":{"input":"who are the top competitors to Parallel AI and how are they funded?","processor":"base"}}'
```

### Deep research (result)

Fetch a deep-research run's result by run\_id. Long-polls \~30s; if still running it returns \{ status: "running" } so you can call again.

**Cost:** 3 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `run_id`  | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"parallel","endpoint":"/v1/tasks/runs/{run_id}/result","input":{"run_id":"trun_..."}}'
```

## RemoteOK

Remote job listings across the web. *(jobs)*

### Jobs

Fetch the latest remote job listings.

**Cost:** 10 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"remoteok","endpoint":"/api","input":{}}'
```

## fetchbean

First-party data and utilities, hosted by fetchbean. *(data)*

### Create artifact

Host and share a web page: publish a rendered markdown or interactive HTML page (report, dashboard, landing page, chart, slides, mini-app) to a shareable fetchbean URL a human opens in a browser. fetchbean handles the styling (Tailwind + a base stylesheet) and hosting; you send the content. Returns the link.

**Cost:** 10 credits per call

| Parameter                 | Type   | Required |        |        |        |     |
| ------------------------- | ------ | -------- | ------ | ------ | ------ | --- |
| `title`                   | string | yes      |        |        |        |     |
| `type`                    | string | string   | string | string | string | yes |
| `content`                 | string | yes      |        |        |        |     |
| `visibility`              | string | string   | no     |        |        |     |
| `ttl`                     | string | string   | string | string | no     |     |
| *(other provider fields)* | any    | no       |        |        |        |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts","input":{"title":"Q3 revenue","type":"html","content":"<div class=\"max-w-md mx-auto p-10 text-center\"><h1 class=\"text-2xl font-bold text-emerald-700\">Q3 revenue</h1><p class=\"mt-3 text-5xl font-mono font-bold\">$1.2M</p><p class=\"mt-2 text-slate-500\">up 20% from Q2</p></div>"}}'
```

### Update artifact

Revise an existing artifact in place (same URL). The prior version is kept for rollback.

**Cost:** 3 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| `content`                 | string | yes      |
| `title`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/update","input":{"id":"art_1234","content":"<h1>Q3 revenue: $1.4M (updated)</h1>"}}'
```

### Patch artifact

Surgically edit an artifact with find/replace edits instead of resending the whole body — same URL, a version is snapshotted first. Best for small changes to a large artifact.

**Cost:** 3 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `id`                      | string    | yes      |
| `edits`                   | object\[] | yes      |
| `replace_all`             | boolean   | no       |
| `title`                   | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/patch","input":{"id":"art_1234","edits":[{"old_string":"$1.2M","new_string":"$1.4M"}]}}'
```

### List artifacts

List your published artifacts (newest first): id, url, title, type, visibility, expiry, views.

**Cost:** 1 credit per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/list","input":{}}'
```

### Find MCP servers

Search the third-party MCP server directory: what exists, who publishes it, whether it is remote, and how maintained it is. These are servers a user installs in their own client, not tools fetchbean runs.

**Cost:** 1 credit per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `q`                       | string | no       |
| `category`                | string | no       |
| `tag`                     | string | no       |
| `limit`                   | number | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/mcp-servers","input":{"q":"notion"}}'
```

### Get artifact

Fetch one of your artifacts in full, including its current content body.

**Cost:** 1 credit per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/get","input":{"id":"art_1234"}}'
```

### Delete artifact

Permanently delete an artifact and its version history.

**Cost:** 1 credit per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/delete","input":{"id":"art_1234"}}'
```

### Set artifact visibility

Change an artifact between unlisted (anyone with the link) and private (your org only).

**Cost:** 1 credit per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | yes      |     |
| `visibility`              | string | string   | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/visibility","input":{"id":"art_1234","visibility":"private"}}'
```

### Restore artifact version

Restore a prior version of an artifact (defaults to the most recent), keeping the same URL. Non-destructive: the current body is snapshotted first, so history is preserved and the restore is reversible.

**Cost:** 3 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| `version_id`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/rollback","input":{"id":"art_1234"}}'
```

### List artifact versions

The version timeline of an artifact (newest first): version id, title, and when it was saved.

**Cost:** 1 credit per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/artifacts/versions","input":{"id":"art_1234"}}'
```

### Random quote

A random quote with its author.

**Cost:** 1 credit per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/quotes/random","input":{}}'
```

### Random joke

A random safe joke, optionally filtered by category, type, or search text.

**Cost:** 1 credit per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `category`                | string | no       |    |
| `type`                    | string | string   | no |
| `contains`                | string | no       |    |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/jokes/random","input":{"category":"Programming"}}'
```

### Random fact

A random fact with its source.

**Cost:** 1 credit per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/facts/random","input":{}}'
```

### Quotes

Paginated list of quotes.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `skip`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/quotes","input":{"limit":10}}'
```

### UUID

Generate one or more UUIDs.

**Cost:** 1 credit per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `count`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/uuid","input":{}}'
```

### Email deliverability

Validate an email: syntax, DNS deliverability (MX), and disposable/free-provider/typo signals.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `email`                   | string  | yes      |
| `dns`                     | boolean | no       |
| `typo`                    | boolean | no       |
| `disposable`              | boolean | no       |
| `freeProvider`            | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/email/deliverability","input":{"email":"user@example.com"}}'
```

### Domain lookup

Is a domain available? Plus registrar, created/expiry dates, and nameservers (via RDAP).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `domain`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/domain","input":{"domain":"example.com"}}'
```

### Sitemap

Find a site's sitemaps (robots.txt + common paths) and extract its URLs.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `url`                     | string  | yes      |
| `extract_links`           | boolean | no       |
| `max_urls`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/sitemap","input":{"url":"example.com"}}'
```

### YouTube transcript

Fetch a YouTube video's transcript: timed segments + the joined plain text.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `url`                     | string | yes      |
| `lang`                    | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/youtube/transcript","input":{"url":"https://youtu.be/dQw4w9WgXcQ"}}'
```

### DNS lookup

Resolve a domain's DNS records (A/AAAA/MX/TXT/NS/CNAME/SOA/CAA/SRV). Pass types to limit.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `domain`                  | string    | yes      |
| `types`                   | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/dns","input":{"domain":"example.com"}}'
```

### URL metadata

All metadata for a page: title, full meta tags, OpenGraph + Twitter cards, JSON-LD, icons, canonical.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `url`                     | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/url/meta","input":{"url":"https://vercel.com"}}'
```

### HTTP inspect

A URL's status, response headers, redirect chain, content-type, and security headers (no body).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `url`                     | string | yes      |
| `method`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/http/inspect","input":{"url":"https://github.com"}}'
```

### Verify image (AI detection)

Is an image AI-generated? Returns a clear is\_ai\_generated boolean + confidence, with every signal under meta: C2PA Content Credentials, EXIF/XMP tags, and a light forensic pass. Runs locally, no key. A positive is strong evidence; a negative is not proof a photo is real.

**Cost:** 10 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `url`                     | string | no       |
| `image_base64`            | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/verify/image","input":{"url":"https://example.com/photo.jpg"}}'
```

### LLM pricing

Token prices + context windows for LLMs, from the LiteLLM dataset. Filter by model/provider/mode.

**Cost:** 1 credit per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `model`                   | string  | no       |
| `provider`                | string  | no       |
| `mode`                    | string  | no       |
| `contains`                | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fetchbean","endpoint":"/llm/pricing","input":{"contains":"gpt-4o"}}'
```

## AppRevs

iOS App Store search, metadata, reviews, ratings, and AI review insights. *(app-reviews)*

### iOS app search

Search iOS App Store apps by keyword and storefront country.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `q`                       | string  | yes      |
| `country`                 | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"apprevs","endpoint":"/apps/search","input":{"q":"notion","country":"us","limit":5}}'
```

### iOS app lookup

Fetch full App Store metadata for an iOS app by track ID.

**Cost:** 10 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `track_id`                | integer | yes      |
| `country`                 | string  | no       |
| `force`                   | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"apprevs","endpoint":"/apps/lookup/{track_id}","input":{"track_id":1232780281,"country":"us"}}'
```

### iOS app reviews

Fetch App Store reviews with rating distribution for an iOS app.

**Cost:** 10 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `track_id`                | integer | yes      |
| `country`                 | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"apprevs","endpoint":"/apps/{track_id}/reviews","input":{"track_id":1232780281,"country":"us","limit":100}}'
```

### iOS rating history

Fetch stored App Store rating snapshots for an iOS app.

**Cost:** 10 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `track_id`                | integer | yes      |
| `country`                 | string  | no       |
| `days`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"apprevs","endpoint":"/apps/{track_id}/rating-history","input":{"track_id":1232780281,"country":"us","days":30}}'
```

### iOS cached insights

Read cached AI review insights for an iOS app, if one exists.

**Cost:** 10 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `track_id`                | integer | yes      |
| `country`                 | string  | no       |
| `model`                   | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"apprevs","endpoint":"/apps/{track_id}/insights","input":{"track_id":1232780281,"country":"us"}}'
```

### iOS review research

Generate fresh AI insights from App Store reviews you pass in (supply reviews; pull them with the reviews tool first).

**Cost:** 50 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `app_name`                | string    | yes      |
| `track_id`                | integer   | yes      |
| `country`                 | string    | no       |
| `reviews`                 | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"apprevs","endpoint":"/apps/research","input":{"app_name":"Example App","track_id":123456789,"country":"us","reviews":[{"rating":2,"title":"Buggy","content":"Crashes on launch"}]}}'
```

## Fireflies

Your meeting transcripts, summaries, and action items (bring your own Fireflies key). *(productivity)*

### Fireflies: search transcripts

Find meetings by keyword, date, or participant; returns matching transcript ids and metadata (not full text). Use first, then the transcript tool.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `query`                   | string    | no       |
| `from_date`               | string    | no       |
| `to_date`                 | string    | no       |
| `participants`            | string\[] | no       |
| `limit`                   | integer   | no       |
| `offset`                  | integer   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcripts","input":{"query":"pricing","limit":5}}'
```

### Fireflies: get transcript

Fetch a meeting transcript with its summary, keywords, and action items.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `transcript_id`           | string  | yes      |
| `include_sentences`       | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcript","input":{"transcript_id":"01H..."}}'
```

### Fireflies: action items

Get just the action items and outline from a meeting.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `transcript_id`           | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcript/action-items","input":{"transcript_id":"01H..."}}'
```

### Fireflies: current user

Confirm whose Fireflies account the connected key acts as.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/user","input":{}}'
```

### Fireflies: recent meetings

Your meetings from the last N days (default 7), newest first.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `days`                    | integer | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcripts/recent","input":{"days":7,"limit":10}}'
```

### Fireflies: AI app outputs

Outputs from Fireflies AI Apps run on your meetings (custom summaries, extractions).

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `transcript_id`           | string  | no       |
| `app_id`                  | string  | no       |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/apps","input":{"limit":10}}'
```

### Fireflies: active meetings

Meetings currently in progress, with status and details.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `input`                   | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/active-meetings","input":{}}'
```

### Fireflies: analytics

Team and per-user conversation/meeting metrics over a time range.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `start_time`              | string | no       |
| `end_time`                | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/analytics","input":{"start_time":"2026-05-01T00:00:00.000Z"}}'
```

### Fireflies: channels

List your channels/folders with membership.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/channels","input":{}}'
```

### Fireflies: channel

Details and membership for one channel.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `channel_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/channel","input":{"channel_id":"..."}}'
```

### Fireflies: contacts

Your contacts, sorted by recent meeting activity.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/contacts","input":{}}'
```

### Fireflies: soundbites

Shareable audio/transcript clips from your meetings.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `transcript_id`           | string  | no       |
| `mine`                    | boolean | no       |
| `my_team`                 | boolean | no       |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/bites","input":{"limit":10}}'
```

### Fireflies: user groups

Team structure and group membership.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `mine`                    | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/user-groups","input":{}}'
```

### Fireflies: rule executions

Automation rule execution logs grouped by meeting (Enterprise).

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| `logs_per_meeting`        | integer | no       |
| `filters`                 | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/rule-executions","input":{"limit":10}}'
```

### Fireflies: update meeting title

Rename a meeting (admin).

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `transcript_id`           | string | yes      |
| `title`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcript/title","input":{"transcript_id":"...","title":"Q3 planning sync"}}'
```

### Fireflies: share meeting

Share a meeting transcript with email addresses.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `transcript_id`           | string    | yes      |
| `emails`                  | string\[] | yes      |
| `expiry_days`             | integer   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcript/share","input":{"transcript_id":"...","emails":["a@b.com"]}}'
```

### Fireflies: revoke meeting access

Remove a previously granted meeting share.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `transcript_id`           | string | yes      |
| `email`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcript/revoke-access","input":{"transcript_id":"...","email":"a@b.com"}}'
```

### Fireflies: move meeting

Move one or more meetings to a channel/folder.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `channel_id`              | string    | yes      |
| `transcript_id`           | string    | no       |
| `transcript_ids`          | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/transcript/move","input":{"transcript_id":"...","channel_id":"..."}}'
```

### Fireflies: create soundbite

Clip a soundbite from a meeting transcript.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `transcript_id`           | string    | yes      |
| `start_time`              | number    | yes      |
| `end_time`                | number    | yes      |
| `name`                    | string    | no       |
| `media_type`              | string    | no       |
| `summary`                 | string    | no       |
| `privacies`               | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/bites/create","input":{"transcript_id":"...","start_time":12.5,"end_time":30}}'
```

### Fireflies: raw GraphQL

Escape hatch: run any Fireflies GraphQL query or mutation on your own key. Prefer the curated fireflies tools when one fits.

> **Bring your own key** — connect Fireflies first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| `variables`               | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"fireflies","endpoint":"/graphql","input":{"query":"query { user { email num_transcripts } }"}}'
```

## PostHog

Query your PostHog events and analytics (HogQL), feature flags, insights, and errors (bring your own key). *(analytics)*

### PostHog: query (HogQL)

Run a HogQL/SQL query over your PostHog events, persons, and analytics. The main PostHog read tool.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `query`                   | string | yes      |    |
| `project_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/query","input":{"query":"SELECT event, count() FROM events GROUP BY event ORDER BY count() DESC LIMIT 10"}}'
```

### PostHog: raw request

Escape hatch: call any PostHog REST endpoint (read or write) on your own key. `\{project_id\}` in the path is filled from your connection. Prefer the curated posthog tools when one fits. Not idempotent for writes.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `path`                    | string | yes      |    |
| `method`                  | string | no       |    |
| `query`                   | object | no       |    |
| `body`                    | object | no       |    |
| `project_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/request","input":{"method":"GET","path":"/api/projects/{project_id}/feature_flags/"}}'
```

### PostHog: account + projects

Your PostHog account, organization, and accessible projects (ids for the other tools).

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/projects","input":{}}'
```

### PostHog: feature flags

List your feature flags (prefer this curated tool over the raw request escape hatch).

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `limit`                   | integer | no       |    |
| `project_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/feature-flags","input":{"limit":50}}'
```

### PostHog: get feature flag

Get one feature flag by id.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `flag_id`                 | string | integer  | yes |
| `project_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/feature-flag","input":{"flag_id":123}}'
```

### PostHog: create feature flag

Create a feature flag (pass any PostHog flag fields, e.g. filters/rollout).

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `key`                     | string  | yes      |    |
| `name`                    | string  | no       |    |
| `active`                  | boolean | no       |    |
| `project_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/feature-flags/create","input":{"key":"new-checkout","name":"New checkout","active":true}}'
```

### PostHog: update feature flag

Update a feature flag (e.g. toggle `active`, change rollout). Pass any PostHog flag fields.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `flag_id`                 | string  | integer  | yes |
| `active`                  | boolean | no       |     |
| `project_id`              | string  | integer  | no  |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/feature-flags/update","input":{"flag_id":123,"active":false}}'
```

### PostHog: insights

List your saved insights.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `limit`                   | integer | no       |    |
| `project_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/insights","input":{"limit":50}}'
```

### PostHog: dashboards

List your dashboards.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `limit`                   | integer | no       |    |
| `project_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/dashboards","input":{"limit":50}}'
```

### PostHog: error issues

List grouped error-tracking issues.

> **Bring your own key** — connect PostHog first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `limit`                   | integer | no       |    |
| `project_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"posthog","endpoint":"/error-issues","input":{"limit":25}}'
```

## Linear

Read and write your Linear issues, projects, and comments: search, create, update (bring your own key). *(productivity)*

### Linear: me

The Linear account your key authenticates as.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/viewer","input":{}}'
```

### Linear: issues

List issues, filtered by team, state, assignee, or priority.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `first`                   | integer | no       |
| `team_key`                | string  | no       |
| `assigned_to_me`          | boolean | no       |
| `state_type`              | string  | no       |
| `priority`                | integer | no       |
| `filter`                  | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/issues","input":{"assigned_to_me":true,"state_type":"started"}}'
```

### Linear: issue

Get one issue by UUID or human identifier (e.g. ENG-123).

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | no       |
| `identifier`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/issue","input":{"id":"ENG-123"}}'
```

### Linear: search

Free-text search across your Linear issues.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/search","input":{"query":"login bug"}}'
```

### Linear: teams

List your teams (id, key, name).

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/teams","input":{}}'
```

### Linear: projects

List projects with status and progress.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/projects","input":{}}'
```

### Linear: comments

Read the comment thread on an issue, by UUID or identifier (e.g. ENG-123).

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `id`                      | string  | no       |
| `identifier`              | string  | no       |
| `issueId`                 | string  | no       |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/comments","input":{"id":"ENG-123"}}'
```

### Linear: workflow states

A team's workflow states (id, name, type) — the stateId to move an issue. Filter by team\_key (e.g. ENG).

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `team_key`                | string  | no       |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/workflow-states","input":{"team_key":"ENG"}}'
```

### Linear: users

Workspace members (id, name, email) — the assigneeId for creating or reassigning issues.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/users","input":{}}'
```

### Linear: labels

Issue labels across the workspace (id, name, team) — the labelIds for create/update.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/labels","input":{}}'
```

### Linear: create issue

Create an issue (needs a teamId; list teams first).

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `teamId`                  | string  | no       |
| `title`                   | string  | no       |
| `description`             | string  | no       |
| `assigneeId`              | string  | no       |
| `stateId`                 | string  | no       |
| `priority`                | integer | no       |
| `projectId`               | string  | no       |
| `input`                   | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/issues/create","input":{"teamId":"<team-uuid>","title":"Fix the login redirect","priority":2}}'
```

### Linear: update issue

Update an issue by its UUID (get it from the issue tool); stateId/assigneeId are UUIDs too.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `id`                      | string  | yes      |
| `title`                   | string  | no       |
| `description`             | string  | no       |
| `stateId`                 | string  | no       |
| `assigneeId`              | string  | no       |
| `priority`                | integer | no       |
| `input`                   | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/issues/update","input":{"id":"<issue-uuid>","stateId":"<state-uuid>"}}'
```

### Linear: comment

Add a comment to an issue (issueId is the UUID).

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `issueId`                 | string | yes      |
| `body`                    | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/comments/create","input":{"issueId":"<issue-uuid>","body":"On it."}}'
```

### Linear: raw GraphQL

Escape hatch: run any Linear GraphQL query or mutation on your own key. Prefer the curated linear tools when one fits.

> **Bring your own key** — connect Linear first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| `variables`               | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"linear","endpoint":"/graphql","input":{"query":"query { viewer { id name } }"}}'
```

## RevenueCat

Read your RevenueCat customers, subscriptions, products, entitlements, and offerings (bring your own v2 key). *(payments)*

### RevenueCat: projects

List the projects your key can see.

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/projects","input":{}}'
```

### RevenueCat: customer

Get ONE customer by their app\_user\_id (the customer\_id param), incl. active entitlements.

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `customer_id`             | string | yes      |
| `expand`                  | string | no       |
| `project_id`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/customer","input":{"customer_id":"user_123"}}'
```

### RevenueCat: customers

List/page customers; the optional search is exact-email only (no name or partial match).

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| `search`                  | string  | no       |
| `project_id`              | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/customers","input":{"search":"jane@example.com"}}'
```

### RevenueCat: customer subscriptions

A customer's subscriptions (status, store, access, renewal).

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `customer_id`             | string  | yes      |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| `project_id`              | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/customer-subscriptions","input":{"customer_id":"user_123"}}'
```

### RevenueCat: products

List products (store id, type, price).

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| `project_id`              | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/products","input":{}}'
```

### RevenueCat: entitlements

List entitlements and their products.

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| `project_id`              | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/entitlements","input":{}}'
```

### RevenueCat: offerings

List offerings and their packages.

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| `project_id`              | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/offerings","input":{}}'
```

### RevenueCat: grant entitlement

Grant a promotional entitlement to a customer (write).

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `customer_id`             | string | yes      |
| `entitlement_id`          | string | yes      |
| `duration`                | string | no       |
| `project_id`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/grant-entitlement","input":{"customer_id":"user_123","entitlement_id":"<entitlement-id>","duration":"monthly"}}'
```

### RevenueCat: raw request

Escape hatch: call any v2 endpoint on your key (path fills \{project\_id}). Prefer the curated revenuecat tools when one fits.

> **Bring your own key** — connect RevenueCat first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| `project_id`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"revenuecat","endpoint":"/request","input":{"method":"GET","path":"/v2/projects/{project_id}/products"}}'
```

## Expo

Read your Expo/EAS builds, updates, submissions, and apps; cancel a build (bring your own access token). *(dev)*

### Expo: whoami

The Expo account/robot your token authenticates as, and its accounts.

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/whoami","input":{}}'
```

### Expo: apps

List the apps (projects) under an account; gives the app\_id the build/update tools need.

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `account`                 | string  | no       |
| `first`                   | integer | no       |
| `after`                   | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/apps","input":{}}'
```

### Expo: app

Get one app by full name (@owner/slug) or app\_id.

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `full_name`               | string | no       |
| `app_id`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/app","input":{"full_name":"@owner/slug"}}'
```

### Expo: builds

Recent EAS builds for an app (status/platform/artifact url); filter by platform (ios/android) or status.

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `app_id`                  | string  | no       |
| `platform`                | string  | no       |
| `status`                  | string  | no       |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/builds","input":{"status":"errored"}}'
```

### Expo: build

One build by id, with full detail (commit, error docs, queue/duration metrics).

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `build_id`                | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/build","input":{"build_id":"<build-id>"}}'
```

### Expo: updates

Recent EAS Updates on a branch (grouped per publish).

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `branch`                  | string  | yes      |
| `app_id`                  | string  | no       |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/updates","input":{"branch":"main"}}'
```

### Expo: submissions

Recent App Store / Play Store submissions for an app.

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `app_id`                  | string  | no       |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/submissions","input":{}}'
```

### Expo: cancel build

Cancel an in-progress EAS build (write).

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `build_id`                | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/cancel-build","input":{"build_id":"<build-id>"}}'
```

### Expo: raw GraphQL

Escape hatch: run any Expo GraphQL query or mutation on your own token (covers the long tail + create-build/publish-update).

> **Bring your own key** — connect Expo first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| `variables`               | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"expo","endpoint":"/graphql","input":{"query":"query { meActor { id } }"}}'
```

## GitHub

Contribution graphs, profiles, repos, code/files, issues, PRs, commits, and search — public data works out of the box; connect a token for higher limits, private repos, and writes. *(dev)*

### GitHub: contributions

Any user's contribution calendar (the green graph): total + daily counts. Omit from/to for the last year.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `login`                   | string | yes      |
| `from`                    | string | no       |
| `to`                      | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/contributions","input":{"login":"torvalds"}}'
```

### GitHub: user

A user's public profile (bio, company, location, follower/repo counts).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `login`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/user","input":{"login":"torvalds"}}'
```

### GitHub: repos

A user's public repositories, newest-pushed first (stars, language, description).

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `login`                   | string  | yes      |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/repos","input":{"login":"torvalds"}}'
```

### GitHub: search

Search repositories, users, or issues (type = repository|user|issue).

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `type`                    | string  | no       |
| `first`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/search","input":{"query":"language:rust stars:>1000","type":"repository"}}'
```

### GitHub: whoami

The account your connected GitHub token authenticates as.

> **Bring your own key** — connect GitHub first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/whoami","input":{}}'
```

### GitHub: raw GraphQL

Escape hatch: run any GitHub GraphQL query or mutation on your own token (BYOK only).

> **Bring your own key** — connect GitHub first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| `variables`               | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/graphql","input":{"query":"query { viewer { login } }"}}'
```

### GitHub: repo

Get one repository (stars, language, topics, default branch, license).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/repo","input":{"repo":"facebook/react"}}'
```

### GitHub: contents

Read a file (decoded text) or list a directory. Omit path for the repo root; ref = branch/sha.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| `path`                    | string | no       |
| `ref`                     | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/contents","input":{"repo":"facebook/react","path":"README.md"}}'
```

### GitHub: issues

List issues for a repo (state=open|closed|all, labels). Includes PRs.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| `state`                   | string | no       |
| `labels`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/issues","input":{"repo":"facebook/react","state":"open"}}'
```

### GitHub: issue

Get one issue by number (title, body, labels, state).

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `repo`                    | string  | yes      |
| `owner`                   | string  | no       |
| `number`                  | integer | yes      |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/issue","input":{"repo":"facebook/react","number":1}}'
```

### GitHub: pull requests

List pull requests for a repo (state=open|closed|all).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| `state`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/pulls","input":{"repo":"facebook/react","state":"open"}}'
```

### GitHub: pull request

Get one PR by number (status, head/base, mergeable, diff stats).

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `repo`                    | string  | yes      |
| `owner`                   | string  | no       |
| `number`                  | integer | yes      |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/pull","input":{"repo":"facebook/react","number":1}}'
```

### GitHub: commits

Recent commits for a repo (filter by sha/branch, path, author).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| `sha`                     | string | no       |
| `path`                    | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/commits","input":{"repo":"facebook/react"}}'
```

### GitHub: releases

List releases for a repo, or the latest with latest=true.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `repo`                    | string  | yes      |
| `owner`                   | string  | no       |
| `latest`                  | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/releases","input":{"repo":"facebook/react","latest":true}}'
```

### GitHub: code search

Search code across GitHub (scope with qualifiers like repo:/language:/path:).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/code-search","input":{"query":"useEffect repo:facebook/react"}}'
```

### GitHub: create issue

Open an issue (BYOK). Required: repo + title; optional body, labels, assignees.

> **Bring your own key** — connect GitHub first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| `title`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/create-issue","input":{"repo":"me/myrepo","title":"Bug: ...","body":"..."}}'
```

### GitHub: comment

Comment on an issue or PR (BYOK). Required: repo + number + body.

> **Bring your own key** — connect GitHub first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `repo`                    | string  | yes      |
| `owner`                   | string  | no       |
| `number`                  | integer | yes      |
| `body`                    | string  | yes      |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/comment","input":{"repo":"me/myrepo","number":12,"body":"thanks!"}}'
```

### GitHub: create pull request

Open a PR (BYOK). Required: repo + title + head (branch) + base (branch).

> **Bring your own key** — connect GitHub first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `repo`                    | string | yes      |
| `owner`                   | string | no       |
| `title`                   | string | yes      |
| `head`                    | string | yes      |
| `base`                    | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/create-pr","input":{"repo":"me/myrepo","title":"Add feature","head":"feature-branch","base":"main"}}'
```

### GitHub: raw REST

Escape hatch: call any GitHub REST endpoint on your own token (notifications, traffic, etc.). BYOK only.

> **Bring your own key** — connect GitHub first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"github","endpoint":"/rest","input":{"method":"GET","path":"/notifications"}}'
```

## Better Stack

Uptime monitors, incidents, on-call, and status pages — read status, acknowledge/resolve incidents (bring your own Uptime API token). *(dev)*

### Better Stack: monitors

List your uptime monitors with status, last check, and SSL/domain expiry.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/monitors","input":{"per_page":50}}'
```

### Better Stack: monitor

Get one monitor by id.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/monitor","input":{"id":"123456"}}'
```

### Better Stack: monitor groups

List monitor groups.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/monitor-groups","input":{}}'
```

### Better Stack: heartbeats

List heartbeat (cron/job) monitors with their status.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/heartbeats","input":{}}'
```

### Better Stack: incidents

List incidents. Filter with resolved=false / acknowledged=false, from/to (YYYY-MM-DD), or monitor\_id.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/incidents","input":{"resolved":false}}'
```

### Better Stack: incident

Get one incident by id (cause, status, acknowledged/resolved by).

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/incident","input":{"id":"987654"}}'
```

### Better Stack: incident timeline

The full timeline of events for one incident.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/incident-timeline","input":{"id":"987654"}}'
```

### Better Stack: on-call

On-call calendars and who is currently on call (in relationships.on\_call\_users).

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/on-calls","input":{}}'
```

### Better Stack: escalation policies

List escalation policies and their steps.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/escalation-policies","input":{}}'
```

### Better Stack: status pages

List your status pages.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/status-pages","input":{}}'
```

### Better Stack: status page

Get one status page by id.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/status-page","input":{"id":"12345"}}'
```

### Better Stack: status page resources

The resources (monitors etc.) shown on a status page.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `status_page_id`          | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/status-page-resources","input":{"status_page_id":"12345"}}'
```

### Better Stack: status page reports

Reports / maintenance posted on a status page.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `status_page_id`          | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/status-page-reports","input":{"status_page_id":"12345"}}'
```

### Better Stack: metadata

List metadata key/values (filter by owner\_type/owner\_id).

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/metadata","input":{}}'
```

### Better Stack: team members

List members of the token's team (name, email, role).

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/team-members","input":{}}'
```

### Better Stack: acknowledge incident

Acknowledge an incident by id.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/incidents/acknowledge","input":{"id":"987654"}}'
```

### Better Stack: resolve incident

Resolve an incident by id.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/incidents/resolve","input":{"id":"987654"}}'
```

### Better Stack: create monitor

Create a monitor. Required: url + monitor\_type (e.g. status, keyword, ping); plus options.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `url`                     | string | yes      |
| `monitor_type`            | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/monitors/create","input":{"url":"https://example.com","monitor_type":"status"}}'
```

### Better Stack: update monitor

Update a monitor by id (pause via \{"paused": true}).

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/monitors/update","input":{"id":"123456","paused":true}}'
```

### Better Stack: post status report

Post a report / maintenance to a status page (title, message, affected\_resources).

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `status_page_id`          | string | yes      |
| `title`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/status-reports/create","input":{"status_page_id":"12345","title":"Investigating elevated errors"}}'
```

### Better Stack: raw request

Escape hatch: call any Uptime API endpoint on your token (reaches the long tail incl. deletes). host="betterstack" for team-members/roles.

> **Bring your own key** — connect Better Stack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `host`                    | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"betterstack","endpoint":"/request","input":{"method":"GET","path":"/api/v2/monitors","query":{"per_page":1}}}'
```

## GitLab

Projects, files, issues, merge requests, commits, releases, pipelines, and search — public data works out of the box; connect a token (incl. self-managed hosts) for private data, higher limits, and writes. *(dev)*

### GitLab: project

Get one project (description, stars, default branch, visibility).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/project","input":{"project":"gitlab-org/gitlab"}}'
```

### GitLab: projects

List/search projects (search=, membership=true for your own).

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `search`                  | string  | no       |
| `membership`              | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/projects","input":{"search":"kubernetes"}}'
```

### GitLab: user

A user by username or numeric id.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `username`                | string | no       |    |
| `id`                      | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/user","input":{"username":"torvalds"}}'
```

### GitLab: contents

Read a file from a project repo (decoded text). ref = branch/tag/sha.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `file_path`               | string | yes      |     |
| `ref`                     | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/contents","input":{"project":"gitlab-org/gitlab","file_path":"README.md"}}'
```

### GitLab: tree

List a directory in a project repo (path=, ref=, recursive=).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/tree","input":{"project":"gitlab-org/gitlab"}}'
```

### GitLab: issues

List issues for a project (state=opened|closed|all, labels).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `state`                   | string | no       |     |
| `labels`                  | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/issues","input":{"project":"gitlab-org/gitlab","state":"opened"}}'
```

### GitLab: issue

Get one issue by its per-project iid.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `project`                 | string  | integer  | yes |
| `iid`                     | integer | yes      |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/issue","input":{"project":"gitlab-org/gitlab","iid":1}}'
```

### GitLab: merge requests

List merge requests for a project (state=opened|merged|closed|all).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `state`                   | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/merge-requests","input":{"project":"gitlab-org/gitlab","state":"opened"}}'
```

### GitLab: merge request

Get one merge request by its per-project iid.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `project`                 | string  | integer  | yes |
| `iid`                     | integer | yes      |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/merge-request","input":{"project":"gitlab-org/gitlab","iid":1}}'
```

### GitLab: commits

List commits for a project (ref\_name, since/until, path).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `ref_name`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/commits","input":{"project":"gitlab-org/gitlab"}}'
```

### GitLab: releases

Releases for a project, or one by tag.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `tag`                     | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/releases","input":{"project":"gitlab-org/gitlab"}}'
```

### GitLab: pipelines

CI/CD pipelines for a project, or one by pipeline\_id (status, ref).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `pipeline_id`             | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/pipelines","input":{"project":"gitlab-org/gitlab"}}'
```

### GitLab: search

Global search (BYOK — GitLab requires a token). scope = projects|issues|merge\_requests|users|blobs (code search needs Advanced Search).

> **Bring your own key** — connect GitLab first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `search`                  | string | yes      |
| `scope`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/search","input":{"search":"kubernetes","scope":"projects"}}'
```

### GitLab: user events

A user's activity feed (the closest thing to a contribution feed; no calendar API exists).

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/user-events","input":{"id":1}}'
```

### GitLab: create issue

Open an issue (BYOK). Required: project + title; optional description, labels.

> **Bring your own key** — connect GitLab first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `title`                   | string | yes      |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/create-issue","input":{"project":"me/myproj","title":"Bug: ..."}}'
```

### GitLab: comment

Comment on an issue (BYOK). Required: project + iid + body.

> **Bring your own key** — connect GitLab first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `project`                 | string  | integer  | yes |
| `iid`                     | integer | yes      |     |
| `body`                    | string  | yes      |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/create-note","input":{"project":"me/myproj","iid":12,"body":"thanks!"}}'
```

### GitLab: create merge request

Open a merge request (BYOK). Required: project + source\_branch + target\_branch + title.

> **Bring your own key** — connect GitLab first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `project`                 | string | integer  | yes |
| `source_branch`           | string | yes      |     |
| `target_branch`           | string | yes      |     |
| `title`                   | string | yes      |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/create-merge-request","input":{"project":"me/myproj","source_branch":"feature","target_branch":"main","title":"Add feature"}}'
```

### GitLab: raw REST

Escape hatch: call any /api/v4 endpoint on your own token + host (BYOK only).

> **Bring your own key** — connect GitLab first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/rest","input":{"method":"GET","path":"/projects/278964/issues"}}'
```

### GitLab: raw GraphQL

Escape hatch: run any GitLab GraphQL query or mutation on your own token + host (BYOK only).

> **Bring your own key** — connect GitLab first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| `variables`               | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gitlab","endpoint":"/graphql","input":{"query":"query { currentUser { username } }"}}'
```

## Notion

Search, read pages as markdown, query databases, and create pages, blocks, and comments — bring your own connected Notion workspace. *(productivity)*

### Notion: search

Full-text search across pages and databases. filter='page'|'database' narrows the object type.

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | no       |
| `filter`                  | string  | no       |
| `page_size`               | integer | no       |
| `start_cursor`            | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/search","input":{"query":"roadmap","filter":"page"}}'
```

### Notion: page

Get one page's properties + metadata by id (use read\_page for the body content).

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `page_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/page","input":{"page_id":"59833787-2cf9-4fdf-8782-e53db20768a5"}}'
```

### Notion: read page

Read a whole page's content as markdown — recursively crawls the block tree and flattens it (capped for very large pages).

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `page_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/read-page","input":{"page_id":"59833787-2cf9-4fdf-8782-e53db20768a5"}}'
```

### Notion: database

Get a database's schema (title, properties) by id.

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `database_id`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/database","input":{"database_id":"8d4f3c2a-1b6e-4a9f-9c2d-7e1f0a3b5c6d"}}'
```

### Notion: query database

Query a database's rows with filter/sorts. Returns one page of results (paginate via start\_cursor).

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `database_id`             | string    | yes      |
| `filter`                  | object    | no       |
| `sorts`                   | object\[] | no       |
| `page_size`               | integer   | no       |
| `start_cursor`            | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/query-database","input":{"database_id":"8d4f3c2a-1b6e-4a9f-9c2d-7e1f0a3b5c6d","page_size":50}}'
```

### Notion: users

List the workspace's users (people + bots).

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_size`               | integer | no       |
| `start_cursor`            | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/users","input":{}}'
```

### Notion: create page

Create a page under a parent page or database. Required: parent + properties; children = block content.

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `parent`                  | object    | yes      |
| `properties`              | object    | yes      |
| `children`                | object\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/create-page","input":{"parent":{"page_id":"59833787-2cf9-4fdf-8782-e53db20768a5"},"properties":{"title":{"title":[{"text":{"content":"New page"}}]}}}}'
```

### Notion: append blocks

Append blocks to a page or block's children. Required: block\_id + a children array.

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `block_id`                | string    | yes      |
| `children`                | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/append-blocks","input":{"block_id":"59833787-2cf9-4fdf-8782-e53db20768a5","children":[{"paragraph":{"rich_text":[{"text":{"content":"Hello"}}]}}]}}'
```

### Notion: comment

Add a comment to a page (via parent) or an existing discussion (via discussion\_id). Pass body or rich\_text.

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `parent`                  | object    | no       |
| `discussion_id`           | string    | no       |
| `body`                    | string    | no       |
| `rich_text`               | object\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/comment","input":{"parent":{"page_id":"59833787-2cf9-4fdf-8782-e53db20768a5"},"body":"Looks good!"}}'
```

### Notion: raw request

Escape hatch: call any Notion API endpoint on your token (host pinned to api.notion.com).

> **Bring your own key** — connect Notion first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"notion","endpoint":"/request","input":{"method":"POST","path":"/v1/search","body":{"query":"roadmap"}}}'
```

## Dodo Payments

Your Dodo Payments account: payments, subscriptions, customers, products, refunds, payouts, licenses, and checkout links (bring your own API key). *(payments)*

### Dodo: payments

List payments (filter by status, customer\_id, etc.).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/payments","input":{"page_size":20}}'
```

### Dodo: payment

Get one payment by id.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `payment_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/payment","input":{"payment_id":"pay_123"}}'
```

### Dodo: subscriptions

List subscriptions (status, customer).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/subscriptions","input":{"page_size":20}}'
```

### Dodo: subscription

Get one subscription by id.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `subscription_id`         | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/subscription","input":{"subscription_id":"sub_123"}}'
```

### Dodo: customers

List customers (filter by email, etc.).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/customers","input":{"page_size":20}}'
```

### Dodo: customer

Get one customer by id.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `customer_id`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/customer","input":{"customer_id":"cus_123"}}'
```

### Dodo: products

List products.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/products","input":{}}'
```

### Dodo: refunds

List refunds.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/refunds","input":{}}'
```

### Dodo: disputes

List disputes/chargebacks.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/disputes","input":{}}'
```

### Dodo: payouts

List payouts.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/payouts","input":{}}'
```

### Dodo: licenses

List license keys (validate/activate via the request passthrough).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/licenses","input":{}}'
```

### Dodo: discounts

List discount codes.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/discounts","input":{}}'
```

### Dodo: create refund

Refund a payment. Required: payment\_id; optional amount (partial) + reason.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `payment_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/refunds/create","input":{"payment_id":"pay_123"}}'
```

### Dodo: cancel subscription

Cancel a subscription by id.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `subscription_id`         | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/subscriptions/cancel","input":{"subscription_id":"sub_123"}}'
```

### Dodo: create checkout

Create a hosted checkout session / payment link (per Dodo's checkout-sessions schema).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/checkout/create","input":{"product_cart":[{"product_id":"prod_123","quantity":1}]}}'
```

### Dodo: customer portal link

Generate a self-serve billing-portal session link for a customer.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `customer_id`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/customers/portal","input":{"customer_id":"cus_123"}}'
```

### Dodo: validate license

Check whether a license key is valid. Optional license\_key\_instance\_id.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `license_key`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/licenses/validate","input":{"license_key":"KEY-XXXX-XXXX"}}'
```

### Dodo: activate license

Activate a license key on a device/instance. Required: license\_key + name.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `license_key`             | string | yes      |
| `name`                    | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/licenses/activate","input":{"license_key":"KEY-XXXX-XXXX","name":"my-laptop"}}'
```

### Dodo: create customer

Create a customer. Required: email; name + phone\_number optional.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `email`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/customers/create","input":{"email":"jane@example.com","name":"Jane"}}'
```

### Dodo: create product

Create a product (name + price/tax\_category per Dodo's schema).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `name`                    | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/products/create","input":{"name":"Pro plan","tax_category":"saas"}}'
```

### Dodo: payment line items

Line items for a payment.

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `payment_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/payments/line-items","input":{"payment_id":"pay_123"}}'
```

### Dodo: balance ledger

Balance ledger entries (filter by date range, event type, currency).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page_number`             | integer | no       |
| `page_size`               | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/balance-ledger","input":{"page_size":20}}'
```

### Dodo: raw request

Escape hatch: call any Dodo endpoint on your key (license validate/activate, portal sessions, etc.).

> **Bring your own key** — connect Dodo Payments first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"dodo","endpoint":"/request","input":{"method":"GET","path":"/payments","query":{"page_size":1}}}'
```

## Spaceship

Your Spaceship domains and DNS: list domains, edit DNS records, set nameservers and auto-renew (bring your own API key + secret). *(dev)*

### Spaceship: my domains

List the domains in your account (expiry, auto-renew, nameservers).

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `take`                    | integer | no       |
| `skip`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/domains","input":{"take":50}}'
```

### Spaceship: domain info

Details for one of your domains (expiry, auto-renew, nameservers, status).

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `domain`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/domain","input":{"domain":"example.com"}}'
```

### Spaceship: DNS records

List the DNS records for one of your domains.

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `domain`                  | string  | yes      |
| `take`                    | integer | no       |
| `skip`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/dns/records","input":{"domain":"example.com"}}'
```

### Spaceship: domain availability

Check whether a domain is available to register.

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `domain`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/domains/available","input":{"domain":"example.com"}}'
```

### Spaceship: save DNS records

Add or update DNS records (upsert). Pass items per Spaceship's record schema.

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `domain`                  | string    | yes      |
| `items`                   | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/dns/records/save","input":{"domain":"example.com","items":[{"type":"TXT","name":"@","value":"verify=abc","ttl":3600}]}}'
```

### Spaceship: delete DNS records

Delete DNS records. Pass the records to remove in items.

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `domain`                  | string    | yes      |
| `items`                   | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/dns/records/delete","input":{"domain":"example.com","items":[{"type":"TXT","name":"@","value":"verify=abc"}]}}'
```

### Spaceship: set nameservers

Update a domain's nameservers (provider preset or custom hosts).

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `domain`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/domains/nameservers","input":{"domain":"example.com","provider":"custom","hosts":["ns1.example.net","ns2.example.net"]}}'
```

### Spaceship: set auto-renew

Turn auto-renew on or off for a domain.

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `domain`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/domains/autorenew","input":{"domain":"example.com","isAutoRenew":true}}'
```

### Spaceship: raw request

Escape hatch: call any Spaceship endpoint on your key (register, renew, transfer, contacts, async-operations).

> **Bring your own key** — connect Spaceship first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"spaceship","endpoint":"/request","input":{"method":"GET","path":"/domains","query":{"take":1,"skip":0}}}'
```

## Supabase

Your Supabase org: run SQL on its projects, list projects, read logs (connect with one click; pick the org). *(dev)*

### Supabase: my projects

List your Supabase projects (id, ref, name, region, status).

> **Bring your own key** — connect Supabase first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"supabase","endpoint":"/projects","input":{}}'
```

### Supabase: project

Details for one project by its ref.

> **Bring your own key** — connect Supabase first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `project_ref`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"supabase","endpoint":"/project","input":{"project_ref":"abcdefghijklmnop"}}'
```

### Supabase: organizations

List your Supabase organizations.

> **Bring your own key** — connect Supabase first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"supabase","endpoint":"/organizations","input":{}}'
```

### Supabase: project logs

Recent project logs (optional sql + iso\_timestamp\_start/end filters).

> **Bring your own key** — connect Supabase first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `project_ref`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"supabase","endpoint":"/logs","input":{"project_ref":"abcdefghijklmnop"}}'
```

### Supabase: run SQL

Run SQL on a project. Defaults to read-only; pass read\_only:false to allow writes/DDL.

> **Bring your own key** — connect Supabase first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `project_ref`             | string  | yes      |
| `query`                   | string  | yes      |
| `read_only`               | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"supabase","endpoint":"/database/query","input":{"project_ref":"abcdefghijklmnop","query":"select count(*) from auth.users"}}'
```

### Supabase: raw request

Escape hatch: call any Supabase Management API endpoint on your connection.

> **Bring your own key** — connect Supabase first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"supabase","endpoint":"/request","input":{"method":"GET","path":"/v1/projects"}}'
```

## Cloudflare

Your Cloudflare zones and DNS: list zones, manage DNS records, purge cache (account-owned API token + account id). *(dev)*

### Cloudflare: zones

List your zones (domains). Filter by name.

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `name`                    | string  | no       |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/zones","input":{}}'
```

### Cloudflare: zone

Details for one zone by id.

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `zone_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/zone","input":{"zone_id":"023e105f4ecef8ad9ca31a8372d0c353"}}'
```

### Cloudflare: DNS records

List a zone's DNS records (filter by type/name).

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `zone_id`                 | string | yes      |
| `type`                    | string | no       |
| `name`                    | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/dns_records","input":{"zone_id":"023e105f..."}}'
```

### Cloudflare: accounts

List the accounts your token can access.

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/accounts","input":{}}'
```

### Cloudflare: create DNS record

Add a DNS record. Required: zone\_id, type, name, content; optional ttl, proxied.

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `zone_id`                 | string | yes      |
| `type`                    | string | yes      |
| `name`                    | string | yes      |
| `content`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/dns_records/create","input":{"zone_id":"023e105f...","type":"A","name":"app.example.com","content":"203.0.113.10","proxied":true}}'
```

### Cloudflare: update DNS record

Update a DNS record by zone\_id + record\_id (fields to change in the body).

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `zone_id`                 | string | yes      |
| `record_id`               | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/dns_records/update","input":{"zone_id":"023e105f...","record_id":"372e67954...","content":"203.0.113.20"}}'
```

### Cloudflare: delete DNS record

Delete a DNS record by zone\_id + record\_id.

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `zone_id`                 | string | yes      |
| `record_id`               | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/dns_records/delete","input":{"zone_id":"023e105f...","record_id":"372e67954..."}}'
```

### Cloudflare: purge cache

Purge a zone's cache. Defaults to purge\_everything; pass files:\[] for selective purge.

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `zone_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/purge_cache","input":{"zone_id":"023e105f...","purge_everything":true}}'
```

### Cloudflare: raw request

Escape hatch: call any Cloudflare v4 endpoint on your token (Workers, Pages, KV, rulesets, analytics).

> **Bring your own key** — connect Cloudflare first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cloudflare","endpoint":"/request","input":{"method":"GET","path":"/zones"}}'
```

## Stripe

Your Stripe account: customers, payments, subscriptions, invoices, balance, payouts, refunds + checkout/payment links (bring your own restricted key). *(payments)*

### Stripe: customers

List customers (filter by email, etc.).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/customers","input":{"limit":10}}'
```

### Stripe: customer

Get one customer by id.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `customer_id`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/customer","input":{"customer_id":"cus_123"}}'
```

### Stripe: payment intents

List payment intents.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/payment_intents","input":{"limit":10}}'
```

### Stripe: payment intent

Get one payment intent by id.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `payment_intent_id`       | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/payment_intent","input":{"payment_intent_id":"pi_123"}}'
```

### Stripe: charges

List charges.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/charges","input":{"limit":10}}'
```

### Stripe: subscriptions

List subscriptions (filter by customer, status, price).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/subscriptions","input":{"limit":10}}'
```

### Stripe: subscription

Get one subscription by id.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `subscription_id`         | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/subscription","input":{"subscription_id":"sub_123"}}'
```

### Stripe: invoices

List invoices.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/invoices","input":{"limit":10}}'
```

### Stripe: products

List products.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/products","input":{"limit":10}}'
```

### Stripe: prices

List prices.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/prices","input":{"limit":10}}'
```

### Stripe: refunds

List refunds.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/refunds","input":{"limit":10}}'
```

### Stripe: balance

Your current Stripe balance (available + pending).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/balance","input":{}}'
```

### Stripe: balance transactions

List balance transactions (the money ledger).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/balance_transactions","input":{"limit":10}}'
```

### Stripe: payouts

List payouts to your bank.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/payouts","input":{"limit":10}}'
```

### Stripe: events

List recent account events.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/events","input":{"limit":10}}'
```

### Stripe: disputes

List disputes / chargebacks.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/disputes","input":{"limit":10}}'
```

### Stripe: create refund

Refund a charge or payment\_intent (moves money back). Required: charge OR payment\_intent.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/refunds/create","input":{"payment_intent":"pi_123"}}'
```

### Stripe: create customer

Create a customer (email, name, metadata).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/customers/create","input":{"email":"jane@example.com"}}'
```

### Stripe: cancel subscription

Cancel a subscription by id (stops recurring billing).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `subscription_id`         | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/subscriptions/cancel","input":{"subscription_id":"sub_123"}}'
```

### Stripe: create payment link

Create a shareable payment link. line\_items reference existing prices.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `line_items`              | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/payment_links/create","input":{"line_items":[{"price":"price_123","quantity":1}]}}'
```

### Stripe: create checkout session

Create a hosted Checkout session (per Stripe's checkout schema).

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/checkout/create","input":{"mode":"payment","line_items":[{"price":"price_123","quantity":1}],"success_url":"https://example.com/ok"}}'
```

### Stripe: raw request

Escape hatch: call any Stripe endpoint on your key (form-encoded). params support nested objects/arrays.

> **Bring your own key** — connect Stripe first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `params`                  | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"stripe","endpoint":"/request","input":{"method":"GET","path":"/v1/charges","params":{"limit":1}}}'
```

## Slack

Your Slack workspace: post and read messages, list channels and users (connect with one click; invite the bot to channels it should act in). *(productivity)*

### Slack: list channels

List channels (public/private the bot can see).

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `types`                   | string  | no       |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/conversations.list","input":{"types":"public_channel","limit":50}}'
```

### Slack: channel history

Recent messages in a channel (the bot must be a member).

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `channel`                 | string  | yes      |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/conversations.history","input":{"channel":"C0123ABC","limit":20}}'
```

### Slack: channel info

Metadata for one channel.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `channel`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/conversations.info","input":{"channel":"C0123ABC"}}'
```

### Slack: list users

List workspace users.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/users.list","input":{"limit":100}}'
```

### Slack: user info

Profile for one user by id.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `user`                    | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/users.info","input":{"user":"U0123ABC"}}'
```

### Slack: post message

Post a message to a channel (the bot must be a member). text or blocks.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `channel`                 | string | yes      |
| `text`                    | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/chat.postMessage","input":{"channel":"C0123ABC","text":"deploy finished ✅"}}'
```

### Slack: update message

Edit a message by channel + ts.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `channel`                 | string | yes      |
| `ts`                      | string | yes      |
| `text`                    | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/chat.update","input":{"channel":"C0123ABC","ts":"1700000000.000100","text":"updated"}}'
```

### Slack: delete message

Delete a message by channel + ts.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `channel`                 | string | yes      |
| `ts`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/chat.delete","input":{"channel":"C0123ABC","ts":"1700000000.000100"}}'
```

### Slack: raw request

Escape hatch: call any Slack Web API method on your token. http\_method defaults to POST.

> **Bring your own key** — connect Slack first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `method`                  | string | yes      |
| `http_method`             | string | no       |
| `params`                  | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"slack","endpoint":"/request","input":{"method":"conversations.list","http_method":"GET","params":{"limit":1}}}'
```

## Sentry

Your Sentry org: list and inspect issues + events, list projects and releases, resolve issues (bring your own auth token). *(dev)*

### Sentry: organizations

List the organizations your token can access.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/organizations","input":{}}'
```

### Sentry: projects

List an organization's projects.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `organization_slug`       | string  | no       |
| `cursor`                  | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/projects","input":{}}'
```

### Sentry: issues

List issues. Defaults to is:unresolved; use query (e.g. 'is:unresolved lastSeen:-24h'), sort, limit, cursor.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | no       |
| `sort`                    | string  | no       |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| `organization_slug`       | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/issues","input":{"query":"is:unresolved","limit":25}}'
```

### Sentry: issue

Get one issue by id.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `issue_id`                | string | yes      |
| `organization_slug`       | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/issue","input":{"issue_id":"123456"}}'
```

### Sentry: issue events

List the events for an issue.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `issue_id`                | string | yes      |
| `organization_slug`       | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/issue/events","input":{"issue_id":"123456"}}'
```

### Sentry: latest event

The latest event (stacktrace, context) for an issue.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `issue_id`                | string | yes      |
| `organization_slug`       | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/issue/latest_event","input":{"issue_id":"123456"}}'
```

### Sentry: releases

List an organization's releases.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `organization_slug`       | string  | no       |
| `cursor`                  | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/releases","input":{}}'
```

### Sentry: update issue

Update an issue (status: resolved | unresolved | ignored, assignedTo, priority...).

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `issue_id`                | string | yes      |
| `organization_slug`       | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/issue/update","input":{"issue_id":"123456","status":"resolved"}}'
```

### Sentry: raw request

Escape hatch: call any Sentry API path on your token (under /api/0). Returns next\_cursor when paginated.

> **Bring your own key** — connect Sentry first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"sentry","endpoint":"/request","input":{"method":"GET","path":"/organizations/"}}'
```

## Trakt

Track movies and TV: read and update your watchlist, watched history, and ratings, and search the catalog (connect your Trakt account). *(data)*

### Trakt: current user

Confirm whose Trakt account the connected token acts as.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/user","input":{}}'
```

### Trakt: watchlist

Your watchlist, optionally filtered by type (movies, shows, seasons, episodes).

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `page`                    | integer | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/watchlist","input":{"type":"movies","limit":25}}'
```

### Trakt: watched history

What you've watched, newest first. Filter by type and/or a date range (start\_at/end\_at).

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `page`                    | integer | no       |
| `limit`                   | integer | no       |
| `start_at`                | string  | no       |
| `end_at`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/history","input":{"type":"movies","limit":25}}'
```

### Trakt: ratings

Your ratings (1-10), optionally filtered by type.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `page`                    | integer | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/ratings","input":{"type":"movies"}}'
```

### Trakt: search

Search by text. type defaults to 'movie,show'; returns matches with trakt/imdb/tmdb ids to use in the write tools.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `type`                    | string  | no       |
| `page`                    | integer | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/search","input":{"query":"the matrix","type":"movie"}}'
```

### Trakt: lists

Your personal lists.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/lists","input":{}}'
```

### Trakt: trending

Most-watched movies or shows right now. type='movies' (default) or 'shows'.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `page`                    | integer | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/trending","input":{"type":"movies","limit":10}}'
```

### Trakt: recommendations

Personalized movie or show recommendations based on your history. type='movies' (default) or 'shows'.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/recommendations","input":{"type":"movies","limit":10}}'
```

### Trakt: add to watchlist

Add an item to your watchlist. Pass type + an id (imdb\_id/tmdb\_id/trakt\_id/slug), or raw movies/shows/episodes arrays.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `type`                    | string    | no       |
| `imdb_id`                 | string    | no       |
| `tmdb_id`                 | integer   | no       |
| `trakt_id`                | integer   | no       |
| `slug`                    | string    | no       |
| `movies`                  | object\[] | no       |
| `shows`                   | object\[] | no       |
| `seasons`                 | object\[] | no       |
| `episodes`                | object\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/watchlist/add","input":{"type":"movie","imdb_id":"tt0133093"}}'
```

### Trakt: remove from watchlist

Remove an item from your watchlist (same addressing as add).

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `type`                    | string    | no       |
| `imdb_id`                 | string    | no       |
| `tmdb_id`                 | integer   | no       |
| `trakt_id`                | integer   | no       |
| `slug`                    | string    | no       |
| `movies`                  | object\[] | no       |
| `shows`                   | object\[] | no       |
| `seasons`                 | object\[] | no       |
| `episodes`                | object\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/watchlist/remove","input":{"type":"movie","imdb_id":"tt0133093"}}'
```

### Trakt: mark watched

Add an item to your watched history. Optional watched\_at (ISO 8601, defaults to now). Same addressing as add-to-watchlist.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `type`                    | string    | no       |
| `imdb_id`                 | string    | no       |
| `tmdb_id`                 | integer   | no       |
| `trakt_id`                | integer   | no       |
| `slug`                    | string    | no       |
| `movies`                  | object\[] | no       |
| `shows`                   | object\[] | no       |
| `seasons`                 | object\[] | no       |
| `episodes`                | object\[] | no       |
| `watched_at`              | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/history/add","input":{"type":"movie","imdb_id":"tt0133093"}}'
```

### Trakt: remove from history

Remove an item from your watched history (same addressing as mark-watched).

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `type`                    | string    | no       |
| `imdb_id`                 | string    | no       |
| `tmdb_id`                 | integer   | no       |
| `trakt_id`                | integer   | no       |
| `slug`                    | string    | no       |
| `movies`                  | object\[] | no       |
| `shows`                   | object\[] | no       |
| `seasons`                 | object\[] | no       |
| `episodes`                | object\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/history/remove","input":{"type":"movie","imdb_id":"tt0133093"}}'
```

### Trakt: rate

Rate an item 1-10. Pass type + an id + rating, or raw arrays where each item carries its own rating.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `type`                    | string    | no       |
| `imdb_id`                 | string    | no       |
| `tmdb_id`                 | integer   | no       |
| `trakt_id`                | integer   | no       |
| `slug`                    | string    | no       |
| `movies`                  | object\[] | no       |
| `shows`                   | object\[] | no       |
| `seasons`                 | object\[] | no       |
| `episodes`                | object\[] | no       |
| `rating`                  | integer   | no       |
| `rated_at`                | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/rate","input":{"type":"movie","imdb_id":"tt0133093","rating":9}}'
```

### Trakt: remove rating

Remove your rating from an item (same addressing as rate).

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `type`                    | string    | no       |
| `imdb_id`                 | string    | no       |
| `tmdb_id`                 | integer   | no       |
| `trakt_id`                | integer   | no       |
| `slug`                    | string    | no       |
| `movies`                  | object\[] | no       |
| `shows`                   | object\[] | no       |
| `seasons`                 | object\[] | no       |
| `episodes`                | object\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/rate/remove","input":{"type":"movie","imdb_id":"tt0133093"}}'
```

### Trakt: raw request

Escape hatch: call any Trakt API endpoint on your token (host pinned to api.trakt.tv). Prefer the curated trakt tools when one fits.

> **Bring your own key** — connect Trakt first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"trakt","endpoint":"/request","input":{"method":"GET","path":"/sync/watchlist/movies"}}'
```

## TMDB

The Movie Database: search movies and TV, fetch rich details, images, trending, and recommendations, and resolve IMDb ids to TMDB records. *(movies)*

### TMDB: search

Search movies, TV, and people. type='movie'|'tv'|'person' narrows it (default searches all). Returns TMDB ids + poster\_path.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `type`                    | string  | no       |
| `year`                    | integer | no       |
| `page`                    | integer | no       |
| `include_adult`           | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/search","input":{"query":"the matrix","type":"movie"}}'
```

### TMDB: movie details

Full movie detail by TMDB id: overview, runtime, genres, plus credits, videos, images, external\_ids (imdb\_id), and watch providers.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `id`                      | integer | string   | yes |
| `append_to_response`      | string  | no       |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/movie","input":{"id":603}}'
```

### TMDB: TV details

Full TV-show detail by TMDB id: overview, seasons, genres, plus credits, videos, images, external\_ids, and watch providers.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `id`                      | integer | string   | yes |
| `append_to_response`      | string  | no       |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/tv","input":{"id":1396}}'
```

### TMDB: trending

Trending titles. media\_type='all'(default)|'movie'|'tv'|'person', time\_window='day'|'week'(default).

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `media_type`              | string  | no       |
| `time_window`             | string  | no       |
| `page`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/trending","input":{"media_type":"movie","time_window":"week"}}'
```

### TMDB: find by external id

Map an external id to TMDB records. Defaults to IMDb (external\_source='imdb\_id'), pass an imdb\_id like tt0133093. Bridges trakt to TMDB.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `external_id`             | string | no       |
| `imdb_id`                 | string | no       |
| `external_source`         | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/find","input":{"imdb_id":"tt0133093"}}'
```

### TMDB: discover

Browse movies or TV by filters (with\_genres, primary\_release\_year, sort\_by, vote\_average.gte, ...). type='movie'(default)|'tv'.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `with_genres`             | string  | no       |
| `sort_by`                 | string  | no       |
| `page`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/discover","input":{"type":"movie","with_genres":"878","sort_by":"popularity.desc"}}'
```

### TMDB: recommendations

Recommended (or similar=true) titles for a movie/TV id. type='movie'(default)|'tv'.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `id`                      | integer | string   | yes |
| `type`                    | string  | no       |     |
| `similar`                 | boolean | no       |     |
| `page`                    | integer | no       |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/recommendations","input":{"id":603,"type":"movie"}}'
```

### TMDB: raw request

Escape hatch: call any TMDB v3 endpoint (host pinned to api.themoviedb.org). Prefer the curated tmdb tools.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"tmdb","endpoint":"/request","input":{"path":"/3/movie/603/keywords"}}'
```

## Clerk

your clerk instance: users, organizations, sessions, invitations (bring your own secret key). *(dev)*

### Clerk: users

List users (filter by query, email\_address, user\_id, order\_by).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/users","input":{"limit":10}}'
```

### Clerk: user

Get one user by id.

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `user_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/user","input":{"user_id":"user_123"}}'
```

### Clerk: organizations

List organizations (filter by query, order\_by).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/organizations","input":{"limit":10}}'
```

### Clerk: organization

Get one organization by id or slug.

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `organization_id`         | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/organization","input":{"organization_id":"org_123"}}'
```

### Clerk: organization memberships

List the memberships of an organization.

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `organization_id`         | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/organization/memberships","input":{"organization_id":"org_123","limit":10}}'
```

### Clerk: sessions

List sessions (filter by user\_id, client\_id, status).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `user_id`                 | string  | no       |
| `client_id`               | string  | no       |
| `status`                  | string  | no       |
| `limit`                   | integer | no       |
| `offset`                  | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/sessions","input":{"limit":10}}'
```

### Clerk: session

Get one session by id.

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `session_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/session","input":{"session_id":"sess_123"}}'
```

### Clerk: create user

Create a user (email\_address\[], password, first\_name, username, ...).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/users/create","input":{"email_address":["jane@example.com"],"password":"s3cret-passphrase"}}'
```

### Clerk: update user

Update a user by id (first\_name, username, public\_metadata, ...).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `user_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/users/update","input":{"user_id":"user_123","first_name":"Jane"}}'
```

### Clerk: ban user

Ban a user by id (also revokes their sessions).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `user_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/users/ban","input":{"user_id":"user_123"}}'
```

### Clerk: delete user

Delete a user by id (permanent).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `user_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/users/delete","input":{"user_id":"user_123"}}'
```

### Clerk: revoke session

Revoke a session by id (signs the user out of it).

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `session_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/sessions/revoke","input":{"session_id":"sess_123"}}'
```

### Clerk: raw request

Escape hatch: call any Clerk Backend API endpoint on your key (JSON). path required, method default GET.

> **Bring your own key** — connect Clerk first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"clerk","endpoint":"/request","input":{"method":"GET","path":"/users","query":{"limit":1}}}'
```

## Buffer

schedule and manage social posts across your connected channels — list channels, create/edit/schedule posts, read analytics (bring your own buffer api key) *(social)*

### Buffer: account

The Buffer account your key authenticates as, and its organizations (with organizationId).

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/account","input":{}}'
```

### Buffer: channels

List connected channels (social profiles) for an organization; gives the channel\_id posts need.

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `organization_id`         | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/channels","input":{}}'
```

### Buffer: posts

List posts for an organization (Relay-paginated); filter by channel\_ids or status.

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `organization_id`         | string    | no       |
| `channel_ids`             | string\[] | no       |
| `status`                  | string    | no       |
| `first`                   | integer   | no       |
| `after`                   | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/posts","input":{"status":"sent"}}'
```

### Buffer: post metrics

Aggregate post analytics over a time window (ISO start/end), optionally per channel.

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `start`                   | string    | yes      |
| `end`                     | string    | yes      |
| `organization_id`         | string    | no       |
| `channel_ids`             | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/post-metrics","input":{"start":"2026-06-01T00:00:00.000Z","end":"2026-07-01T00:00:00.000Z"}}'
```

### Buffer: create post

Schedule a post to a channel (needs a channel\_id; list channels first). mode: addToQueue/shareNext/shareNow/customScheduled.

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `channel_id`              | string    | no       |
| `text`                    | string    | no       |
| `scheduling_type`         | string    | no       |
| `mode`                    | string    | no       |
| `due_at`                  | string    | no       |
| `tag_ids`                 | string\[] | no       |
| `assets`                  | object\[] | no       |
| `input`                   | object    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/posts/create","input":{"channel_id":"<channel-id>","text":"Hello from fetchbean"}}'
```

### Buffer: update post

Edit an existing post by its id (get it from buffer.posts).

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `id`                      | string    | yes      |
| `text`                    | string    | no       |
| `scheduling_type`         | string    | no       |
| `mode`                    | string    | no       |
| `due_at`                  | string    | no       |
| `tag_ids`                 | string\[] | no       |
| `assets`                  | object\[] | no       |
| `input`                   | object    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/posts/update","input":{"id":"<post-id>","text":"Updated copy"}}'
```

### Buffer: delete post

Delete a post by its id.

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/posts/delete","input":{"id":"<post-id>"}}'
```

### Buffer: raw GraphQL

Escape hatch: run any Buffer GraphQL query or mutation on your own key. Prefer the curated buffer tools when one fits.

> **Bring your own key** — connect Buffer first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `query`                   | string | yes      |
| `variables`               | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"buffer","endpoint":"/request","input":{"query":"query { account { id email } }"}}'
```

## Bluesky

read and post to your bluesky account: home timeline, profile, notifications, post search; create/delete posts, like, repost, follow (bring your own app password) *(social)*

### Bluesky: profile

A profile with follower/following/post counts: the connected account by default, or any actor (handle or did).

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `actor`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/actor/get-profile","input":{}}'
```

### Bluesky: timeline

The connected account's home timeline (the following feed), paginated with a cursor.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| `algorithm`               | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/feed/timeline","input":{"limit":25}}'
```

### Bluesky: author feed

Posts authored by an actor (the connected account by default). filter e.g. posts\_no\_replies, posts\_with\_media.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `actor`                   | string  | no       |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| `filter`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/feed/author","input":{}}'
```

### Bluesky: notifications

The connected account's notifications (likes, reposts, replies, follows, mentions, quotes).

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `limit`                   | integer   | no       |
| `cursor`                  | string    | no       |
| `reasons`                 | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/notifications","input":{"limit":25}}'
```

### Bluesky: search posts

Full-text search across public posts. sort: top | latest. Scope with author (handle or did).

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `q`                       | string  | yes      |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| `sort`                    | string  | no       |
| `author`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/feed/search-posts","input":{"q":"atproto","sort":"latest"}}'
```

### Bluesky: post

Post to the connected account. Reply by passing reply\_to \{uri,cid}. Bare URLs aren't auto-linked, pass facets to make them clickable.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `text`                    | string    | no       |
| `langs`                   | string\[] | no       |
| `reply_to`                | object    | no       |
| `reply_root`              | object    | no       |
| `facets`                  | object\[] | no       |
| `embed`                   | object    | no       |
| `created_at`              | string    | no       |
| `record`                  | object    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/post/create","input":{"text":"Hello from fetchbean 🫘"}}'
```

### Bluesky: delete post

Delete one of your own posts by its at:// uri (from author\_feed) or its rkey.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `uri`                     | string | no       |
| `rkey`                    | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/post/delete","input":{"uri":"at://did:plc:.../app.bsky.feed.post/3k..."}}'
```

### Bluesky: like

Like a post by its uri + cid (both come from a timeline/search result).

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `uri`                     | string | yes      |
| `cid`                     | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/like","input":{"uri":"at://did:plc:.../app.bsky.feed.post/3k...","cid":"bafy..."}}'
```

### Bluesky: repost

Repost a post by its uri + cid.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `uri`                     | string | yes      |
| `cid`                     | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/repost","input":{"uri":"at://did:plc:.../app.bsky.feed.post/3k...","cid":"bafy..."}}'
```

### Bluesky: follow

Follow an actor by handle or did.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `actor`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/follow","input":{"actor":"bsky.app"}}'
```

### Bluesky: raw XRPC

Escape hatch: call any XRPC method on the connected account's PDS. Prefer the curated bluesky tools when one fits.

> **Bring your own key** — connect Bluesky first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `method`                  | string | yes      |
| `http`                    | string | no       |
| `params`                  | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bluesky","endpoint":"/request","input":{"method":"app.bsky.actor.getPreferences"}}'
```

## Render

Your Render infrastructure: services, deploys, logs, metrics, workspaces, and deploy controls (bring your own API key). *(dev)*

### Render: current user

Get the Render user associated with the connected API key.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/user","input":{}}'
```

### Render: workspaces

List workspaces the connected API key can access.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `cursor`                  | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/workspaces","input":{"limit":20}}'
```

### Render: workspace

Retrieve one workspace by id.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `owner_id`                | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/workspace","input":{"owner_id":"tea-..."}}'
```

### Render: services

List services, databases, workers, cron jobs, and static sites. Filter by ownerId, name, type, region, etc.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `cursor`                  | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/services","input":{"limit":20}}'
```

### Render: service

Retrieve one Render service by id.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/service","input":{"service_id":"srv-..."}}'
```

### Render: deploys

List deploys for a service, with optional status and date filters.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/deploys","input":{"service_id":"srv-...","limit":10}}'
```

### Render: deploy

Retrieve one deploy for a service.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| `deploy_id`               | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/deploy","input":{"service_id":"srv-...","deploy_id":"dep-..."}}'
```

### Render: events

List recent events for a service.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/events","input":{"service_id":"srv-...","limit":20}}'
```

### Render: custom domains

List custom domains for a web service or static site.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/custom-domains","input":{"service_id":"srv-..."}}'
```

### Render: logs

Query service, Postgres, and key value logs using Render's log filters.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `cursor`                  | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/logs","input":{"limit":100}}'
```

### Render: metrics

Fetch one Render metric series such as cpu, memory, http-requests, or bandwidth.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |     |
| ------------------------- | ------ | -------- | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | --- |
| `metric`                  | string | string   | string | string | string | string | string | string | string | string | string | string | string | string | string | string | string | yes |
| *(other provider fields)* | any    | no       |        |        |        |        |        |        |        |        |        |        |        |        |        |        |        |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/metrics","input":{"metric":"memory","resourceId":"srv-..."}}'
```

### Render: trigger deploy

Trigger a deploy for a service. Supports clearCache, commitId, imageUrl, and deployMode.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `service_id`              | string | yes      |    |
| `clearCache`              | string | string   | no |
| `commitId`                | string | no       |    |
| `imageUrl`                | string | no       |    |
| `deployMode`              | string | no       |    |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/deploys/trigger","input":{"service_id":"srv-...","clearCache":"do_not_clear"}}'
```

### Render: cancel deploy

Cancel an in-progress deploy for a service.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| `deploy_id`               | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/deploys/cancel","input":{"service_id":"srv-...","deploy_id":"dep-..."}}'
```

### Render: rollback

Trigger a rollback to a previous deploy. Auto-deploy can still redeploy newer changes later.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| `deploy_id`               | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/deploys/rollback","input":{"service_id":"srv-...","deploy_id":"dep-..."}}'
```

### Render: restart service

Restart a Render service.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/service/restart","input":{"service_id":"srv-..."}}'
```

### Render: purge cache

Purge a web service cache if caching is enabled.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `service_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/service/purge-cache","input":{"service_id":"srv-..."}}'
```

### Render: raw request

Escape hatch: call any Render REST API path on your API key, including secret-bearing and destructive endpoints.

> **Bring your own key** — connect Render first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"render","endpoint":"/request","input":{"method":"GET","path":"/services","query":{"limit":1}}}'
```

## Cal.com

Your cal.com scheduling: event types, availability, and bookings (create, list, cancel). *(productivity)*

### Account

The connected cal.com account (id, email, username, timezone).

> **Bring your own key** — connect Cal.com first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cal","endpoint":"/me","input":{}}'
```

### Event types

Your cal.com event types (id, title, slug, length). The eventTypeId here is what you book against.

> **Bring your own key** — connect Cal.com first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cal","endpoint":"/event-types","input":{}}'
```

### Bookings

List your bookings (filter by status or attendeeEmail; paginate with take/skip).

> **Bring your own key** — connect Cal.com first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `status`                  | string  | no       |
| `take`                    | integer | no       |
| `skip`                    | integer | no       |
| `attendeeEmail`           | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cal","endpoint":"/bookings","input":{"take":10}}'
```

### Available slots

Open time slots for an event type between start and end (dates). Book one with create\_booking.

> **Bring your own key** — connect Cal.com first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `eventTypeId`             | integer | no       |
| `username`                | string  | no       |
| `eventTypeSlug`           | string  | no       |
| `start`                   | string  | yes      |
| `end`                     | string  | yes      |
| `timeZone`                | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cal","endpoint":"/slots","input":{"eventTypeId":657686,"start":"2026-07-10","end":"2026-07-12"}}'
```

### Create booking

Book a meeting: pass start (ISO 8601 UTC), eventTypeId (or username + eventTypeSlug), and attendee \{name, email, timeZone}.

> **Bring your own key** — connect Cal.com first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `start`                   | string  | yes      |
| `eventTypeId`             | integer | no       |
| `username`                | string  | no       |
| `eventTypeSlug`           | string  | no       |
| `attendee`                | object  | yes      |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cal","endpoint":"/bookings/create","input":{"start":"2026-07-10T14:00:00.000Z","eventTypeId":657686,"attendee":{"name":"Jane Doe","email":"jane@example.com","timeZone":"America/New_York"}}}'
```

### Cancel booking

Cancel a booking by its uid (from bookings), with an optional cancellationReason.

> **Bring your own key** — connect Cal.com first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `bookingUid`              | string | no       |
| `uid`                     | string | no       |
| `cancellationReason`      | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"cal","endpoint":"/bookings/{uid}/cancel","input":{"bookingUid":"guuuKjY2o51bTgox1NACNQ","cancellationReason":"no longer needed"}}'
```

## Canny

Your Canny feedback boards: read posts and votes, file and triage requests, and publish changelog entries. *(productivity)*

### Boards

Your Canny boards (id, name, post count). The boardID here is what you filter and post against.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/boards","input":{}}'
```

### Posts

Feedback posts: search, filter by board/status/tag, sort by score, trending, newest or statusChanged. Statuses: open, under review, planned, in progress, complete, closed.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `boardID`                 | string    | no       |
| `search`                  | string    | no       |
| `status`                  | string    | no       |
| `sort`                    | string    | no       |
| `limit`                   | integer   | no       |
| `skip`                    | integer   | no       |
| `tagIDs`                  | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts","input":{"status":"open","sort":"score","limit":20}}'
```

### Post

One post in full by its id: details, status, score, author, tags.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/retrieve","input":{"id":"<post-id>"}}'
```

### Comments

Comments, filtered by post, board, author or company. Paginate with limit + skip.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `postID`                  | string  | no       |
| `boardID`                 | string  | no       |
| `authorID`                | string  | no       |
| `companyID`               | string  | no       |
| `limit`                   | integer | no       |
| `skip`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/comments","input":{"postID":"<post-id>"}}'
```

### Votes

Who voted on a post — the account behind demand, useful for follow-ups when it ships.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `postID`                  | string  | no       |
| `boardID`                 | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/votes","input":{"postID":"<post-id>"}}'
```

### Users

Users in your Canny workspace. Use this to find the id to post or change status as. Paginate with the returned cursor (this one read is cursor-based, not skip).

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `cursor`                  | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/users","input":{}}'
```

### User

One user by their Canny id (from canny.users).

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `id`                      | string | no       |
| `email`                   | string | no       |
| `userID`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/users/retrieve","input":{"id":"<user-id>"}}'
```

### Tags

Tags on a board — pass their ids to posts as tagIDs to filter.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `boardID`                 | string  | yes      |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/tags","input":{"boardID":"<board-id>"}}'
```

### Categories

Categories on a board. The categoryID here is what create\_post and change\_category take.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `boardID`                 | string  | yes      |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/categories","input":{"boardID":"<board-id>"}}'
```

### Status changes

Roadmap activity: every status move, newest first, with who changed it and to what.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `limit`                   | integer | no       |
| `skip`                    | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/status_changes","input":{"limit":20}}'
```

### Changelog entries

Your Canny changelog entries (new, improved, fixed), published or draft.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `type`                    | string  | no       |
| `sort`                    | string  | no       |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/entries","input":{}}'
```

### Create post

File a feature request or bug on a board. authorID is the user it's filed as (from canny.users), or the admin user id set on the connection.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `boardID`                 | string | yes      |
| `title`                   | string | yes      |
| `details`                 | string | yes      |
| `authorID`                | string | no       |
| `categoryID`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/create","input":{"boardID":"<board-id>","title":"Dark mode","details":"The dashboard is painful at night."}}'
```

### Edit a post

Rewrite a post's title or details. Only the fields you pass change.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `postID`                  | string | yes      |
| `title`                   | string | no       |
| `details`                 | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/update","input":{"postID":"<post-id>","title":"Dark mode for the dashboard"}}'
```

### Tag a post

Add a tag to a post (tagID from canny.tags). Filter by these with tagIDs on canny.posts.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `postID`                  | string | yes      |
| `tagID`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/add_tag","input":{"postID":"<post-id>","tagID":"<tag-id>"}}'
```

### Untag a post

Take a tag off a post. The tag itself and the post both survive.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `postID`                  | string | yes      |
| `tagID`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/remove_tag","input":{"postID":"<post-id>","tagID":"<tag-id>"}}'
```

### Move a post to another board

Reassign a post to a different board (e.g. filed as a bug, actually a feature request).

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `postID`                  | string | yes      |
| `boardID`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/change_board","input":{"postID":"<post-id>","boardID":"<board-id>"}}'
```

### Recategorize a post

Move a post into a different category on its board (categoryID from canny.categories).

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `postID`                  | string | yes      |
| `categoryID`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/change_category","input":{"postID":"<post-id>","categoryID":"<category-id>"}}'
```

### Create or update a user

Upsert a Canny user by email or your own userID, then use the id it returns as the author of a post or comment.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `email`                   | string | no       |
| `name`                    | string | no       |
| `userID`                  | string | no       |
| `avatarURL`               | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/users/create_or_update","input":{"email":"jane@example.com","name":"Jane Doe"}}'
```

### Change post status

Move a post through the roadmap (open, under review, planned, in progress, complete, closed). Voters are only emailed when shouldNotifyVoters is true.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `postID`                  | string  | yes      |
| `status`                  | string  | yes      |
| `changerID`               | string  | no       |
| `shouldNotifyVoters`      | boolean | no       |
| `commentValue`            | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/posts/change_status","input":{"postID":"<post-id>","status":"planned"}}'
```

### Comment on a post

Reply on a post. Set internal true to keep it visible to your team only.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `postID`                  | string  | yes      |
| `value`                   | string  | yes      |
| `authorID`                | string  | no       |
| `internal`                | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/comments/create","input":{"postID":"<post-id>","value":"Shipping this next week."}}'
```

### Write a changelog entry

Announce what shipped (type: new, improved, fixed). Saves as a draft unless published is true; notify emails subscribers. Link the posts it closes with postIDs.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `title`                   | string    | yes      |
| `details`                 | string    | yes      |
| `type`                    | string    | no       |
| `published`               | boolean   | no       |
| `notify`                  | boolean   | no       |
| `postIDs`                 | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/entries/create","input":{"title":"Dark mode","details":"The dashboard now follows your system theme.","type":"new"}}'
```

### Raw Canny call

Escape hatch: POST any Canny endpoint on your own key (path relative, e.g. companies/list). Prefer the curated canny tools when one fits.

> **Bring your own key** — connect Canny first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `params`                  | object | no       |
| `version`                 | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"canny","endpoint":"/request","input":{"path":"categories/list","params":{"boardID":"<board-id>"}}}'
```

## Chatwoot

Your Chatwoot support inbox: read conversations and contacts, reply, resolve, assign and label, and pull response-time reports. Cloud or self-hosted. *(productivity)*

### Conversations

Your support inbox: conversations filtered by status (open, resolved, pending, snoozed), inbox, team, labels or assignee\_type (me, unassigned, all). Paginate with page.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |    |
| ------------------------- | --------- | -------- | -- |
| `status`                  | string    | no       |    |
| `assignee_type`           | string    | no       |    |
| `inbox_id`                | string    | integer  | no |
| `team_id`                 | string    | integer  | no |
| `labels`                  | string\[] | no       |    |
| `q`                       | string    | no       |    |
| `page`                    | integer   | no       |    |
| `account_id`              | string    | integer  | no |
| *(other provider fields)* | any       | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations","input":{"status":"open"}}'
```

### Conversation

One conversation with its contact, assignee, labels and status.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}","input":{"conversation_id":1}}'
```

### Filter conversations

Advanced search: an array of \{attribute\_key, filter\_operator, values, query\_operator} clauses, for anything the plain conversations filters can't express.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |    |
| ------------------------- | --------- | -------- | -- |
| `payload`                 | object\[] | yes      |    |
| `page`                    | integer   | no       |    |
| `account_id`              | string    | integer  | no |
| *(other provider fields)* | any       | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/filter","input":{"payload":[{"attribute_key":"status","filter_operator":"equal_to","values":["open"]}]}}'
```

### Inbox counts

How many conversations are mine, unassigned and all — the queue depth, without pulling the list.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |    |
| ------------------------- | --------- | -------- | -- |
| `status`                  | string    | no       |    |
| `inbox_id`                | string    | integer  | no |
| `team_id`                 | string    | integer  | no |
| `labels`                  | string\[] | no       |    |
| `account_id`              | string    | integer  | no |
| *(other provider fields)* | any       | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/meta","input":{}}'
```

### Messages

The message thread of a conversation. Page back with before, forward with after (a message id).

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `conversation_id`         | string  | integer  | yes |
| `after`                   | integer | no       |     |
| `before`                  | integer | no       |     |
| `account_id`              | string  | integer  | no  |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}/messages","input":{"conversation_id":1}}'
```

### Contacts

People who have talked to you. Sort by name, email, phone\_number or last\_activity\_at.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `sort`                    | string  | no       |    |
| `page`                    | integer | no       |    |
| `account_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts","input":{}}'
```

### Search contacts

Find a contact by name, email, phone number or your own identifier.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `q`                       | string  | yes      |    |
| `sort`                    | string  | no       |    |
| `page`                    | integer | no       |    |
| `account_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts/search","input":{"q":"jane@example.com"}}'
```

### Contact

One contact with their attributes and the inboxes they've reached you on.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts/{id}","input":{"id":1}}'
```

### A contact's conversations

Everything one person has ever written in — their full support history.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts/{id}/conversations","input":{"id":1}}'
```

### Inboxes

Your channels (website, email, WhatsApp…) and their ids, for filtering and replies.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/inboxes","input":{}}'
```

### Agents

Teammates on the account — their ids are what assign takes.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/agents","input":{}}'
```

### Teams

Teams you can route a conversation to.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/teams","input":{}}'
```

### Labels

Labels defined on the account — pass their titles when labelling a conversation.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/labels","input":{}}'
```

### Canned responses

Your saved replies — reuse the team's approved wording instead of improvising.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/canned_responses","input":{}}'
```

### Custom attribute definitions

The custom fields on contacts (attribute\_model: contact\_attribute) or conversations (conversation\_attribute).

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `attribute_model`         | string | no       |    |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/custom_attribute_definitions","input":{"attribute_model":"conversation_attribute"}}'
```

### Audit logs

Who changed what on the account (enterprise installs).

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `page`                    | integer | no       |    |
| `account_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/audit_logs","input":{}}'
```

### Report

A metric over time (conversations\_count, incoming\_messages\_count, avg\_first\_response\_time, resolutions\_count…). since/until are unix timestamps as strings. Scope with type (account, agent, inbox, label, team) + id.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `metric`                  | string  | yes      |    |
| `since`                   | string  | yes      |    |
| `until`                   | string  | yes      |    |
| `type`                    | string  | no       |    |
| `id`                      | string  | integer  | no |
| `group_by`                | string  | no       |    |
| `business_hours`          | boolean | no       |    |
| `account_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/reports","input":{"metric":"conversations_count","since":"1700000000","until":"1700604800"}}'
```

### Report summary

Volume, first-response time, resolution time and resolution count for a window, in one call.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `since`                   | string  | yes      |    |
| `until`                   | string  | yes      |    |
| `type`                    | string  | no       |    |
| `id`                      | string  | integer  | no |
| `business_hours`          | boolean | no       |    |
| `account_id`              | string  | integer  | no |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/reports/summary","input":{"since":"1700000000","until":"1700604800"}}'
```

### Reply to a conversation

Send a message to the customer. Set private true to leave an internal note only your team sees.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `conversation_id`         | string  | integer  | yes |
| `content`                 | string  | yes      |     |
| `private`                 | boolean | no       |     |
| `message_type`            | string  | no       |     |
| `content_type`            | string  | no       |     |
| `account_id`              | string  | integer  | no  |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}/messages/create","input":{"conversation_id":1,"content":"Fixed and shipping today."}}'
```

### Change conversation status

Move a conversation through the queue (open, resolved, pending, snoozed). Snoozing takes snoozed\_until, a unix timestamp.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `conversation_id`         | string  | integer  | yes |
| `status`                  | string  | yes      |     |
| `snoozed_until`           | integer | no       |     |
| `account_id`              | string  | integer  | no  |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}/toggle_status","input":{"conversation_id":1,"status":"resolved"}}'
```

### Set conversation priority

urgent, high, medium, low, or none to clear it.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `priority`                | string | yes      |     |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}/toggle_priority","input":{"conversation_id":1,"priority":"urgent"}}'
```

### Assign a conversation

Hand a conversation to an agent (assignee\_id, from chatwoot.agents) or a team (team\_id).

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `assignee_id`             | string | integer  | no  |
| `team_id`                 | string | integer  | no  |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}/assignments","input":{"conversation_id":1,"assignee_id":2}}'
```

### Label a conversation

Set the labels on a conversation. This replaces the existing set, so send the full list.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |     |
| ------------------------- | --------- | -------- | --- |
| `conversation_id`         | string    | integer  | yes |
| `labels`                  | string\[] | yes      |     |
| `account_id`              | string    | integer  | no  |
| *(other provider fields)* | any       | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/{id}/labels","input":{"conversation_id":1,"labels":["billing","urgent"]}}'
```

### Start a conversation

Open a new conversation in an inbox on a contact's behalf. source\_id is the contact\_inbox source id (see chatwoot.contact).

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `source_id`               | string | yes      |     |
| `inbox_id`                | string | integer  | yes |
| `contact_id`              | string | integer  | no  |
| `status`                  | string | no       |     |
| `assignee_id`             | string | integer  | no  |
| `team_id`                 | string | integer  | no  |
| `message`                 | object | no       |     |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/conversations/create","input":{"source_id":"<source-id>","inbox_id":1,"message":{"content":"Following up on your email."}}}'
```

### Create a contact

Add someone to the account before starting a conversation with them.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `inbox_id`                | string | integer  | no |
| `name`                    | string | no       |    |
| `email`                   | string | no       |    |
| `phone_number`            | string | no       |    |
| `identifier`              | string | no       |    |
| `custom_attributes`       | object | no       |    |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts/create","input":{"name":"Jane Doe","email":"jane@example.com"}}'
```

### Update a contact

Correct or enrich a contact. Only the fields you pass change.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| `name`                    | string | no       |     |
| `email`                   | string | no       |     |
| `phone_number`            | string | no       |     |
| `identifier`              | string | no       |     |
| `custom_attributes`       | object | no       |     |
| `account_id`              | string | integer  | no  |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts/{id}/update","input":{"id":1,"custom_attributes":{"plan":"pro"}}}'
```

### Label a contact

Set the labels on a contact. Replaces the existing set, so send the full list.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |     |
| ------------------------- | --------- | -------- | --- |
| `id`                      | string    | integer  | yes |
| `labels`                  | string\[] | yes      |     |
| `account_id`              | string    | integer  | no  |
| *(other provider fields)* | any       | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/contacts/{id}/labels","input":{"id":1,"labels":["vip"]}}'
```

### Raw Chatwoot call

Escape hatch: any account-scoped Chatwoot endpoint on your own token (path relative to the account, e.g. conversations/1/custom\_attributes). Prefer the curated chatwoot tools when one fits.

> **Bring your own key** — connect Chatwoot first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `path`                    | string | yes      |    |
| `method`                  | string | no       |    |
| `query`                   | object | no       |    |
| `body`                    | object | no       |    |
| `account_id`              | string | integer  | no |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"chatwoot","endpoint":"/request","input":{"method":"GET","path":"portals"}}'
```

## Intercom

Your Intercom workspace: search conversations and contacts, reply, close, snooze and assign, tag and note, file tickets, and search the help center. *(productivity)*

### Conversations

Your Intercom inbox, newest first. Paginate with per\_page + the starting\_after cursor.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `per_page`                | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations","input":{"per_page":25}}'
```

### Conversation

One conversation with its full part-by-part thread. Bodies come back as plaintext unless you ask otherwise.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `display_as`              | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}","input":{"conversation_id":"1234"}}'
```

### Search conversations

Find conversations by state, assignee, tag, channel or time. query is Intercom's search shape: \{field, operator, value} or \{operator: 'AND', value: \[...]}. Paginate with per\_page + the starting\_after cursor.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | object  | yes      |
| `per_page`                | integer | no       |
| `starting_after`          | string  | no       |
| `sort`                    | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/search","input":{"query":{"field":"open","operator":"=","value":"true"}}}'
```

### Contacts

Users and leads in the workspace. Paginate with per\_page + starting\_after.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `per_page`                | integer | no       |
| `starting_after`          | string  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts","input":{}}'
```

### Contact

One contact with their attributes, tags, companies and segments.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/{id}","input":{"id":"<contact-id>"}}'
```

### Search contacts

Find people by email, external\_id, custom attribute, tag or last-seen time. query is Intercom's search shape: \{field, operator, value} or \{operator: 'AND', value: \[...]}. Paginate with per\_page + the starting\_after cursor.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | object  | yes      |
| `per_page`                | integer | no       |
| `starting_after`          | string  | no       |
| `sort`                    | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/search","input":{"query":{"field":"email","operator":"=","value":"jane@example.com"}}}'
```

### Contact notes

Internal notes your team has left on a person.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `id`                      | string  | integer  | yes |
| `per_page`                | integer | no       |     |
| `page`                    | integer | no       |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/{id}/notes","input":{"id":"<contact-id>"}}'
```

### Contact segments

Which segments a person falls into.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/{id}/segments","input":{"id":"<contact-id>"}}'
```

### Companies

Accounts in the workspace, filtered by name, your own company\_id, tag or segment.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `name`                    | string  | no       |
| `company_id`              | string  | no       |
| `tag_id`                  | string  | no       |
| `segment_id`              | string  | no       |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/companies","input":{"name":"Acme"}}'
```

### Company

One company with its plan, size, custom attributes and user count.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/companies/{id}","input":{"id":"<company-id>"}}'
```

### Company contacts

Everyone attached to a company — who to talk to at an account.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/companies/{id}/contacts","input":{"id":"<company-id>"}}'
```

### Teammates

Admins on the workspace — their ids are what assign and reply act as.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/admins","input":{}}'
```

### Teams

Teams a conversation can be routed to.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/teams","input":{}}'
```

### Tags

Tags defined in the workspace — pass a tag\_id when tagging.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/tags","input":{}}'
```

### Segments

Saved audience segments and their counts.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/segments","input":{}}'
```

### Data attributes

The fields available on contacts, companies or conversations (model: contact, company, conversation) — the vocabulary search queries use.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `model`                   | string  | no       |
| `include_archived`        | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/data_attributes","input":{"model":"contact"}}'
```

### Help center articles

Your published and draft help center articles.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `page`                    | integer | no       |
| `per_page`                | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/articles","input":{}}'
```

### Article

One help center article with its body and state.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/articles/{id}","input":{"id":"<article-id>"}}'
```

### Search articles

Full-text search over the help center — find the article to send a customer before writing a reply.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |    |
| ------------------------- | ------- | -------- | -- |
| `phrase`                  | string  | yes      |    |
| `state`                   | string  | no       |    |
| `help_center_id`          | string  | integer  | no |
| `highlight`               | boolean | no       |    |
| *(other provider fields)* | any     | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/articles/search","input":{"phrase":"refund policy"}}'
```

### Search tickets

Find tickets by state, type, assignee or attribute. query is Intercom's search shape: \{field, operator, value} or \{operator: 'AND', value: \[...]}. Paginate with per\_page + the starting\_after cursor.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | object  | yes      |
| `per_page`                | integer | no       |
| `starting_after`          | string  | no       |
| `sort`                    | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/tickets/search","input":{"query":{"field":"open","operator":"=","value":"true"}}}'
```

### Ticket

One ticket with its parts, state and attributes.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/tickets/{id}","input":{"id":"<ticket-id>"}}'
```

### Ticket types

The ticket types configured in the workspace and their attributes — needed to file one.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/ticket_types","input":{}}'
```

### Contact events

What a person actually did in your product, newest first. Identify them by user\_id, intercom\_user\_id or email.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `user_id`                 | string  | no       |
| `intercom_user_id`        | string  | no       |
| `email`                   | string  | no       |
| `summary`                 | boolean | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/events","input":{"email":"jane@example.com"}}'
```

### Whoami

The admin and workspace this connection acts as.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/me","input":{}}'
```

### Reply to a conversation

Send a customer-visible reply as your teammate. Use intercom.note for something only the team sees.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `body`                    | string | yes      |     |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/reply","input":{"conversation_id":"1234","body":"Fixed and shipping today."}}'
```

### Add an internal note

Leave a note on a conversation. The customer never sees it. Accepts some HTML.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `body`                    | string | yes      |     |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/reply/note","input":{"conversation_id":"1234","body":"Refunded via Stripe, waiting on confirmation."}}'
```

### Close a conversation

Mark a conversation closed, optionally leaving a parting message.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `body`                    | string | no       |     |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/parts/close","input":{"conversation_id":"1234"}}'
```

### Reopen a conversation

Put a closed or snoozed conversation back in the open queue.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/parts/open","input":{"conversation_id":"1234"}}'
```

### Snooze a conversation

Hide a conversation until snoozed\_until (a unix timestamp), then reopen it automatically.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |     |
| ------------------------- | ------- | -------- | --- |
| `conversation_id`         | string  | integer  | yes |
| `snoozed_until`           | integer | yes      |     |
| `admin_id`                | string  | no       |     |
| *(other provider fields)* | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/parts/snooze","input":{"conversation_id":"1234","snoozed_until":1800000000}}'
```

### Assign a conversation

Route a conversation to a teammate (assignee\_id from intercom.admins) or a team (set type to team). assignee\_id 0 unassigns.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `assignee_id`             | string | integer  | yes |
| `type`                    | string | no       |     |
| `body`                    | string | no       |     |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/parts/assign","input":{"conversation_id":"1234","assignee_id":"4324241"}}'
```

### Tag a conversation

Attach an existing tag (tag\_id from intercom.tags) to a conversation.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `conversation_id`         | string | integer  | yes |
| `tag_id`                  | string | integer  | yes |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/conversations/{id}/tags","input":{"conversation_id":"1234","tag_id":"7522907"}}'
```

### Tag a contact

Attach an existing tag to a person.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| `tag_id`                  | string | integer  | yes |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/{id}/tags","input":{"id":"<contact-id>","tag_id":"7522907"}}'
```

### Note on a contact

Record context about a person that follows them across conversations.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |     |
| ------------------------- | ------ | -------- | --- |
| `id`                      | string | integer  | yes |
| `body`                    | string | yes      |     |
| `admin_id`                | string | no       |     |
| *(other provider fields)* | any    | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/{id}/notes/create","input":{"id":"<contact-id>","body":"Migrating from a competitor, watch churn risk."}}'
```

### Create a contact

Add a user or lead (role: user or lead). Identify them by email or your own external\_id.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `role`                    | string  | no       |
| `email`                   | string  | no       |
| `external_id`             | string  | no       |
| `phone`                   | string  | no       |
| `name`                    | string  | no       |
| `owner_id`                | integer | no       |
| `custom_attributes`       | object  | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/create","input":{"role":"user","email":"jane@example.com","name":"Jane Doe"}}'
```

### Update a contact

Correct or enrich a person. Only the fields you pass change.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                  | Type    | Required |     |
| -------------------------- | ------- | -------- | --- |
| `id`                       | string  | integer  | yes |
| `email`                    | string  | no       |     |
| `name`                     | string  | no       |     |
| `phone`                    | string  | no       |     |
| `external_id`              | string  | no       |     |
| `owner_id`                 | integer | no       |     |
| `unsubscribed_from_emails` | boolean | no       |     |
| `custom_attributes`        | object  | no       |     |
| *(other provider fields)*  | any     | no       |     |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/contacts/{id}/update","input":{"id":"<contact-id>","custom_attributes":{"plan":"pro"}}}'
```

### File a ticket

Open a ticket for a customer. ticket\_type\_id comes from intercom.ticket\_types; contacts is \[\{id}] or \[\{email}].

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `ticket_type_id`          | string    | yes      |
| `contacts`                | object\[] | yes      |
| `company_id`              | string    | no       |
| `ticket_attributes`       | object    | no       |
| `skip_notifications`      | boolean   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/tickets","input":{"ticket_type_id":"<ticket-type-id>","contacts":[{"email":"jane@example.com"}],"ticket_attributes":{"_default_title_":"Cannot log in"}}}'
```

### Raw Intercom call

Escape hatch: any Intercom endpoint on your own token, pinned to API version 2.16 (path absolute, e.g. /news/news\_items). Prefer the curated intercom tools when one fits.

> **Bring your own key** — connect Intercom first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"intercom","endpoint":"/request","input":{"method":"GET","path":"/help_center/help_centers"}}'
```

## Replicate

Run any model on Replicate with your own token: generate images, video, audio and text, search the model catalog, and manage predictions and fine-tunes. *(productivity)*

### Search models

Find a model on Replicate by name or description — the way in when you don't know the exact owner/name.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `query`                   | string  | yes      |
| `limit`                   | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/search","input":{"query":"text to image"}}'
```

### Browse models

Public models on Replicate, newest or most-run first.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `sort_by`                 | string | no       |
| `sort_direction`          | string | no       |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models","input":{}}'
```

### Model

One model, including its latest version and that version's openapi\_schema — the authoritative list of input fields to pass to replicate.run.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `model`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models/{model}","input":{"model":"black-forest-labs/flux-schnell"}}'
```

### Model versions

Every published version of a model; the id is what replicate.run takes as version.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `model`                   | string | yes      |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models/{model}/versions","input":{"model":"stability-ai/sdxl"}}'
```

### Model version

One version with its openapi\_schema — read this to learn exactly which inputs a model accepts.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `model`                   | string | yes      |
| `version_id`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models/{model}/versions/{id}","input":{"model":"stability-ai/sdxl","version_id":"<version-id>"}}'
```

### Model readme

The model's documentation, in markdown — what it does and how to prompt it.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `model`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models/{model}/readme","input":{"model":"black-forest-labs/flux-schnell"}}'
```

### Model examples

Example predictions for a model — real inputs that are known to work.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `model`                   | string | yes      |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models/{model}/examples","input":{"model":"black-forest-labs/flux-schnell"}}'
```

### Your predictions

Predictions on your account, newest first — what you've run and what it cost in time.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `created_after`           | string | no       |
| `created_before`          | string | no       |
| `source`                  | string | no       |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/predictions","input":{}}'
```

### Prediction

One prediction: status, output, logs and metrics. This is what you poll when replicate.run came back still processing.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `prediction_id`           | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/predictions/{id}","input":{"prediction_id":"<prediction-id>"}}'
```

### Trainings

Fine-tunes on your account and their status.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/trainings","input":{}}'
```

### Training

One fine-tune: status, logs, and the model version it produced.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `training_id`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/trainings/{id}","input":{"training_id":"<training-id>"}}'
```

### Deployments

Your deployments — models running on dedicated hardware you control.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/deployments","input":{}}'
```

### Deployment

One deployment: its current release, hardware, and scaling settings.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `deployment`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/deployments/{deployment}","input":{"deployment":"<owner>/<deployment>"}}'
```

### Collections

Curated model collections (text-to-image, upscalers, speech…) — a good way to find the right model.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/collections","input":{}}'
```

### Collection

The models in one curated collection.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `slug`                    | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/collections/{slug}","input":{"slug":"text-to-image"}}'
```

### Account

The account this token belongs to.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/account","input":{}}'
```

### Hardware

The GPU/CPU tiers models can run on, with their SKUs.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/hardware","input":{}}'
```

### Files

Files you've uploaded to Replicate for use as model inputs.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `cursor`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/files","input":{}}'
```

### File

One uploaded file, with the URL to pass as a model input.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `file_id`                 | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/files/{id}","input":{"file_id":"<file-id>"}}'
```

### Download a file

Fetch an uploaded file's contents. owner, expiry and signature come from the signed urls.get link on replicate.file.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |    |
| ------------------------- | ------ | -------- | -- |
| `file_id`                 | string | yes      |    |
| `owner`                   | string | no       |    |
| `expiry`                  | string | integer  | no |
| `signature`               | string | no       |    |
| *(other provider fields)* | any    | no       |    |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/files/{id}/download","input":{"file_id":"<file-id>"}}'
```

### Run a model

Run a model and wait for the output in one call (up to 60s). Pass model (owner/name) for an official model, or version for any other. `input` is model-specific — see replicate.model for its schema. If the model takes longer than the wait, you get the prediction back still processing: poll replicate.prediction with its id. Outputs are URLs that expire in about an hour. cancel\_after (e.g. 5m) caps GPU time. Billed to your own Replicate account.

**Cost:** 5 to 1300 credits

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `model`                   | string    | no       |
| `version`                 | string    | no       |
| `wait`                    | integer   | no       |
| `cancel_after`            | string    | no       |
| `input`                   | object    | no       |
| `webhook`                 | string    | no       |
| `webhook_events_filter`   | string\[] | no       |
| `stream`                  | boolean   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/run","input":{"model":"black-forest-labs/flux-schnell","input":{"prompt":"a red bicycle on a beach at sunset"}}}'
```

### Start a prediction (async)

Kick off a model without waiting — returns a pending prediction immediately. Use this for slow models (video, long generations): poll replicate.prediction, or pass a webhook. Cheaper than replicate.run because nothing is held open.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `model`                   | string    | no       |
| `version`                 | string    | no       |
| `input`                   | object    | no       |
| `webhook`                 | string    | no       |
| `webhook_events_filter`   | string\[] | no       |
| `stream`                  | boolean   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/predictions/create","input":{"model":"black-forest-labs/flux-schnell","input":{"prompt":"a red bicycle"}}}'
```

### Run a deployment

Run one of your deployments (a model on dedicated hardware) and wait for the output, same as replicate.run.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `deployment`              | string    | yes      |
| `wait`                    | integer   | no       |
| `cancel_after`            | string    | no       |
| `input`                   | object    | no       |
| `webhook`                 | string    | no       |
| `webhook_events_filter`   | string\[] | no       |
| `stream`                  | boolean   | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/deployments/{deployment}/predictions","input":{"deployment":"<owner>/<deployment>","input":{"prompt":"hello"}}}'
```

### Cancel a prediction

Stop a running prediction. Useful when a model is taking longer than it's worth — you stop paying for the GPU.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `prediction_id`           | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/predictions/{id}/cancel","input":{"prediction_id":"<prediction-id>"}}'
```

### Start a fine-tune

Train a model version against your own data and push the result to destination. Long-running and billed by the second on your account — poll replicate.training for status.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `model`                   | string    | yes      |
| `version_id`              | string    | yes      |
| `destination`             | string    | yes      |
| `input`                   | object    | no       |
| `webhook`                 | string    | no       |
| `webhook_events_filter`   | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/models/{model}/versions/{id}/trainings","input":{"model":"ostris/flux-dev-lora-trainer","version_id":"<version-id>","destination":"<your-account>/<model-name>","input":{"input_images":"https://example.com/images.zip"}}}'
```

### Cancel a fine-tune

Stop a running training and stop paying for it.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `training_id`             | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/trainings/{id}/cancel","input":{"training_id":"<training-id>"}}'
```

### Raw Replicate call

Escape hatch: any Replicate endpoint on your own token (path absolute, e.g. /webhooks/default/secret). Prefer the curated replicate tools when one fits.

> **Bring your own key** — connect Replicate first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `path`                    | string | yes      |
| `method`                  | string | no       |
| `query`                   | object | no       |
| `body`                    | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"replicate","endpoint":"/request","input":{"method":"GET","path":"/collections"}}'
```

## OpenAI

Generate images from a prompt with gpt-image-2, on your own key or ours. *(image-generation)*

### Generate an image

Generate an image from a text prompt with gpt-image-2, which renders text inside images far better than diffusion models do. Returns base64 rather than a URL, because OpenAI offers no URL option: high quality and larger sizes mean a multi-megabyte response, so leave quality at low unless detail matters. Runs on your own OpenAI key if you connect one, otherwise on fetchbean's.

**Cost:** 5 to 2532 credits

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `prompt`                  | string  | yes      |
| `model`                   | string  | no       |
| `quality`                 | string  | no       |
| `size`                    | string  | no       |
| `n`                       | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"openai","endpoint":"/images/generations","input":{"prompt":"a storefront sign reading OPEN LATE, warm evening light"}}'
```

## Google Calendar

your google calendar: list, read, create, update, and delete calendar events, and list your calendars (connect with one click). *(productivity)*

### Google Calendar: list events

List events on a calendar (default 'primary'). Optional timeMin/timeMax (RFC3339), q, maxResults.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Calendar first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type    | Required |
| ------------------------- | ------- | -------- |
| `calendarId`              | string  | no       |
| `timeMin`                 | string  | no       |
| `timeMax`                 | string  | no       |
| `q`                       | string  | no       |
| `maxResults`              | integer | no       |
| *(other provider fields)* | any     | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_calendar","endpoint":"/events","input":{"calendarId":"primary","timeMin":"2026-07-01T00:00:00Z","maxResults":10}}'
```

### Google Calendar: get event

Get one event by id from a calendar (default 'primary').

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Calendar first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `eventId`                 | string | yes      |
| `calendarId`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_calendar","endpoint":"/event","input":{"eventId":"abc123","calendarId":"primary"}}'
```

### Google Calendar: list calendars

List the calendars on the user's calendar list.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Calendar first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_calendar","endpoint":"/calendars","input":{}}'
```

### Google Calendar: create event

Create an event on a calendar (default 'primary'). event needs start + end.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Calendar first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `event`                   | object | yes      |
| `calendarId`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_calendar","endpoint":"/create-event","input":{"calendarId":"primary","event":{"summary":"Sync","start":{"dateTime":"2026-07-02T15:00:00Z"},"end":{"dateTime":"2026-07-02T15:30:00Z"}}}}'
```

### Google Calendar: update event

Patch (partial update) an event by id on a calendar (default 'primary').

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Calendar first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `eventId`                 | string | yes      |
| `event`                   | object | yes      |
| `calendarId`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_calendar","endpoint":"/update-event","input":{"calendarId":"primary","eventId":"abc123","event":{"summary":"Updated title"}}}'
```

### Google Calendar: delete event

Delete an event by id from a calendar (default 'primary').

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Calendar first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `eventId`                 | string | yes      |
| `calendarId`              | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_calendar","endpoint":"/delete-event","input":{"calendarId":"primary","eventId":"abc123"}}'
```

## Google Docs & Sheets

your google docs, sheets, slides, and forms: read and write documents, spreadsheet data, presentations, and forms, and read form responses (connect with one click). *(productivity)*

### Google Docs: get document

Read a document's full content (body, styles, revision id) by document id.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `documentId`              | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/doc","input":{"documentId":"1AbC..."}}'
```

### Google Docs: create document

Create a new empty document with a title. add content afterwards with doc batch update.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `title`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/create-doc","input":{"title":"meeting notes"}}'
```

### Google Docs: batch update

Apply edits to a document. requests is an array of docs edit ops (insertText, replaceAllText, etc.).

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `documentId`              | string    | yes      |
| `requests`                | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/doc-batch-update","input":{"documentId":"1AbC...","requests":[{"insertText":{"location":{"index":1},"text":"hello world"}}]}}'
```

### Google Sheets: read values

Read a value range from a spreadsheet (A1 notation, e.g. 'Sheet1!A1:C10').

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `spreadsheetId`           | string | yes      |
| `range`                   | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/sheet-values","input":{"spreadsheetId":"1AbC...","range":"Sheet1!A1:C10"}}'
```

### Google Sheets: spreadsheet info

Get a spreadsheet's metadata (sheet names, properties). Optional fields mask.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `spreadsheetId`           | string | yes      |
| `fields`                  | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/sheet-info","input":{"spreadsheetId":"1AbC...","fields":"sheets.properties"}}'
```

### Google Sheets: update values

Overwrite a value range (USER\_ENTERED). values is a 2D array of rows.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `spreadsheetId`           | string    | yes      |
| `range`                   | string    | yes      |
| `values`                  | any\[]\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/update-sheet-values","input":{"spreadsheetId":"1AbC...","range":"Sheet1!A1","values":[["Name","Score"],["Ada",42]]}}'
```

### Google Sheets: append rows

Append rows after the last row of a range (USER\_ENTERED). values is a 2D array of rows.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `spreadsheetId`           | string    | yes      |
| `range`                   | string    | yes      |
| `values`                  | any\[]\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/append-row","input":{"spreadsheetId":"1AbC...","range":"Sheet1!A1","values":[["Grace",99]]}}'
```

### Google Sheets: create spreadsheet

Create a new spreadsheet. Pass a title, or a full spreadsheet resource.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `title`                   | string | no       |
| `spreadsheet`             | object | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/create-spreadsheet","input":{"title":"Q3 metrics"}}'
```

### Google Slides: get presentation

Read a presentation's full content (slides, layouts, masters) by presentation id.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `presentationId`          | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/presentation","input":{"presentationId":"1AbC..."}}'
```

### Google Slides: create presentation

Create a new presentation with a title. add slides afterwards with slides batch update.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `title`                   | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/create-presentation","input":{"title":"q3 review deck"}}'
```

### Google Slides: batch update

Apply edits to a presentation. requests is an array of slides edit ops (createSlide, insertText, etc.).

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `presentationId`          | string    | yes      |
| `requests`                | object\[] | yes      |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/slides-batch-update","input":{"presentationId":"1AbC...","requests":[{"createSlide":{"insertionIndex":1}}]}}'
```

### Google Forms: get form

Read a form's structure (info, items, settings) by form id.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `formId`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/form","input":{"formId":"1AbC..."}}'
```

### Google Forms: list responses

List the responses submitted to a form by form id.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `formId`                  | string | yes      |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/form-responses","input":{"formId":"1AbC..."}}'
```

### Google Forms: create form

Create a new form with a title. add questions afterwards via a forms batch update.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Docs & Sheets first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `title`                   | string | yes      |
| `documentTitle`           | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_workspace","endpoint":"/create-form","input":{"title":"customer feedback"}}'
```

## Gmail

send email as your connected gmail account: plain text or html, with cc and bcc (connect with one click). *(productivity)*

### Gmail: send email

Send an email as the connected account. to is required; subject, body (plain text), html, cc, bcc optional.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Gmail first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `to`                      | string | yes      |
| `subject`                 | string | no       |
| `body`                    | string | no       |
| `html`                    | string | no       |
| `cc`                      | string | no       |
| `bcc`                     | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"gmail","endpoint":"/send-email","input":{"to":"friend@example.com","subject":"hello","body":"sent from fetchbean"}}'
```

## Google Analytics

your ga4 data: run reports over your properties and list the properties you can access (connect with one click). *(analytics)*

### Google Analytics: run report (GA4)

Run a GA4 report for a property. Pass numeric property\_id, dimensions + metrics (name arrays), and a date range.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Analytics first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `property_id`             | string    | yes      |
| `dimensions`              | string\[] | no       |
| `metrics`                 | string\[] | no       |
| `date_ranges`             | object\[] | no       |
| `start_date`              | string    | no       |
| `end_date`                | string    | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_analytics","endpoint":"/report","input":{"property_id":"123456789","dimensions":["country"],"metrics":["activeUsers"],"start_date":"2026-06-01","end_date":"2026-06-30"}}'
```

### Google Analytics: list properties

List the GA4 accounts and properties you can access, to find a numeric property\_id.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Analytics first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_analytics","endpoint":"/properties","input":{}}'
```

## Google Search Console

your search console data: query search analytics for a verified site, list your sites, and inspect a url's index status (connect with one click). *(analytics)*

### Search Console: search analytics

Query Search Console traffic for a verified site over a date range. dimensions can be query, page, country, device, or date.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Search Console first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type      | Required |
| ------------------------- | --------- | -------- |
| `site_url`                | string    | yes      |
| `start_date`              | string    | yes      |
| `end_date`                | string    | yes      |
| `dimensions`              | string\[] | no       |
| *(other provider fields)* | any       | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_search_console","endpoint":"/search-analytics","input":{"site_url":"https://example.com/","start_date":"2026-06-01","end_date":"2026-06-30","dimensions":["query"]}}'
```

### Search Console: list sites

List the sites you have verified in Search Console.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Search Console first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_search_console","endpoint":"/sites","input":{}}'
```

### Search Console: inspect url

Inspect a URL's index status in Search Console. Needs the inspection\_url and its owning verified site\_url.

> **Beta** — gated to orgs with beta access.

> **Bring your own key** — connect Google Search Console first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter                 | Type   | Required |
| ------------------------- | ------ | -------- |
| `inspection_url`          | string | yes      |
| `site_url`                | string | yes      |
| `language_code`           | string | no       |
| *(other provider fields)* | any    | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"google_search_console","endpoint":"/inspect-url","input":{"inspection_url":"https://example.com/page","site_url":"https://example.com/"}}'
```

## Bing Webmaster

Your site's Bing search performance: queries, pages, crawl health, backlinks, and indexing. *(analytics)*

### Bing verified sites

List the sites verified in your Bing Webmaster Tools account.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetUserSites","input":{}}'
```

### Bing traffic stats

Daily impressions, clicks, and average position for a site on Bing.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetRankAndTrafficStats","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing top queries

Top search queries driving impressions and clicks to a site on Bing.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetQueryStats","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing top pages

Traffic statistics for a site's top-performing pages on Bing.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetPageStats","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing queries for a page

Which search queries drive traffic to one specific page.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `page`    | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetPageQueryStats","input":{"siteUrl":"https://fetchbean.com","page":"https://fetchbean.com/pricing"}}'
```

### Bing keyword stats

Historical search impression volume for a keyword on Bing.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter  | Type   | Required |
| ---------- | ------ | -------- |
| `q`        | string | yes      |
| `country`  | string | no       |
| `language` | string | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetKeywordStats","input":{"q":"ai agent tools","country":"us","language":"en-US"}}'
```

### Bing related keywords

Keywords related to a seed term, with impression counts over a date range.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter   | Type   | Required |
| ----------- | ------ | -------- |
| `q`         | string | yes      |
| `country`   | string | no       |
| `language`  | string | no       |
| `startDate` | string | no       |
| `endDate`   | string | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetRelatedKeywords","input":{"q":"ai agent tools","country":"us","language":"en-US"}}'
```

### Bing crawl issues

Crawl errors Bing found on a site: 404s, blocked URLs, malware, DNS failures.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetCrawlIssues","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing crawl stats

How often Bing crawled a site, and what it found each day.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetCrawlStats","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing URL index info

Index status and details Bing holds for a single page.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `url`     | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetUrlInfo","input":{"siteUrl":"https://fetchbean.com","url":"https://fetchbean.com/pricing"}}'
```

### Bing inbound link counts

Pages on a site that have inbound links, with counts.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `page`    | number | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetLinkCounts","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing backlinks for a URL

Inbound links pointing at one specific page.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `url`     | string | yes      |
| `page`    | number | no       |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetUrlLinks","input":{"siteUrl":"https://fetchbean.com","url":"https://fetchbean.com/pricing"}}'
```

### Bing sitemaps

Sitemaps submitted for a site, with their status.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetFeeds","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Bing URL submission quota

Remaining daily and monthly URL submission allowance. Check before submitting.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/GetUrlSubmissionQuota","input":{"siteUrl":"https://fetchbean.com"}}'
```

### Submit URL to Bing

Submit a single URL to Bing for crawling and indexing. Counts against your daily quota.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `url`     | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/SubmitUrl","input":{"siteUrl":"https://fetchbean.com","url":"https://fetchbean.com/changelog"}}'
```

### Submit URLs to Bing (batch)

Submit several URLs to Bing for indexing in one call. Counts against your daily quota.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type      | Required |
| --------- | --------- | -------- |
| `siteUrl` | string    | yes      |
| `urlList` | string\[] | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/SubmitUrlBatch","input":{"siteUrl":"https://fetchbean.com","urlList":["https://fetchbean.com/a","https://fetchbean.com/b"]}}'
```

### Submit sitemap to Bing

Register a sitemap (or RSS/Atom feed) with Bing so it discovers your URLs — the write half of feeds. Verify afterwards with bing\_webmaster.feeds.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `feedUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/SubmitFeed","input":{"siteUrl":"https://fetchbean.com","feedUrl":"https://fetchbean.com/sitemap.xml"}}'
```

### Remove sitemap from Bing

Unregister a previously submitted sitemap or feed from Bing.

> **Bring your own key** — connect Bing Webmaster first (`POST /v1/connections`); the call runs on your own key. See the API reference → Connections.

**Cost:** 5 credits per call

| Parameter | Type   | Required |
| --------- | ------ | -------- |
| `siteUrl` | string | yes      |
| `feedUrl` | string | yes      |

```bash theme={null}
curl https://api.fetchbean.com/v1/run \
  -H "X-API-Key: $FETCHBEAN_KEY" \
  -H "Content-Type: application/json" \
  -d '{"provider":"bing_webmaster","endpoint":"/RemoveFeed","input":{"siteUrl":"https://fetchbean.com","feedUrl":"https://fetchbean.com/sitemap.xml"}}'
```
