Partner Sandbox OpenAPI JSON

Formatted OpenAPI contract for reading and diffing. Integrators should use the interactive reference or raw JSON URL in tooling.

{
  "openapi": "3.0.3",
  "info": {
    "title": "QueryTek Tapestry Partner Sandbox API (Flicker Fox)",
    "version": "1.0.0",
    "description": "Protected Flicker Fox / Temporal Tech sandbox routes for partner SDK self-test and certification evidence. Separate from the production partner-integration subset (P6-002 / P3-014)."
  },
  "servers": [
    {
      "url": "https://tapestry.querytek.io",
      "description": "Main edge runtime"
    }
  ],
  "tags": [
    {
      "name": "flicker-fox-sandbox",
      "description": "Admin-gated sandbox workbench for SDK self-test (SPEC-025)."
    }
  ],
  "paths": {
    "/v1/sandbox/flicker-fox/session/start": {
      "post": {
        "tags": [
          "flicker-fox-sandbox"
        ],
        "operationId": "postSandboxFlickerFoxSessionStart",
        "summary": "Start a protected sandbox session",
        "description": "Creates a sandbox run and session for Flicker Fox certification walkthroughs.",
        "x-tapestry-route-class": "sandbox",
        "parameters": [
          {
            "$ref": "#/components/parameters/SandboxAuthHeader"
          },
          {
            "$ref": "#/components/parameters/CorrelationIdHeader"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxSessionStartRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox session started.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxSessionStartResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalErrorResponse"
          }
        }
      }
    },
    "/v1/sandbox/flicker-fox/job-ads/generate": {
      "post": {
        "tags": [
          "flicker-fox-sandbox"
        ],
        "operationId": "postSandboxFlickerFoxJobAdsGenerate",
        "summary": "Generate a job-ad sandbox artifact",
        "x-tapestry-route-class": "sandbox",
        "parameters": [
          {
            "$ref": "#/components/parameters/SandboxAuthHeader"
          },
          {
            "$ref": "#/components/parameters/CorrelationIdHeader"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxArtifactGenerateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Job-ad artifact generated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxArtifactGenerateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/ConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalErrorResponse"
          }
        }
      }
    },
    "/v1/sandbox/flicker-fox/weather/generate": {
      "post": {
        "tags": [
          "flicker-fox-sandbox"
        ],
        "operationId": "postSandboxFlickerFoxWeatherGenerate",
        "summary": "Generate a weather-report sandbox artifact",
        "x-tapestry-route-class": "sandbox",
        "parameters": [
          {
            "$ref": "#/components/parameters/SandboxAuthHeader"
          },
          {
            "$ref": "#/components/parameters/CorrelationIdHeader"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxArtifactGenerateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Weather artifact generated.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxArtifactGenerateResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/ConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalErrorResponse"
          }
        }
      }
    },
    "/v1/sandbox/flicker-fox/runs/{run_id}": {
      "get": {
        "tags": [
          "flicker-fox-sandbox"
        ],
        "operationId": "getSandboxFlickerFoxRun",
        "summary": "Fetch sandbox run report artifact",
        "x-tapestry-route-class": "sandbox",
        "parameters": [
          {
            "name": "run_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/SandboxAuthHeader"
          },
          {
            "$ref": "#/components/parameters/CorrelationIdHeader"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox run artifact returned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxRunResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalErrorResponse"
          }
        }
      }
    },
    "/v1/sandbox/flicker-fox/runs/{run_id}/return": {
      "post": {
        "tags": [
          "flicker-fox-sandbox"
        ],
        "operationId": "postSandboxFlickerFoxRunReturn",
        "summary": "Complete sandbox run return handoff",
        "x-tapestry-route-class": "sandbox",
        "parameters": [
          {
            "name": "run_id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "$ref": "#/components/parameters/SandboxAuthHeader"
          },
          {
            "$ref": "#/components/parameters/CorrelationIdHeader"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": true
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Return handoff recorded.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxRunReturnResponse"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/UnauthorizedResponse"
          },
          "403": {
            "$ref": "#/components/responses/ForbiddenResponse"
          },
          "404": {
            "$ref": "#/components/responses/NotFoundResponse"
          },
          "409": {
            "$ref": "#/components/responses/ConflictResponse"
          },
          "500": {
            "$ref": "#/components/responses/InternalErrorResponse"
          }
        }
      }
    }
  },
  "components": {
    "parameters": {
      "CorrelationIdHeader": {
        "name": "X-Correlation-Id",
        "in": "header",
        "required": false,
        "schema": {
          "type": "string"
        },
        "description": "Optional caller-provided correlation ID for traceability."
      },
      "SandboxAuthHeader": {
        "name": "X-Sandbox-Auth",
        "in": "header",
        "required": true,
        "schema": {
          "type": "string"
        },
        "description": "Operator-issued sandbox credential (SPEC-041 / SPEC-025)."
      }
    },
    "responses": {
      "BadRequestResponse": {
        "description": "Request is invalid.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        }
      },
      "UnauthorizedResponse": {
        "description": "Sandbox authentication failed.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        }
      },
      "ForbiddenResponse": {
        "description": "Sandbox credential lacks access to the requested run.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        }
      },
      "NotFoundResponse": {
        "description": "Sandbox run or template not found.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        }
      },
      "ConflictResponse": {
        "description": "Sandbox run state does not allow the operation.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        }
      },
      "InternalErrorResponse": {
        "description": "Unhandled platform failure.",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorEnvelope"
            }
          }
        }
      }
    },
    "schemas": {
      "SandboxSessionStartRequest": {
        "type": "object",
        "properties": {
          "origin_partner": {
            "type": "string",
            "description": "Origin partner key for walkthrough context (default extanto_wordpress)."
          }
        },
        "additionalProperties": false
      },
      "SandboxSessionStartResponse": {
        "type": "object",
        "required": [
          "correlation_id",
          "data"
        ],
        "properties": {
          "correlation_id": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "required": [
              "run_id",
              "session_id",
              "partner_key",
              "route_family",
              "status"
            ],
            "properties": {
              "run_id": {
                "type": "string"
              },
              "session_id": {
                "type": "string"
              },
              "partner_key": {
                "type": "string"
              },
              "origin_partner": {
                "type": "string"
              },
              "route_family": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "created_at_utc": {
                "type": "string"
              },
              "assemblies": {
                "type": "object",
                "additionalProperties": true
              },
              "return_handoff": {
                "type": "object",
                "additionalProperties": true
              }
            },
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "SandboxArtifactGenerateRequest": {
        "type": "object",
        "required": [
          "run_id"
        ],
        "properties": {
          "run_id": {
            "type": "string"
          },
          "template_key": {
            "type": "string",
            "description": "Optional template key; deterministic default when omitted."
          }
        },
        "additionalProperties": false
      },
      "SandboxArtifactGenerateResponse": {
        "type": "object",
        "required": [
          "correlation_id",
          "data"
        ],
        "properties": {
          "correlation_id": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "SandboxRunResponse": {
        "type": "object",
        "required": [
          "correlation_id",
          "data"
        ],
        "properties": {
          "correlation_id": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "SandboxRunReturnResponse": {
        "type": "object",
        "required": [
          "correlation_id",
          "data"
        ],
        "properties": {
          "correlation_id": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "ErrorEnvelope": {
        "type": "object",
        "required": [
          "code",
          "message",
          "correlation_id",
          "status"
        ],
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "message_localized": {
            "type": "string"
          },
          "correlation_id": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "details": {
            "type": "object",
            "additionalProperties": true,
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    }
  }
}