---
title: "需求互换 feed（按主理人聚合，一人一卡）"
method: GET
path: "/v1/needs"
tags: ["需求互换"]
---

# 需求互换 feed（按主理人聚合，一人一卡）

`GET /v1/needs`

## Request

- Base URL: `https://api.opcmenu.com`
- URL: `https://api.opcmenu.com/v1/needs`
- Auth: none declared

平台核心的需求互换信息流：每张卡是一位主理人，主卡展示其最匹配的一条需求， authorNeeds 数组带上该作者在架需求（最多 6 条，主卡需求在首位），并附作者的 canOffer （能提供什么价值）与代表产品——看一张卡即可判断「他要什么 + 他能给什么」。 用户想「看看大家最近在找什么合作 / 有没有我能接的需求」时调用。 未登录调用退化为非个性化排序，仍按人聚合出卡。 典型组合链：本接口浏览 → getNeed 看某条需求详情 → searchPeople 找还有谁能满足它； 接洽（找他聊聊）需登录，不在本 spec。

## Query parameters

- `feed` '1', required
- `type` 'EXPERIENCE' | 'QA' | 'RESOURCE' | 'COLLAB' | 'FINANCING' | 'CHAT' | 'OTHER'
- `limit` integer
- `cursor` string

## Response `200`

需求 feed（一人一卡）

- object
  - `ok` boolean
  - `data` object
    - `items` NeedFeedItem[]
      - `id` string
      - `type` 'EXPERIENCE' | 'QA' | 'RESOURCE' | 'COLLAB' | 'FINANCING' | 'CHAT' | 'OTHER': 需求类型：EXPERIENCE=寻找产品/作品；QA=答疑求助；RESOURCE=介绍资源； COLLAB=寻求合作；FINANCING=融资需求；CHAT=找人聊聊找灵感；OTHER=其它。
      - `title` string
      - `detail` string, nullable: 需求详情
      - `completionNote` string, nullable: 完成条件说明
      - `images` string[]: 配图 URL 列表
      - `status` 'OPEN' | 'IN_PROGRESS' | 'COMPLETED' | 'CANCELLED' | 'EXPIRED': 需求状态（OPEN/IN_PROGRESS 会出现在 feed；被承接也继续展示）
      - `createdAt` string, date-time
      - `author` NeedAuthor: 需求作者：canOffer + 代表产品，判断「他能给什么」
        - `id` string
        - `nickname` string
        - `avatarUrl` string, nullable
        - `isVerified` boolean
        - `canOffer` string, nullable: 作者能提供什么价值
        - `products` object[]: 代表产品（最多 1 个；有产品=主理人，无=观众）
          - `id` string
          - `slug` string
          - `name` string
          - `tagline` string
          - `logoUrl` string, nullable
      - `authorNeeds` AuthorNeedBrief[]: 该作者在架需求（最多 6 条，主卡需求在首位）
        - `id` string: 需求 id（可传给 getNeed）
        - `type` string: 需求类型（同 listNeedsFeed 的 type 枚举）
        - `title` string
      - `matchScore` number, nullable: 匹配分（未登录/无个性化时为 null）
      - `matchReason` object[]: 推荐理由标签
        - `kind` string
        - `label` string
    - `nextCursor` string, nullable

---

[API](https://skmtc.dev/opcmenu/apis/opc-api.md) · [All operations](https://skmtc.dev/opcmenu/apis/opc-api/llms.txt) · [OpenAPI document](https://skmtc.dev/opcmenu/apis/opc-api/revisions/ccdee07fb248?raw)
