{
  "components": {},
  "info": {
    "description": "Public same-origin contact and bounded review intake on HTTPS cyberdile.com. Forms never charge, confirm payment, accept scope or start work. PayPal-hosted checkout is separate. Payment and payer authority are checked in the merchant account before scope acceptance.",
    "title": "Cyberdile quote requests",
    "version": "2026.10.12-r44-v1"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/contact-status": {
      "get": {
        "operationId": "contactAvailability",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "available": {
                      "type": "boolean"
                    },
                    "external_mail": {
                      "type": "boolean"
                    },
                    "mode": {
                      "enum": [
                        "preview",
                        "production"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "available",
                    "mode",
                    "external_mail"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Intake status; preview does not send mail."
          }
        },
        "summary": "Check intake availability"
      }
    },
    "/api/quotes": {
      "post": {
        "operationId": "requestWrittenScope",
        "parameters": [
          {
            "in": "header",
            "name": "Origin",
            "required": true,
            "schema": {
              "const": "https://cyberdile.com",
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "description": "Browser-compatible subset of the public quote contract. Reuse unchanged details and the same random idempotency key on a manual retry.",
                "properties": {
                  "budget": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "consent": {
                    "const": true,
                    "type": "boolean"
                  },
                  "email": {
                    "format": "email",
                    "maxLength": 254,
                    "type": "string"
                  },
                  "idempotency_key": {
                    "description": "New random UUID for a new request; reuse exactly on retry",
                    "maxLength": 128,
                    "minLength": 16,
                    "type": "string"
                  },
                  "message": {
                    "maxLength": 4000,
                    "minLength": 20,
                    "type": "string"
                  },
                  "name": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "organization": {
                    "maxLength": 160,
                    "type": "string"
                  },
                  "service": {
                    "enum": [
                      "record-review",
                      "project-intelligence",
                      "assurance-review",
                      "research-desk",
                      "media-brief",
                      "other"
                    ],
                    "type": "string"
                  },
                  "timeline": {
                    "maxLength": 100,
                    "type": "string"
                  }
                },
                "required": [
                  "name",
                  "email",
                  "message",
                  "service",
                  "consent",
                  "idempotency_key"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "charges_money": {
                      "const": false
                    },
                    "currency": {
                      "const": "CAD"
                    },
                    "message": {
                      "type": "string"
                    },
                    "mode": {
                      "enum": [
                        "preview",
                        "production"
                      ],
                      "type": "string"
                    },
                    "ok": {
                      "type": "boolean"
                    },
                    "price": {
                      "type": "null"
                    },
                    "quote_status": {
                      "const": "scope_review_required"
                    },
                    "reference": {
                      "description": "Durable reference to retain for delivery reconciliation.",
                      "type": "string"
                    },
                    "starts_work": {
                      "const": false
                    },
                    "status": {
                      "enum": [
                        "preview",
                        "accepted",
                        "queued",
                        "submitting",
                        "uncertain",
                        "rejected"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "reference",
                    "status",
                    "mode",
                    "message",
                    "charges_money",
                    "starts_work",
                    "price",
                    "currency",
                    "quote_status"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Same idempotent request already retained. Read status and mode."
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "charges_money": {
                      "const": false
                    },
                    "currency": {
                      "const": "CAD"
                    },
                    "message": {
                      "type": "string"
                    },
                    "mode": {
                      "enum": [
                        "preview",
                        "production"
                      ],
                      "type": "string"
                    },
                    "ok": {
                      "type": "boolean"
                    },
                    "price": {
                      "type": "null"
                    },
                    "quote_status": {
                      "const": "scope_review_required"
                    },
                    "reference": {
                      "description": "Durable reference to retain for delivery reconciliation.",
                      "type": "string"
                    },
                    "starts_work": {
                      "const": false
                    },
                    "status": {
                      "enum": [
                        "preview",
                        "accepted",
                        "queued",
                        "submitting",
                        "uncertain",
                        "rejected"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "reference",
                    "status",
                    "mode",
                    "message",
                    "charges_money",
                    "starts_work",
                    "price",
                    "currency",
                    "quote_status"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Request accepted with a durable reference. Read mode and status; preview never sends mail."
          },
          "202": {
            "content": {
              "application/json": {
                "schema": {
                  "properties": {
                    "charges_money": {
                      "const": false
                    },
                    "currency": {
                      "const": "CAD"
                    },
                    "message": {
                      "type": "string"
                    },
                    "mode": {
                      "enum": [
                        "preview",
                        "production"
                      ],
                      "type": "string"
                    },
                    "ok": {
                      "type": "boolean"
                    },
                    "price": {
                      "type": "null"
                    },
                    "quote_status": {
                      "const": "scope_review_required"
                    },
                    "reference": {
                      "description": "Durable reference to retain for delivery reconciliation.",
                      "type": "string"
                    },
                    "starts_work": {
                      "const": false
                    },
                    "status": {
                      "enum": [
                        "preview",
                        "accepted",
                        "queued",
                        "submitting",
                        "uncertain",
                        "rejected"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "ok",
                    "reference",
                    "status",
                    "mode",
                    "message",
                    "charges_money",
                    "starts_work",
                    "price",
                    "currency",
                    "quote_status"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Delivery is unresolved or refused. Preserve reference and request key; do not create another request."
          },
          "400": {
            "description": "Invalid request"
          },
          "403": {
            "description": "Use the exact HTTPS cyberdile.com Host and Origin. The public form does not require a legacy review session."
          },
          "409": {
            "description": "Idempotency key reused with different content"
          },
          "422": {
            "description": "Invalid field or missing consent"
          },
          "429": {
            "description": "Rate limit"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "oneOf": [
                    {
                      "properties": {
                        "charges_money": {
                          "const": false
                        },
                        "currency": {
                          "const": "CAD"
                        },
                        "message": {
                          "type": "string"
                        },
                        "mode": {
                          "enum": [
                            "preview",
                            "production"
                          ],
                          "type": "string"
                        },
                        "ok": {
                          "type": "boolean"
                        },
                        "price": {
                          "type": "null"
                        },
                        "quote_status": {
                          "const": "scope_review_required"
                        },
                        "reference": {
                          "description": "Durable reference to retain for delivery reconciliation.",
                          "type": "string"
                        },
                        "starts_work": {
                          "const": false
                        },
                        "status": {
                          "enum": [
                            "preview",
                            "accepted",
                            "queued",
                            "submitting",
                            "uncertain",
                            "rejected"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "ok",
                        "reference",
                        "status",
                        "mode",
                        "message",
                        "charges_money",
                        "starts_work",
                        "price",
                        "currency",
                        "quote_status"
                      ],
                      "type": "object"
                    },
                    {
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "error": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        },
                        "ok": {
                          "const": false
                        },
                        "status": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "ok"
                      ],
                      "type": "object"
                    }
                  ]
                }
              }
            },
            "description": "Intake unavailable or confirmed-not-sent queued request. If a reference is returned, preserve it and the unchanged request key. Do not assume no record was saved."
          }
        },
        "summary": "Request a written scope and fee"
      }
    },
    "/api/review-intakes": {
      "post": {
        "operationId": "submitFirstRecordReviewIntake",
        "parameters": [
          {
            "in": "header",
            "name": "Origin",
            "required": true,
            "schema": {
              "const": "https://cyberdile.com"
            }
          },
          {
            "description": "Optional duplicate of the required body key; if supplied, both must match.",
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "maxLength": 128,
              "minLength": 16,
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "additionalProperties": false,
                "description": "Browser-compatible subset: body idempotency key is required here. The server also accepts a header-only key; if both are supplied they must match. New intakes require v2 terms. An unchanged v1 key and payload may only replay an already recorded v1 intake; it cannot create a new commission.",
                "properties": {
                  "consent": {
                    "const": true
                  },
                  "email": {
                    "maxLength": 254,
                    "type": "string"
                  },
                  "estimated_pages": {
                    "maximum": 100000,
                    "minimum": 0,
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "idempotency_key": {
                    "maxLength": 128,
                    "minLength": 16,
                    "pattern": "^[A-Za-z0-9_-]{16,128}$",
                    "type": "string"
                  },
                  "name": {
                    "maxLength": 100,
                    "type": "string"
                  },
                  "offer_id": {
                    "const": "cyberdile-first-record-review-v1"
                  },
                  "organization": {
                    "maxLength": 180,
                    "type": "string"
                  },
                  "project": {
                    "maxLength": 180,
                    "type": "string"
                  },
                  "question": {
                    "maxLength": 4000,
                    "type": "string"
                  },
                  "reported_transaction_reference": {
                    "maxLength": 80,
                    "type": "string"
                  },
                  "terms_accepted": {
                    "const": true
                  },
                  "terms_version": {
                    "const": "2026.10.12-first-review-v2"
                  }
                },
                "required": [
                  "name",
                  "email",
                  "project",
                  "question",
                  "consent",
                  "terms_accepted",
                  "offer_id",
                  "terms_version",
                  "idempotency_key"
                ],
                "type": "object"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "description": "Separate intake/mail/payment/scope/refund states. Mail accepted is not payment or scope accepted. No customer or provider fields are returned.",
                  "properties": {
                    "accepted_at": {
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "charges_money": {
                      "const": false
                    },
                    "currency": {
                      "const": "CAD"
                    },
                    "delivery_due_date": {
                      "format": "date",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "intake_status": {
                      "const": "received"
                    },
                    "mail_status": {
                      "enum": [
                        "queued",
                        "submitting",
                        "accepted",
                        "rejected",
                        "uncertain"
                      ]
                    },
                    "message": {
                      "type": "string"
                    },
                    "mode": {
                      "const": "production"
                    },
                    "offer_id": {
                      "const": "cyberdile-first-record-review-v1"
                    },
                    "ok": {
                      "const": true
                    },
                    "payment_status": {
                      "enum": [
                        "awaiting_merchant_confirmation",
                        "merchant_confirmed"
                      ]
                    },
                    "price": {
                      "const": "650.00"
                    },
                    "reference": {
                      "pattern": "^[a-f0-9]{32}$",
                      "type": "string"
                    },
                    "refund_status": {
                      "enum": [
                        "none",
                        "due",
                        "awaiting_payment_confirmation",
                        "merchant_confirmed_refunded"
                      ]
                    },
                    "scope_status": {
                      "enum": [
                        "awaiting_review",
                        "accepted",
                        "declined"
                      ]
                    },
                    "seller": {
                      "const": "1567385 BC Ltd."
                    },
                    "starts_work": {
                      "const": false
                    },
                    "tax": {
                      "const": "0.00"
                    },
                    "terms_version": {
                      "enum": [
                        "2026.10.11-first-review-v1",
                        "2026.10.12-first-review-v2"
                      ]
                    }
                  },
                  "required": [
                    "ok",
                    "reference",
                    "mode",
                    "intake_status",
                    "mail_status",
                    "payment_status",
                    "scope_status",
                    "refund_status",
                    "offer_id",
                    "terms_version",
                    "price",
                    "currency",
                    "tax",
                    "seller",
                    "charges_money",
                    "starts_work",
                    "accepted_at",
                    "delivery_due_date",
                    "message"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Same intake replay; preserve reference."
          },
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": false,
                  "description": "Separate intake/mail/payment/scope/refund states. Mail accepted is not payment or scope accepted. No customer or provider fields are returned.",
                  "properties": {
                    "accepted_at": {
                      "format": "date-time",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "charges_money": {
                      "const": false
                    },
                    "currency": {
                      "const": "CAD"
                    },
                    "delivery_due_date": {
                      "format": "date",
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "intake_status": {
                      "const": "received"
                    },
                    "mail_status": {
                      "enum": [
                        "queued",
                        "submitting",
                        "accepted",
                        "rejected",
                        "uncertain"
                      ]
                    },
                    "message": {
                      "type": "string"
                    },
                    "mode": {
                      "const": "production"
                    },
                    "offer_id": {
                      "const": "cyberdile-first-record-review-v1"
                    },
                    "ok": {
                      "const": true
                    },
                    "payment_status": {
                      "enum": [
                        "awaiting_merchant_confirmation",
                        "merchant_confirmed"
                      ]
                    },
                    "price": {
                      "const": "650.00"
                    },
                    "reference": {
                      "pattern": "^[a-f0-9]{32}$",
                      "type": "string"
                    },
                    "refund_status": {
                      "enum": [
                        "none",
                        "due",
                        "awaiting_payment_confirmation",
                        "merchant_confirmed_refunded"
                      ]
                    },
                    "scope_status": {
                      "enum": [
                        "awaiting_review",
                        "accepted",
                        "declined"
                      ]
                    },
                    "seller": {
                      "const": "1567385 BC Ltd."
                    },
                    "starts_work": {
                      "const": false
                    },
                    "tax": {
                      "const": "0.00"
                    },
                    "terms_version": {
                      "enum": [
                        "2026.10.11-first-review-v1",
                        "2026.10.12-first-review-v2"
                      ]
                    }
                  },
                  "required": [
                    "ok",
                    "reference",
                    "mode",
                    "intake_status",
                    "mail_status",
                    "payment_status",
                    "scope_status",
                    "refund_status",
                    "offer_id",
                    "terms_version",
                    "price",
                    "currency",
                    "tax",
                    "seller",
                    "charges_money",
                    "starts_work",
                    "accepted_at",
                    "delivery_due_date",
                    "message"
                  ],
                  "type": "object"
                }
              }
            },
            "description": "Intake saved; payment and scope still pending."
          },
          "400": {
            "description": "Unsupported or malformed request."
          },
          "403": {
            "description": "Exact Host/Origin required."
          },
          "409": {
            "description": "Changed request details or terms conflict. New requests using superseded terms are refused; existing unchanged requests retain their recorded version."
          },
          "413": {
            "description": "JSON body exceeds 16 KB."
          },
          "415": {
            "description": "JSON media type required."
          },
          "422": {
            "description": "Validation failed."
          },
          "429": {
            "description": "Rate limited."
          },
          "503": {
            "description": "Unavailable or uncertain. Retain the same request key; no automatic retry."
          }
        },
        "summary": "Save a short non-sensitive intake; no charge or scope acceptance"
      }
    }
  },
  "servers": [
    {
      "url": "https://cyberdile.com"
    }
  ],
  "x-runtime-status": {
    "canonical_host": "cyberdile.com",
    "checkout_enabled": true,
    "contact_enabled": true,
    "paid_intake_enabled": true,
    "payment_verification": "Manual trusted merchant and payer-authority confirmation. A browser return or buyer reference is not proof.",
    "release": "2026.10.12-r44-v1"
  }
}
