CoreStory Prd Version API

The prd_version API from CoreStory — 10 operation(s) for prd_version.

Business capability
Product Specification Management BC-4200.20

Operations 11

GET /api/projects/{project_id}/prd/versions List the versions of the given PRD (with per-version diffs vs previous) #
POST /api/projects/{project_id}/prd/import-steps Bulk-import PRD/TechSpec step content #
POST /api/projects/{project_id}/prd/versions/create-from-latest Create a new PRD version from the latest steps #
DELETE /api/projects/{project_id}/prd/versions/{version_uid} Delete a PRD Version by uid #
PATCH /api/projects/{project_id}/prd/versions/{version_uid} Update a PRD Version (only certain allowed fields) #
GET /api/projects/{project_id}/prd/versions/diff Get section names that changed between two PRD versions #
POST /api/projects/{project_id}/prd/versions/{version_uid}/promote Promote a full PRD version (PRD + tech specs) to be the current one #
POST /api/projects/{project_id}/prd/versions/{version_uid}/{section_name}/promote Promote a single section from an old version by cloning into a new current… #
POST /api/projects/{project_id}/tech-spec/versions/{version_uid}/{section_name}/promote Promote a single tech-spec section from an old version by cloning into a new… #
GET /api/projects/{project_id}/prd/{section_name}/versions List PRD versions that include the given section #
GET /api/projects/{project_id}/tech-spec/{section_name}/versions List PRD versions that include the given tech-spec section #

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-prd-version-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-prd-version-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crowdbotics API Documentation Prd Version 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: prd_version
paths:
  /api/projects/{project_id}/prd/versions:
    get:
      tags:
      - prd_version
      summary: List the versions of the given PRD (with per-version diffs vs previous)
      description: 'List all versions for the project''s PRD (most recent first) and, for each version,

        include the list of section names that differ compared to the previous version

        in that ordered list. The oldest version has an empty diff.'
      operationId: list_prd_versions
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - 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/PRDVersionItemWithDiffListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/import-steps:
    post:
      tags:
      - prd_version
      summary: Bulk-import PRD/TechSpec step content
      description: 'Bulk-create PRDStep rows from a flat dict of dashed step names to content.

        Does not create a version — call create-from-latest afterwards.'
      operationId: import_prd_steps
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImportStepsRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ImportStepsResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/versions/create-from-latest:
    post:
      tags:
      - prd_version
      summary: Create a new PRD version from the latest steps
      description: Snapshot the latest PRD steps into a new PRDVersion and set it as current.
      operationId: create_prd_version_from_latest
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRDVersionItemResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/versions/{version_uid}:
    delete:
      tags:
      - prd_version
      summary: Delete a PRD Version by uid
      description: Delete a PRD version by UID (must belong to this project's PRD).
      operationId: delete_prd_version
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: version_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Version Uid
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicSuccessResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
    patch:
      tags:
      - prd_version
      summary: Update a PRD Version (only certain allowed fields)
      description: 'Update allowed fields on a PRD Version.

        Currently allowed fields: title'
      operationId: update_prd_version
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: version_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Version Uid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PRDVersionUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRDVersionItemResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/versions/diff:
    get:
      tags:
      - prd_version
      summary: Get section names that changed between two PRD versions
      description: 'Return a list of section names that differ between two PRD versions.

        Example:

        { "changed_sections": ["executive-overview", "data-models", "user-stories"] }'
      operationId: diff_prd_versions
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: from_version
        in: query
        required: true
        schema:
          type: string
          format: uuid
          description: Source PRD version UID
          title: From Version
        description: Source PRD version UID
      - name: to_version
        in: query
        required: true
        schema:
          type: string
          format: uuid
          description: Target PRD version UID
          title: To Version
        description: Target PRD version UID
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRDVersionDiffResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/versions/{version_uid}/promote:
    post:
      tags:
      - prd_version
      summary: Promote a full PRD version (PRD + tech specs) to be the current one
      description: Make the given PRD version (by UID) the current version for this project's PRD.
      operationId: promote_prd_version
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: version_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Version Uid
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRDVersionItemResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/versions/{version_uid}/{section_name}/promote:
    post:
      tags:
      - prd_version
      summary: Promote a single section from an old version by cloning into a new current…
      description: 'Clone the given PRD section from the specified PRD version (by UID),

        create a NEW PRDVersion using that section, set it current, and return the new version.'
      operationId: promote_prd_section
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: version_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Version Uid
      - name: section_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/DocumentSectionsDashedEnum'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRDVersionItemResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/tech-spec/versions/{version_uid}/{section_name}/promote:
    post:
      tags:
      - prd_version
      summary: Promote a single tech-spec section from an old version by cloning into a new…
      description: 'Clone the given tech-spec section from the specified PRD version (by UID),

        create a NEW PRDVersion using that section, set it current, and return the new version.'
      operationId: promote_tech_spec_section
      deprecated: true
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: integer
          title: Project Id
      - name: version_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Version Uid
      - name: section_name
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/TechSpecStepsDashedEnum'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PRDVersionItemResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/prd/{section_name}/versions:
    get:
      tags:
      - prd_version
      summary: List PRD versions that include the given section
      description: 'Return PRD versions (newest first) that contain the specified section.

        Uses PRDVersionStepService.list_versions_for_step(prd_id, step_name) to find matches.'
      operationId: list_prd_section_versions
      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: 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/PRDVersionItemListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
  /api/projects/{project_id}/tech-spec/{section_name}/versions:
    get:
      tags:
      - prd_version
      summary: List PRD versions that include the given tech-spec section
      description: 'Return PRD versions (newest first) that contain the specified section.

        Uses PRDVersionStepService.list_versions_for_step(prd_id, step_name) to find matches.'
      operationId: list_tech_spec_section_versions
      deprecated: true
      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/TechSpecStepsDashedEnum'
      - 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/PRDVersionItemListResponse'
        default:
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorSchema'
components:
  schemas:
    ErrorSchema:
      properties:
        error:
          $ref: '#/components/schemas/ErrorBody'
      type: object
      required:
      - error
      title: ErrorSchema
    PRDVersionDiffResponse:
      properties:
        changed_sections:
          items:
            type: string
          type: array
          title: Changed Sections
          description: Section names that differ from version to version.
      type: object
      title: PRDVersionDiffResponse
    TechSpecStepsDashedEnum:
      type: string
      enum:
      - system-architecture
      - data-models
      - user-interface
      - api-specifications
      - interface-specifications
      - integration-points
      - security-considerations
      - tech-user-stories
      - implementation-strategy
      title: TechSpecStepsDashedEnum
      description: All tech spec steps with dashed values.
    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.
    PRDVersionItemWithDiffListResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/PRDVersionItemWithDiffResponse'
          type: array
          title: Results
          description: List of PRD versions
        pagination:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Pagination
      type: object
      required:
      - results
      title: PRDVersionItemWithDiffListResponse
      description: Response model for paginated list of versions for a PRD.
    PRDVersionItemWithDiffResponse:
      properties:
        uid:
          type: string
          title: Uid
        prd_id:
          type: integer
          title: Prd Id
        version_num:
          type: integer
          title: Version Num
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        parent_version_uid:
          anyOf:
          - type: string
          - type: 'null'
          title: Parent Version Uid
        generated_from_commit_sha:
          anyOf:
          - type: string
          - type: 'null'
          title: Generated From Commit Sha
        created_by_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By Id
        created_by_fullname:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By Fullname
        created_at:
          type: string
          format: date-time
          title: Created At
        active_version:
          type: boolean
          title: Active Version
          default: false
        custom_prompt:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Prompt
        changed_sections:
          items:
            type: string
          type: array
          title: Changed Sections
          description: Section names that differ from the previous version in sequence
        languages:
          items:
            $ref: '#/components/schemas/LanguageInfo'
          type: array
          title: Languages
          description: Unique languages used across all sections in this version.
      type: object
      required:
      - uid
      - prd_id
      - version_num
      - created_at
      title: PRDVersionItemWithDiffResponse
      description: 'Subclass the item fields above and add the diff''d sections from the previous version

        in the history of versions.'
    ImportStepsResponse:
      properties:
        steps_created:
          type: integer
          title: Steps Created
        step_names:
          items:
            type: string
          type: array
          title: Step Names
          description: Dashed step names that were created.
      type: object
      required:
      - steps_created
      - step_names
      title: ImportStepsResponse
      description: Response for a successful import-steps call.
    PRDVersionItemListResponse:
      properties:
        results:
          items:
            $ref: '#/components/schemas/PRDVersionItemResponse'
          type: array
          title: Results
          description: List of versions for a given section
        pagination:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Pagination
      type: object
      required:
      - results
      title: PRDVersionItemListResponse
      description: Response model for paginated list of versions for a given section.
    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.
    PRDVersionItemResponse:
      properties:
        uid:
          type: string
          title: Uid
        prd_id:
          type: integer
          title: Prd Id
        version_num:
          type: integer
          title: Version Num
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        parent_version_uid:
          anyOf:
          - type: string
          - type: 'null'
          title: Parent Version Uid
        generated_from_commit_sha:
          anyOf:
          - type: string
          - type: 'null'
          title: Generated From Commit Sha
        created_by_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By Id
        created_by_fullname:
          anyOf:
          - type: string
          - type: 'null'
          title: Created By Fullname
        created_at:
          type: string
          format: date-time
          title: Created At
        active_version:
          type: boolean
          title: Active Version
          default: false
        custom_prompt:
          anyOf:
          - type: string
          - type: 'null'
          title: Custom Prompt
        language:
          anyOf:
          - $ref: '#/components/schemas/LanguageInfo'
          - type: 'null'
      type: object
      required:
      - uid
      - prd_id
      - version_num
      - created_at
      title: PRDVersionItemResponse
    ImportStepsRequest:
      additionalProperties: true
      type: object
      title: ImportStepsRequest
      description: 'Request body for bulk-importing PRD/TechSpec step content.


        Accepts a flat JSON object mapping dashed step names to content.

        Validates that the dict is non-empty and all keys are recognised step names.'
    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
    PRDVersionUpdateRequest:
      properties:
        title:
          anyOf:
          - type: string
            maxLength: 100
          - type: 'null'
          title: Title
          description: New title for this PRD version
      additionalProperties: false
      type: object
      title: PRDVersionUpdateRequest
      description: Allowed updatable fields on a PRD Version.
    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