---
title: "列可报名的机会（黑客松 / 赛事 / 孵化营 / 融资申请 / 活动）"
method: GET
path: "/v1/signup/feed"
tags: ["报名"]
---

# 列可报名的机会（黑客松 / 赛事 / 孵化营 / 融资申请 / 活动）

`GET /v1/signup/feed`

## Request

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

用户问「最近有什么能报名的」「这周截止的有哪些」「有没有黑客松」时调它。 这是站内**唯一能真报名**的机会列表：每一场都挂着可用的报名表单。 口径与坑：① 别和 listActivities 里 type=COMPETITION 的条目混为一谈——那些是导入的 **外部赛事资讯**，站内报不了名，CTA 是去主办方官网；能报名的只在本接口里。 ② 已按「置顶 → 报名截止近的优先（无截止排最后）」排好序，「这周截止的」直接按顺序截即可， **别自己重排**。③ 首屏（不传 cursor）返回的 kinds 是服务端算的**真实类目计数**， 空类目根本不出现——照它渲染筛选项，别拿类目全集当菜单；翻页时不返回 kinds。 ④ startAtKnown=false 表示这场的开始时间是导入时兜底顶上的假值，**别把那个日期念给用户**。 ⑤ 匿名调用时 submitted 恒为 false（本 spec 无登录态）。 典型组合链：本接口拿到 slug → getSignupActivity(slug) 看题目表、地点名额与截止时间 → 替用户判断该不该报；真提交报名要登录，走 MCP 的 submit_signup 或报名页 https://opcmenu.com/e/{slug}。

## Query parameters

- `kind` 'HACKATHON' | 'COMPETITION' | 'INCUBATOR' | 'FUNDING' | 'COMMUNITY' | 'EVENT' | 'OTHER'
- `includeExpired` '0' | '1'
- `limit` integer
- `cursor` string

## Response `200`

可报名机会列表（置顶优先，其余按报名截止近的在前）

- object
  - `ok` boolean
  - `data` object
    - `items` SignupActivityCard[]
      - `id` string
      - `slug` string: 活动 slug（传给 getSignupActivity）
      - `title` string
      - `kind` 'HACKATHON' | 'COMPETITION' | 'INCUBATOR' | 'FUNDING' | 'COMMUNITY' | 'EVENT' | 'OTHER': 报名类目（同 listSignupFeed 的 kind 枚举）
      - `coverUrl` string, nullable
      - `organizerName` string, nullable: 主办方名称（文本，未必是站内账号）
      - `organizer` object, nullable: 站内主办方账号（外部导入的赛事为 null）
        - `id` string
        - `nickname` string, nullable
        - `avatarUrl` string, nullable
      - `city` string, nullable
      - `track` string, nullable: 赛道 / 主题
      - `rewards` string, nullable: 奖项 / 权益（自由文本）
      - `startAt` string, date-time: 开始时间；startAtKnown=false 时是兜底值，别念给用户
      - `registrationDeadline` string, date-time, nullable: 报名截止时间；null=长期有效（排序时排最后）
      - `pinned` boolean: 是否置顶（独行录自办/承办）
      - `startAtKnown` boolean: startAt 是不是主办方公布的真实时间；false=导入时兜底顶上的假值，不要展示那个日期
      - `signup` object: 报名方式
        - `canOneClick` boolean: 是否已解析出可用表单（能一键报名）
        - `requiresLogin` boolean: 是否必须登录才能报
        - `hostedEnabled` boolean: 是否由独行录托管报名
        - `externalUrl` string, nullable: 主办方的外部报名表单地址
        - `externalIsCanonical` boolean: true=正式报名在主办方那边，站内提交只是留资＋代填
      - `submitted` boolean: 当前用户报没报过；本 spec 匿名调用恒为 false
    - `nextCursor` string, nullable
    - `kinds` SignupKindCount[]: 各类目下当前可报名的场次数（只在首屏返回，翻页时缺省）；count=0 的类目不出现
      - `kind` 'HACKATHON' | 'COMPETITION' | 'INCUBATOR' | 'FUNDING' | 'COMMUNITY' | 'EVENT' | 'OTHER': 报名类目（同 listSignupFeed 的 kind 枚举）
      - `count` integer: 该类目下当前可报名的场次数

---

[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)
