Catalog / Windsurf

Windsurf API

windsurf.com

Read public article listings and article details from the blog currently reached by windsurf.com/blog. The source URL presently redirects to devin.ai/blog; pagination follows the source's page links, and article detail includes the source-published text.

  • Other
  • windsurf
  • blog
  • articles
  • public-content
3 endpointsDocs updated

Endpoint health

Loading verification…

Connect your agent

Connect through MCP so your agent can find this API, read its docs, and call its endpoints.

Setup guide

Add the server from your terminal.

Claude Code · terminal
claude mcp add --transport http agent-data https://agent-data.motie.dev/mcp

In Claude Code, run /mcp, select agent-data, then Authenticate. Sign in to your agent-data account in the browser.

Then ask your agent to use the Windsurf API for your task.

Call it over HTTP

Get an API key

Sign up free, generate an API key, and set it as AGENT_DATA_API_KEY in your environment. Your first 100 calls each month are free.

Returns the source's current article-card page and a source-derived next_cursor. Pass the cursor unchanged to browse older posts; the source URL currently redirects to Devin.

Optional parameters 1

Source page token. Omit for the newest page; otherwise pass next_cursor unchanged.

View call pricing
cURL · Articles
curl --request GET --get 'https://api.agent-data.dev/windsurf-com/v1/articles' \
  --header "Authorization: Bearer $AGENT_DATA_API_KEY"

Endpoints

Inputs and response fields for every endpoint in this API.

GETArticles/v1/articles

Returns the source's current article-card page and a source-derived next_cursor. Pass the cursor unchanged to browse older posts; the source URL currently redirects to Devin.

Input

cursorOptionalQuery · string | null

Source page token. Omit for the newest page; otherwise pass next_cursor unchanged.

Response

pageinteger
itemsobject[]
items[].titlestring
items[].authors?string[]
items[].summary?string | null
items[].full_text?string | null
items[].source_idstring
items[].categories?string[]
items[].update_date?string (date) | null
items[].canonical_urlstring
items[].publication_date?string (date) | null
has_moreboolean
transportstring
next_cursorstring | null
total_pagesinteger

Fields marked ? are optional.

For the next page, pass next_cursor from the response as cursor. Leave it empty on the first call.

GETArticles by url/v1/articles/by-url

Accepts an HTTPS article URL on the observed Windsurf/Devin blog hosts and returns its canonical article record.

Input

urlRequiredQuery · string

Canonical article URL returned by the listing, or its official Windsurf blog URL.

Example: https://devin.ai/blog/gpt-6-sol-luna

Response

titlestring
authors?string[]
summary?string | null
full_text?string | null
source_idstring
transportstring
categories?string[]
update_date?string (date) | null
canonical_urlstring
publication_date?string (date) | null

Fields marked ? are optional.

GETArticles by article id/v1/articles/{article_id}

Fetches the public article whose source ID is the slug in its canonical blog URL.

Input

article_idRequiredPath · string

Source article slug from the listing item's source_id.

Example: gpt-6-sol-luna

Response

titlestring
authors?string[]
summary?string | null
full_text?string | null
source_idstring
transportstring
categories?string[]
update_date?string (date) | null
canonical_urlstring
publication_date?string (date) | null

Fields marked ? are optional.

Don’t see the endpoint you need?

Ask agent-data to add an endpoint or return more fields. Extensions are free and keep existing endpoints working.