{
  "openapi": "3.1.0",
  "info": {
    "title": "NobleJackal Controlled Interaction Interface",
    "version": "2026.08.26",
    "description": "Controlled human-reviewed intake and protocol routing. Automatic contracting, autonomous commitment and operational access are disabled."
  },
  "servers": [
    {
      "url": "https://noblejackal.com"
    }
  ],
  "paths": {
    "/api/mission-intake.php": {
      "get": {
        "operationId": "issueMissionIntakeChallenge",
        "summary": "Issue a browser verification challenge for the Private Brief",
        "responses": {
          "200": {
            "description": "Browser verification challenge issued"
          },
          "429": {
            "description": "Challenge rate exceeded"
          }
        }
      },
      "post": {
        "operationId": "submitMissionForSeniorReview",
        "summary": "Submit a commercial objective for human review",
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "$ref": "#/components/schemas/MissionInput"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Mission accepted for senior review",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MissionReceipt"
                }
              }
            }
          },
          "403": {
            "description": "Origin, CSRF or browser verification rejected"
          },
          "413": {
            "description": "Request body too large"
          },
          "422": {
            "description": "Mission payload failed validation"
          },
          "429": {
            "description": "Submission rate exceeded"
          },
          "503": {
            "description": "Mail delivery unavailable"
          }
        }
      }
    },
    "/a2a/v1/message:send": {
      "post": {
        "operationId": "sendA2AMessage",
        "summary": "Submit an A2A 1.0 message for capability routing",
        "requestBody": {
          "required": true,
          "content": {
            "application/a2a+json": {
              "schema": {
                "$ref": "#/components/schemas/A2AMessageEnvelope"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A2A task requiring human authorization",
            "content": {
              "application/a2a+json": {
                "schema": {
                  "$ref": "#/components/schemas/A2ATaskResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/A2ATaskResponse"
                }
              }
            }
          }
        }
      }
    },
    "/mcp": {
      "post": {
        "operationId": "mcpRequest",
        "summary": "Read-only MCP discovery and mission routing",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/JsonRpcRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "MCP JSON-RPC response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/JsonRpcResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/authority-diagnostic.php": {
      "post": {
        "operationId": "runPublicAuthorityDiagnostic",
        "summary": "Run the rate-limited public Search and AI Authority Diagnostic",
        "description": "Analyses one public URL. New analyses are limited to one per IP address in each 24-hour window. Results combine Google PageSpeed Insights when available with the disclosed NobleJackal diagnostic methodology.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "url"
                ],
                "properties": {
                  "url": {
                    "type": "string",
                    "format": "uri",
                    "maxLength": 2048
                  },
                  "_hp": {
                    "type": "string",
                    "description": "Honeypot field; legitimate clients leave this empty."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Diagnostic result with target, timestamp, scores, findings and quota metadata"
          },
          "400": {
            "description": "Invalid or unsafe target"
          },
          "429": {
            "description": "Daily per-IP analysis limit reached"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "MissionInput": {
        "type": "object",
        "required": [
          "csrf_token",
          "proof_nonce",
          "request_type",
          "name",
          "organization",
          "email",
          "objective",
          "investment",
          "timing",
          "ongoing",
          "privacy_consent"
        ],
        "properties": {
          "csrf_token": {
            "type": "string",
            "description": "Issued by a same-session GET request to the intake endpoint"
          },
          "proof_nonce": {
            "type": "string",
            "description": "Browser proof-of-work nonce for the issued challenge"
          },
          "request_type": {
            "type": "string",
            "enum": [
              "Project enquiry",
              "Privacy or data rights request",
              "Existing client support"
            ]
          },
          "requested_service": {
            "type": "string",
            "pattern": "^[a-z0-9-]{1,100}$"
          },
          "name": {
            "type": "string",
            "maxLength": 120
          },
          "organization": {
            "type": "string",
            "maxLength": 160
          },
          "role": {
            "type": "string",
            "maxLength": 120
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "website": {
            "type": "string",
            "format": "uri",
            "maxLength": 300
          },
          "objective": {
            "type": "string",
            "maxLength": 3000
          },
          "constraint": {
            "type": "string",
            "maxLength": 3000
          },
          "services": {
            "type": "array",
            "maxItems": 12,
            "items": {
              "type": "string"
            }
          },
          "market": {
            "type": "string",
            "maxLength": 160
          },
          "investment": {
            "type": "string",
            "maxLength": 80
          },
          "timing": {
            "type": "string",
            "maxLength": 80
          },
          "ongoing": {
            "type": "string",
            "maxLength": 80
          },
          "decision_context": {
            "type": "string",
            "maxLength": 1200
          },
          "confidentiality": {
            "type": "string",
            "enum": [
              "nda-requested"
            ]
          },
          "privacy_consent": {
            "type": "string",
            "const": "accepted"
          },
          "locale": {
            "type": "string",
            "enum": [
              "en",
              "tr",
              "de",
              "ar",
              "es",
              "ru"
            ]
          },
          "artifact": {
            "type": "string",
            "format": "binary"
          }
        }
      },
      "MissionReceipt": {
        "type": "object",
        "required": [
          "missionId",
          "status",
          "nextAuthorization",
          "confirmationDelivery",
          "responseWindow"
        ],
        "properties": {
          "missionId": {
            "type": "string"
          },
          "status": {
            "const": "senior_review_pending"
          },
          "nextAuthorization": {
            "const": "human_strategic_review"
          },
          "confirmationDelivery": {
            "type": "string",
            "enum": [
              "accepted",
              "failed"
            ]
          },
          "responseWindow": {
            "const": "one_business_day"
          }
        }
      },
      "A2ATextPart": {
        "type": "object",
        "required": [
          "text"
        ],
        "properties": {
          "text": {
            "type": "string",
            "minLength": 1
          }
        },
        "additionalProperties": true
      },
      "A2AMessage": {
        "type": "object",
        "required": [
          "messageId",
          "role",
          "parts"
        ],
        "properties": {
          "messageId": {
            "type": "string",
            "minLength": 1
          },
          "role": {
            "type": "string",
            "enum": [
              "ROLE_USER",
              "ROLE_AGENT"
            ]
          },
          "parts": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/A2ATextPart"
            }
          }
        },
        "additionalProperties": false
      },
      "A2AMessageEnvelope": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "$ref": "#/components/schemas/A2AMessage"
          }
        },
        "additionalProperties": false
      },
      "A2ATaskResponse": {
        "type": "object",
        "required": [
          "taskState"
        ],
        "properties": {
          "taskId": {
            "type": "string"
          },
          "taskState": {
            "type": "string",
            "enum": [
              "TASK_STATE_SUBMITTED",
              "TASK_STATE_WORKING",
              "TASK_STATE_INPUT_REQUIRED",
              "TASK_STATE_COMPLETED",
              "TASK_STATE_FAILED",
              "TASK_STATE_CANCELED"
            ]
          },
          "requestPersisted": {
            "type": "boolean"
          },
          "nextAuthorization": {
            "type": "string"
          },
          "task": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": true
      },
      "JsonRpcRequest": {
        "type": "object",
        "required": [
          "jsonrpc",
          "method"
        ],
        "properties": {
          "jsonrpc": {
            "type": "string",
            "const": "2.0"
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "method": {
            "type": "string",
            "minLength": 1
          },
          "params": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "additionalProperties": false
      },
      "JsonRpcError": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "data": {}
        },
        "additionalProperties": false
      },
      "JsonRpcResponse": {
        "type": "object",
        "required": [
          "jsonrpc",
          "id"
        ],
        "properties": {
          "jsonrpc": {
            "type": "string",
            "const": "2.0"
          },
          "id": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "result": {},
          "error": {
            "$ref": "#/components/schemas/JsonRpcError"
          }
        },
        "oneOf": [
          {
            "required": [
              "result"
            ]
          },
          {
            "required": [
              "error"
            ]
          }
        ],
        "additionalProperties": false
      }
    }
  },
  "x-noblejackal-governance": {
    "automaticContracting": false,
    "authorization": "Human strategic review required",
    "publicDiscoveryContract": "/public-discovery.openapi.json"
  },
  "releaseId": "NJ-PUBLIC-2026.08.26",
  "releaseVersion": "2026.08.26",
  "factSetId": "NJ-FACTSET-2026.08.26-C42-S7-L6-T1.2.0",
  "release": {
    "schemaVersion": "1.0.0",
    "releaseId": "NJ-PUBLIC-2026.08.26",
    "releaseVersion": "2026.08.26",
    "updated": "2026-08-26",
    "factSetId": "NJ-FACTSET-2026.08.26-C42-S7-L6-T1.2.0",
    "coreSystemCount": 7,
    "canonicalDossierCount": 42,
    "interfaceLanguages": [
      "en",
      "tr",
      "de",
      "ar",
      "es",
      "ru"
    ],
    "commercialTaxonomyVersion": "1.2.0"
  },
  "x-noblejackal-release": {
    "schemaVersion": "1.0.0",
    "releaseId": "NJ-PUBLIC-2026.08.26",
    "releaseVersion": "2026.08.26",
    "updated": "2026-08-26",
    "factSetId": "NJ-FACTSET-2026.08.26-C42-S7-L6-T1.2.0",
    "coreSystemCount": 7,
    "canonicalDossierCount": 42,
    "interfaceLanguages": [
      "en",
      "tr",
      "de",
      "ar",
      "es",
      "ru"
    ],
    "commercialTaxonomyVersion": "1.2.0"
  },
  "updated": "2026-08-26"
}
