> ## Documentation Index
> Fetch the complete documentation index at: https://docs.semicola.com/llms.txt
> Use this file to discover all available pages before exploring further.

# One RFP turn



## OpenAPI

````yaml /openapi/storefront.yaml get /api/v2/storefront/rfp-turns/{id}
openapi: 3.1.0
info:
  title: Semicola Exchange storefront API
  version: 2.0.0
  description: >-
    Seller (storefront) endpoints: storefront setup, inventory sources,
    products, AI Business Rules, playbook, demand inbox, proposals, approvals
    and seller reporting.
servers:
  - url: https://api.semicola.com
security:
  - bearerAuth: []
  - sessionCookie: []
tags:
  - name: Storefront
  - name: Inventory Sources
  - name: Products
  - name: Business Rules
  - name: Playbook
  - name: Library
  - name: Demand Inbox
  - name: Proposals
  - name: Approvals
  - name: Creative Reviews
  - name: Media Buys
  - name: Buyers
  - name: Reporting
  - name: Activity
  - name: Test Runs
paths:
  /api/v2/storefront/rfp-turns/{id}:
    get:
      tags:
        - Demand Inbox
      summary: One RFP turn
      operationId: getStorefrontRfpTurnsById
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          id:
                            type: string
                            minLength: 6
                          rfpId:
                            type: string
                            minLength: 5
                          parentTurnId:
                            anyOf:
                              - type: string
                                minLength: 6
                              - type: 'null'
                          index:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          request:
                            type: object
                            properties:
                              brief:
                                type: string
                                minLength: 1
                              budget:
                                type: string
                                pattern: ^-?\d+(\.\d{1,6})?$
                              currency:
                                type: string
                                pattern: ^[A-Z]{3}$
                              flight:
                                type: object
                                properties:
                                  startAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                  endAt:
                                    type: string
                                    format: date-time
                                    pattern: >-
                                      ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                                required:
                                  - startAt
                                  - endAt
                                additionalProperties: false
                              channels:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - display
                                    - olv
                                    - social
                                    - search
                                    - ctv
                                    - linear_tv
                                    - radio
                                    - streaming_audio
                                    - podcast
                                    - dooh
                                    - ooh
                                    - print
                                    - cinema
                                    - email
                                    - gaming
                                    - retail_media
                                    - influencer
                                    - affiliate
                                    - product_placement
                                    - sponsored_intelligence
                              formatKinds:
                                type: array
                                items:
                                  type: string
                                  enum:
                                    - image
                                    - html5
                                    - display_tag
                                    - image_carousel
                                    - video_hosted
                                    - video_vast
                                    - audio_hosted
                                    - audio_daast
                                    - sponsored_placement
                                    - native_in_feed
                                    - responsive_creative
                                    - agent_placement
                                    - custom
                              countries:
                                type: array
                                items:
                                  type: string
                                  pattern: ^[A-Z]{2}$
                              constraints:
                                type: array
                                items:
                                  type: string
                              productCount:
                                type: integer
                                exclusiveMinimum: 0
                                maximum: 9007199254740991
                              planRoles:
                                type: array
                                items:
                                  type: string
                              measurementRequirements:
                                type: array
                                items:
                                  type: string
                              instruction:
                                type: string
                            required:
                              - brief
                            additionalProperties: false
                          state:
                            type: string
                            enum:
                              - queued
                              - processing
                              - ready
                              - passed
                              - needs_clarification
                              - failed
                          response:
                            anyOf:
                              - type: object
                                propertyNames:
                                  type: string
                                additionalProperties: {}
                              - type: 'null'
                          decision:
                            anyOf:
                              - type: object
                                properties:
                                  kind:
                                    type: string
                                    enum:
                                      - pitch
                                      - counter_pitch
                                      - pass
                                      - needs_clarification
                                  summary:
                                    type: string
                                  limitations:
                                    type: array
                                    items:
                                      type: object
                                      properties:
                                        field:
                                          type: string
                                        requested:
                                          type:
                                            - string
                                            - 'null'
                                        supported:
                                          type:
                                            - string
                                            - 'null'
                                        note:
                                          type: string
                                      required:
                                        - field
                                        - requested
                                        - supported
                                        - note
                                      additionalProperties: false
                                  clarifyingQuestions:
                                    type: array
                                    items:
                                      type: string
                                required:
                                  - kind
                                  - summary
                                  - limitations
                                  - clarifyingQuestions
                                additionalProperties: false
                              - type: 'null'
                          failureReason:
                            type:
                              - string
                              - 'null'
                          composer:
                            anyOf:
                              - type: object
                                properties:
                                  model:
                                    type: string
                                  recipeVersion:
                                    type: string
                                required:
                                  - model
                                  - recipeVersion
                                additionalProperties: false
                              - type: 'null'
                          iuCharged:
                            anyOf:
                              - type: string
                                pattern: ^-?\d+(\.\d{1,6})?$
                              - type: 'null'
                          leaseGeneration:
                            type: integer
                            minimum: 0
                            maximum: 9007199254740991
                          createdBy:
                            type: string
                          createdAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                          updatedAt:
                            type: string
                            format: date-time
                            pattern: >-
                              ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$
                        required:
                          - id
                          - rfpId
                          - parentTurnId
                          - index
                          - request
                          - state
                          - response
                          - decision
                          - failureReason
                          - composer
                          - iuCharged
                          - leaseGeneration
                          - createdBy
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      - type: 'null'
                  error:
                    anyOf:
                      - type: object
                        properties:
                          code:
                            type: string
                          message:
                            type: string
                          field:
                            type: string
                          details: {}
                        required:
                          - code
                          - message
                        additionalProperties: false
                      - type: 'null'
                required:
                  - data
                  - error
                additionalProperties: false
        default:
          description: >-
            Error envelope `{data: null, error: {code, message, field?,
            details?}}`.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key or OAuth access token.
    sessionCookie:
      type: apiKey
      in: cookie
      name: sc_session

````