> ## 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.

# Declare a property under a declared publisher domain (never invents identity)



## OpenAPI

````yaml /openapi/storefront.yaml post /api/v2/storefront/property-roster/properties
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: Publisher Domains
  - 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/property-roster/properties:
    post:
      tags:
        - Publisher Domains
      summary: >-
        Declare a property under a declared publisher domain (never invents
        identity)
      operationId: postStorefrontPropertyRosterProperties
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                domain:
                  type: string
                  minLength: 1
                property:
                  type: object
                  properties:
                    propertyId:
                      type: string
                      minLength: 1
                      maxLength: 200
                    propertyType:
                      type: string
                      minLength: 1
                      maxLength: 64
                    name:
                      type: string
                      minLength: 1
                      maxLength: 200
                    identifiers:
                      maxItems: 20
                      type: array
                      items:
                        type: object
                        properties:
                          type:
                            type: string
                            minLength: 1
                            maxLength: 64
                          value:
                            type: string
                            minLength: 1
                            maxLength: 500
                        required:
                          - type
                          - value
                        additionalProperties: false
                    tags:
                      maxItems: 50
                      type: array
                      items:
                        type: string
                        minLength: 1
                        maxLength: 100
                  additionalProperties: false
              required:
                - domain
                - property
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    anyOf:
                      - type: object
                        properties:
                          outcome:
                            type: string
                            enum:
                              - declared
                              - updated
                              - already_resolved
                          property:
                            type: object
                            properties:
                              propertyKey:
                                type: string
                              propertyId:
                                type:
                                  - string
                                  - 'null'
                              propertyType:
                                type:
                                  - string
                                  - 'null'
                              name:
                                type:
                                  - string
                                  - 'null'
                              identifiers:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    type:
                                      type: string
                                    value:
                                      type: string
                                  required:
                                    - type
                                    - value
                                  additionalProperties: false
                              tags:
                                type: array
                                items:
                                  type: string
                              provenance:
                                type: string
                                enum:
                                  - publisher_adagents
                                  - aao_registry
                                  - seller_declared
                              authorization:
                                type: object
                                properties:
                                  status:
                                    type: string
                                    enum:
                                      - authorized
                                      - unauthorized
                                      - unknown
                                  grain:
                                    type: string
                                    const: domain
                                  reason:
                                    anyOf:
                                      - type: string
                                        enum:
                                          - no_file
                                          - file_invalid
                                          - agent_not_listed
                                          - agent_untyped
                                          - agent_not_property_bound
                                          - authorized
                                      - type: 'null'
                                required:
                                  - status
                                  - grain
                                  - reason
                                additionalProperties: false
                              declaredBySellerAt:
                                type:
                                  - string
                                  - 'null'
                              firstSeenAt:
                                type: string
                              lastSeenAt:
                                type: string
                            required:
                              - propertyKey
                              - propertyId
                              - propertyType
                              - name
                              - identifiers
                              - tags
                              - provenance
                              - authorization
                              - declaredBySellerAt
                              - firstSeenAt
                              - lastSeenAt
                            additionalProperties: false
                        required:
                          - outcome
                          - property
                        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

````