---
title: "Project Pulse [Deprecated]"
method: GET
path: "/gateway/v1/project/pulse"
tags: ["Project"]
deprecated: true
---

# Project Pulse \[Deprecated\]

`GET /gateway/v1/project/pulse`

> **Deprecated.**

**[DEPRECATED]** Use `GET /v1/project/ai-news` instead. This endpoint will continue to work but will not receive new features.

---

AI-generated news and signal analysis for a project. Each item includes title, summary, TL;DR, signal type, and source URLs.

**Signal types returned:** `price_analysis`, `funding`. Social/X-derived items (`mindshare`, `twitter`, `ai_twitter`, items with tweet payloads or X/Twitter source URLs) are filtered out and never returned.

**Lookup:** by UUID (`id`) or name (`q`). Filter by `lang` (en/zh/ja/kr). Returns 404 if not found.

## Query parameters

- `id` string — Surf project UUID. PREFERRED — always use this when available from a previous response (e.g. project_id from /fund/portfolio or id from /search/project). Takes priority over q.
- `q` string — Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names.
- `limit` integer — Results per page
- `offset` integer — Pagination offset
- `lang` 'en' | 'zh' | 'ja' | 'kr' — Language for AI-generated content

## Response `200`

OK

- DataResponseProjectPulseItem
  - `$schema` string, uri — A URL to the JSON Schema for this object.
  - `data` ProjectPulseItem[], nullable, required
    - `id` string, required
    - `signal_type` string, required
    - `slug` string
    - `sources` string[], nullable
    - `subtitle` string
    - `timestamp` integer, required
    - `title` string, required
    - `tldr` string[], nullable
  - `meta` OffsetMeta, required
    - `cached` boolean, required — Whether this response was served from cache
    - `credits_used` integer, required — Credits deducted for this request
    - `empty_reason` string — Hint explaining why the data array is empty, when applicable
    - `has_more` boolean — Whether more items may exist beyond this response. For offset-paged endpoints, continue with a larger offset. For time-series endpoints without offset/cursor controls, true means the requested time range hit an upstream cap; narrow from/to to continue. Omitted when exhaustion cannot be proven.
    - `limit` integer, required — Maximum number of items returned in this response
    - `offset` integer, required — Number of items skipped (pagination offset)
    - `total` integer — Total number of matching items (before pagination). Omitted when total is unknown.
    - `watermark` integer — Warehouse watermark (Unix seconds) this response was computed at, on warehouse-backed endpoints (e.g. Hyperliquid /trades/aggregate) — rows up to this time come from the warehouse, newer rows from the live tail. Omitted elsewhere.

## Other responses

- `default` — Error

---

[API](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api.md) · [All operations](https://skmtc.dev/asksurf/apis/asksurf-public-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/asksurf/asksurf-public-rest-api/revisions/4153a9cb5145/schema)
