CoreStory Sections API

The sections API from CoreStory — 7 operation(s) for sections.

Business capability
Product Specification Management BC-4200.20

Operations 8

POST /api/projects/{project_id}/sections/{section_name}/generate Generate a specific section #
POST /api/projects/{project_id}/sections/generate-all Generate all sections (PRD + Tech Spec) in background #
GET /api/projects/{project_id}/sections/tech-user-stories/catalog Get a catalog of tech-user-story facets for UI browsing #
GET /api/projects/{project_id}/sections/user-stories/catalog Get a catalog of user-story facets for UI browsing #
GET /api/projects/{project_id}/sections Get all sections (PRD + Tech Spec) for the project #
GET /api/projects/{project_id}/sections/{section_name} Get a single section by name #
PATCH /api/projects/{project_id}/sections/{section_name} Update a section #
GET /api/sections/catalog List all document section names (PRD + Tech Spec) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/corestory-sections-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

corestory-sections-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crowdbotics API Documentation Sections API
  description: '# CoreStory API Overview


    The CoreStory API provides programmatic access to structured insights derived from software source code.'
  version: 1.26.2
servers:
- url: /
  description: Current server
security:
- BearerAuth: []
tags:
- name: Sections
paths:
  /api/projects/{project_id}/sections/{section_name}/generate:
    post:
      tags:
      - Sections
      summary: Generate a specific section
      description: Generate (or regenerate) a single section.
      operationId: generate_section
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: section_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/DocumentSectionsDashedEnum'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GeneratePRDSectionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                title: Response Generate Section
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/sections/generate-all:
    post:
      tags:
      - Sections
      summary: Generate all sections (PRD + Tech Spec) in background
      description: 'Generate all PRD and tech-spec sections in background.


        Used for "living PRD" — after reingestion, regenerate everything.'
      operationId: generate_all_sections
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateAllRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Generate All Sections
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/sections/tech-user-stories/catalog:
    get:
      tags:
      - Sections
      summary: Get a catalog of tech-user-story facets for UI browsing
      description: Return unique, alpha-sorted catalog lists for main_features, epics, and personas.
      operationId: get_tech_user_stories_section_catalog
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Tech User Stories Section Catalog
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/sections/user-stories/catalog:
    get:
      tags:
      - Sections
      summary: Get a catalog of user-story facets for UI browsing
      description: Return unique, alpha-sorted catalog lists for main_features, epics, and personas.
      operationId: get_user_stories_section_catalog
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get User Stories Section Catalog
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/sections:
    get:
      tags:
      - Sections
      summary: Get all sections (PRD + Tech Spec) for the project
      description: Get all PRD + tech-spec sections combined into a single response.
      operationId: get_all_sections
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Version
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AllSectionsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/sections/{section_name}:
    get:
      tags:
      - Sections
      summary: Get a single section by name
      description: Get a single section (PRD or tech-spec) with optional pagination and filtering.
      operationId: get_section
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: section_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/DocumentSectionsDashedEnum'
      - name: version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Version
      - name: epics
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: integer
          - type: 'null'
          description: Epic IDs
          title: Epics
        description: Epic IDs
      - name: personas
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: integer
          - type: 'null'
          description: Persona IDs
          title: Personas
        description: Persona IDs
      - name: main_features
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: integer
          - type: 'null'
          description: Main feature IDs
          title: Main Features
        description: Main feature IDs
      - name: keywords
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
          - type: 'null'
          description: Keyword list
          title: Keywords
        description: Keyword list
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Free-text; supports exact, "a or b", or "a and b"
          title: Search
        description: Free-text; supports exact, "a or b", or "a and b"
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: Page number (1-based)
          default: 1
          title: Page
        description: Page number (1-based)
      - name: size
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          description: 'Items per page (default: 999)'
          default: 999
          title: Size
        description: 'Items per page (default: 999)'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SectionResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
    patch:
      tags:
      - Sections
      summary: Update a section
      description: Update a single section (PRD or tech-spec).
      operationId: update_section
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: section_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/DocumentSectionsDashedEnum'
      - name: version
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Version
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
              title: Patch Data
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicSuccessResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/sections/catalog:
    get:
      tags:
      - Sections
      summary: List all document section names (PRD + Tech Spec)
      description: Return the static catalog of all 14 PRD + Tech Spec section names.
      operationId: get_section_catalog
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties:
                  items:
                    additionalProperties:
                      type: string
                    type: object
                  type: array
                type: object
                title: Response Get Section Catalog
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
components:
  schemas:
    GenerateAllRequest:
      properties:
        language:
          anyOf:
          - type: string
          - type: 'null'
          title: Language
      type: object
      title: GenerateAllRequest
    ErrorSchema:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      type: object
      required:
      - error
      title: ErrorSchema
    SpecFormat:
      type: string
      enum:
      - legacy
      - dga
      - spec_v2
      title: SpecFormat
      description: 'Self-documenting label for the format a generated spec is in.


        Derived from ``content_version`` and surfaced on API responses so the

        viewer (and any API consumer) renders the right experience without

        guessing from which fields happen to be present.'
    LanguageInfo:
      properties:
        code:
          type: string
          title: Code
          description: BCP-47 language code (ja, es, fr-CA).
        name:
          type: string
          title: Name
          description: Language name in its native script (English, français (Canada)).
      type: object
      required:
      - code
      - name
      title: LanguageInfo
      description: Language information with code and native display name.
    GeneratePRDSectionRequest:
      properties:
        custom_prompt:
          anyOf:
          - $ref: '#/components/schemas/PRDCustomPromptRequest'
          - type: 'null'
        language:
          anyOf:
          - type: string
          - type: 'null'
          title: Language
      type: object
      title: GeneratePRDSectionRequest
    DocumentSectionsDashedEnum:
      type: string
      enum:
      - executive-overview
      - user-personas
      - high-level-requirements
      - user-stories
      - security-requirements
      - system-architecture
      - data-models
      - user-interface
      - api-specifications
      - interface-specifications
      - integration-points
      - security-considerations
      - tech-user-stories
      - implementation-strategy
      title: DocumentSectionsDashedEnum
      description: PRD + tech-spec sections only (no retriever). Use for user-facing endpoints.
    PRDCustomPromptRequest:
      properties:
        prompt:
          type: string
          title: Prompt
        replacement:
          type: boolean
          title: Replacement
      type: object
      required:
      - prompt
      - replacement
      title: PRDCustomPromptRequest
    SectionResponse:
      properties:
        prd_id:
          type: integer
          title: Prd Id
        created_at:
          type: string
          format: date-time
          title: Created At
        section_name:
          type: string
          title: Section Name
          description: Dashed section name, e.g. 'executive-overview'.
        content:
          title: Content
          description: The section content. Shape varies by section.
        content_version:
          type: integer
          title: Content Version
          description: 1=legacy, 2=DGA-generated, 3=Spec V2.
          default: 1
        can_regenerate:
          type: boolean
          title: Can Regenerate
          default: false
        custom_prompt:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Prompt
        filter_stats:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Filter Stats
          description: Filtering counts, e.g. total vs filtered user stories. Only populated for filterable sections.
        prd_version_num:
          anyOf:
          - type: integer
          - type: 'null'
          title: Prd Version Num
        prd_version_uid:
          anyOf:
          - type: string
          - type: 'null'
          title: Prd Version Uid
        language:
          anyOf:
          - $ref: '#/components/schemas/LanguageInfo'
          - type: 'null'
          description: Language the section was generated in, if non-English.
        pagination:
          anyOf:
          - $ref: '#/components/schemas/PaginationMeta'
          - type: 'null'
        format_label:
          $ref: '#/components/schemas/SpecFormat'
          description: 'Self-documenting format label derived from content_version: legacy / dga / spec_v2.'
          readOnly: true
      type: object
      required:
      - prd_id
      - created_at
      - section_name
      - format_label
      title: SectionResponse
      description: 'Single-section response for GET /sections/{section_name}.


        Content is always in the `content` field regardless of which section was

        requested. The `section_name` field identifies the section in dashed form

        (e.g. ''executive-overview'').'
    AllSectionsResponse:
      properties:
        system_architecture:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: System Architecture
          description: System architecture details
        data_models:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: Data Models
          description: Data models details
        user_interface:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: User Interface
          description: User interface details
        api_specifications:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: Api Specifications
          description: API specifications details
        interface_specifications:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: Interface Specifications
          description: Interface specifications details
        integration_points:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: Integration Points
          description: Integration points details
        security_considerations:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: Security Considerations
          description: Security considerations details
        implementation_strategy:
          anyOf:
          - additionalProperties: true
            type: object
          - type: string
          title: Implementation Strategy
          description: Implementation strategy details
        tech_user_stories:
          anyOf:
          - items: {}
            type: array
          - type: string
          title: Tech User Stories
          description: User stories details
        caveats:
          anyOf:
          - additionalProperties:
              type: string
            type: object
          - type: 'null'
          title: Caveats
          description: Per-section provenance caveats keyed by section name. Only populated for sections whose evidence is documentation-only or mixed; absent when all sections are grounded in code or have no sources.
        executive_overview:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Executive Overview
          description: Executive overview details
        user_personas:
          additionalProperties: true
          type: object
          title: User Personas
          description: User personas details
        high_level_requirements:
          additionalProperties: true
          type: object
          title: High Level Requirements
          description: High level requirements details
        user_stories:
          anyOf:
          - items: {}
            type: array
          - type: string
          title: User Stories
          description: User stories details
        security_requirements:
          additionalProperties: true
          type: object
          title: Security Requirements
          description: Security requirements details
        prd_id:
          type: integer
          title: Prd Id
        prd_version_num:
          anyOf:
          - type: integer
          - type: 'null'
          title: Prd Version Num
        prd_version_uid:
          anyOf:
          - type: string
          - type: 'null'
          title: Prd Version Uid
        generated_from_commit_sha:
          anyOf:
          - type: string
          - type: 'null'
          title: Generated From Commit Sha
        custom_prompt:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Prompt
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Updated At
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
          description: Job metadata including version and version_tag
      type: object
      required:
      - prd_id
      - created_at
      title: AllSectionsResponse
      description: Combined PRD + Tech-Spec sections response for unified /sections/ endpoint.
    ErrorBody:
      properties:
        message:
          type: string
          title: Message
        type:
          type: string
          title: Type
        details:
          additionalProperties: true
          type: object
          title: Details
          description: Optional extra context for the error.
      type: object
      required:
      - message
      - type
      title: ErrorBody
    PaginationMeta:
      properties:
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
        pages:
          type: integer
          title: Pages
      type: object
      required:
      - total
      - page
      - size
      - pages
      title: PaginationMeta
    BasicSuccessResponse:
      properties:
        detail:
          type: string
          title: Detail
          default: success
      type: object
      title: BasicSuccessResponse
      description: 'Use this for returns for deletes and patches.

        UI ALWAYS needs some payload return. This just standarizes it.'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Enter the Bearer token from Clerk authentication
x-tagGroups:
- name: Ingest Your Codebase
  tags:
  - vector_store
  - projects
  - pre_ingestion
  - reingestion
- name: Generate Code Intelligence
  tags:
  - documents
  - document_generation
  - document_formatters
  - prd
  - prd_version
  - tech_spec
  - quality_metrics
  - sample_projects
- name: Query Your Codebase
  tags:
  - conversations
  - workflows
  - discovery
  - context
  - artifacts
- name: Manage and Inspect Intelligence
  tags:
  - api_debugging
  - events
  - version
  - files
  - cache
  - token_tracking
- name: Authenticate and Manage Access
  tags:
  - clerk_authentication
  - github_webhooks
  - github_integration
  - organizations
  - api_key_management
  - mcp_token_management
  - user
- name: (Advanced) Prompt Tuning
  tags:
  - prompts
- name: MCP Protocol
  tags:
  - mcp_protocol
- name: Administration
  tags:
  - admin