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

# Post submit request



## OpenAPI

````yaml /storage-proofs-api/openapi-storage-proof-api.json post /submit-request
openapi: 3.1.0
info:
  title: Storage Proof API
  description: >-
    Storage Proof API served by Mission Control. Request cryptographic proofs of
    on-chain header, account, and storage data for verification via Satellite
    contracts. Authenticate with the `api-key` header on all endpoints except
    `/is-alive`.
  license:
    name: ''
  version: 0.1.0
servers:
  - url: https://mission-control.api.herodotus.cloud
    description: Production
  - url: https://api.herodotus.cloud
    description: Production alias (Storage Proof API hostname)
security:
  - ApiKeyAuth: []
paths:
  /submit-request:
    post:
      tags:
        - Submit Request
      operationId: submit_request
      requestBody:
        description: Submit user request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UserRequest'
            example:
              data:
                '11155111':
                  block:10197420:
                    accounts:
                      '0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238':
                        slots:
                          - >-
                            0x0000000000000000000000000000000000000000000000000000000000000000
                      '0xEEBC6016539E0bC60D35f527FEfa414794854499':
                        props:
                          - BALANCE
                    header:
                      - STATE_ROOT
                      - TIMESTAMP
              destination_chain_id: '11155420'
              fee: 0
        required: true
      responses:
        '200':
          description: Submit request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitRequestResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '408':
          description: Request timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Unprocessable entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    UserRequest:
      type: object
      required:
        - destination_chain_id
        - data
      properties:
        data:
          $ref: '#/components/schemas/UserRequestData'
        destination_chain_id:
          $ref: '#/components/schemas/ChainId'
        settings:
          $ref: '#/components/schemas/UserRequestSettings'
    SubmitRequestResponse:
      type: object
      required:
        - status
        - request_id
      properties:
        request_id:
          type: string
        status:
          $ref: '#/components/schemas/ResponseStatus'
    ErrorResponse:
      type: object
      required:
        - status
        - error
      properties:
        error:
          type: string
        status:
          $ref: '#/components/schemas/ResponseStatus'
      example:
        error: Something went wrong
        status: error
    UserRequestData:
      type: object
      additionalProperties:
        $ref: '#/components/schemas/UserRequestChainData'
      propertyNames:
        type: string
        enum:
          - '1'
          - '11155111'
          - STARKNET
          - SN_SEPOLIA
          - '10'
          - '11155420'
          - '42161'
          - '421614'
          - '480'
          - '4801'
          - '8453'
          - '84532'
          - '33139'
          - '33111'
          - '300'
    ChainId:
      type: string
      enum:
        - '1'
        - '11155111'
        - STARKNET
        - SN_SEPOLIA
        - '10'
        - '11155420'
        - '42161'
        - '421614'
        - '480'
        - '4801'
        - '8453'
        - '84532'
        - '33139'
        - '33111'
        - '300'
    UserRequestSettings:
      type: object
      required:
        - max_cost
        - max_time
        - optimize
      properties:
        max_cost:
          oneOf:
            - type: number
              format: float
            - type: object
              additionalProperties:
                type: number
                format: float
        max_time:
          oneOf:
            - type: number
              format: float
            - type: object
              additionalProperties:
                type: number
                format: float
        optimize:
          type: string
          enum:
            - Time
            - Cost
    ResponseStatus:
      type: string
      enum:
        - success
        - error
    UserRequestChainData:
      type: object
      required:
        - proving
        - fact_hashes
      properties:
        fact_hashes:
          type: array
          items:
            $ref: '#/components/schemas/FactHash'
        proving:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/RequestedProving'
          propertyNames:
            oneOf:
              - type: object
                required:
                  - Timestamp
                properties:
                  Timestamp:
                    type: integer
                    format: int64
                    minimum: 0
              - type: object
                required:
                  - Block
                properties:
                  Block:
                    $ref: '#/components/schemas/BlockNumber'
              - type: object
                required:
                  - BlockRanges
                properties:
                  BlockRanges:
                    $ref: '#/components/schemas/BlockRanges'
            description: >-
              Must match the following regex:
              /^(?:timestamp:\d+|block:\d+|block_ranges:\d+(-\d+)?(,\d+(-\d+)?)*)$/


              Example: "timestamp:1112470620" or "block:10197420" or
              "block_ranges:10197420-10197421,10197422-10197423"
    FactHash:
      type: object
      required:
        - fact_hash
        - is_mocked
      properties:
        fact_hash:
          type: array
          items:
            type: integer
            format: int32
            minimum: 0
        is_mocked:
          type: boolean
    RequestedProving:
      type: object
      properties:
        accounts:
          type:
            - object
            - 'null'
          additionalProperties:
            $ref: '#/components/schemas/AccountProving'
          propertyNames:
            type: string
        hashing_functions:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/HashingFunction'
          description: >-
            Mmrs with which hashing functions are being requested.

            If user provides header or accounts, hashing functions are set
            automatically,

            but if the user wants other hashing functions, they can be provided
            here.
          uniqueItems: true
        header:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/BlockHeaderField'
    AccountProving:
      type: object
      properties:
        props:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/AccountField'
        slots:
          type:
            - array
            - 'null'
          items:
            type: string
    HashingFunction:
      type: string
      enum:
        - KECCAK
        - POSEIDON
    BlockHeaderField:
      type: string
      enum:
        - ParentHash
        - OmmersHash
        - Beneficiary
        - StateRoot
        - TransactionsRoot
        - ReceiptsRoot
        - LogsBloom
        - Difficulty
        - Number
        - GasLimit
        - GasUsed
        - Timestamp
        - ExtraData
        - MixHash
        - Nonce
    AccountField:
      type: string
      enum:
        - Nonce
        - Balance
        - StorageRoot
        - CodeHash
        - ApeFlags
        - ApeFixed
        - ApeShares
        - ApeDebt
        - ApeDelegate
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: api-key

````