{
  "openapi": "3.1.0",
  "info": {
    "title": "Droid automation project inquiry",
    "version": "2026-10-23",
    "description": "Request a feasibility review and scoped quote; no selected robot required. Obtain permission before sharing contact and company details. Never send credentials or confidential documents. Acceptance acknowledges the inquiry service, not email delivery, project approval, pricing or a booking. No automatic retries after an uncertain response. Duplicate suppression is best effort within a server instance for 24 hours, not a global exactly-once guarantee."
  },
  "servers": [
    {
      "url": "https://droid.org"
    }
  ],
  "paths": {
    "/api/automation-inquiries": {
      "post": {
        "operationId": "requestDroidAutomationReview",
        "summary": "Send an authorized automation brief directly to Droid",
        "parameters": [
          {
            "in": "header",
            "name": "Idempotency-Key",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-zA-Z0-9_-]{8,128}$"
            },
            "description": "Recommended. Reuse only for the identical body; use a new key for a new inquiry. No automatic retries after uncertain delivery."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "company",
                  "workflow",
                  "consent"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 100
                  },
                  "email": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 254,
                    "format": "email"
                  },
                  "company": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 160
                  },
                  "workflow": {
                    "type": "string",
                    "minLength": 20,
                    "maxLength": 2000
                  },
                  "phone": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 40
                  },
                  "industry": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 120
                  },
                  "location": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 250
                  },
                  "volume": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 300
                  },
                  "baseline": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 600
                  },
                  "outcome": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 600
                  },
                  "environment": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 1200
                  },
                  "systems": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 800
                  },
                  "owner": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 250
                  },
                  "timeline": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 250
                  },
                  "consent": {
                    "type": "boolean",
                    "const": true,
                    "description": "The customer has authorized sending this brief and contact details to Droid for a response."
                  },
                  "submissionId": {
                    "type": "string",
                    "pattern": "^[a-zA-Z0-9_-]{8,128}$",
                    "description": "Optional identifier. Reuse only for the same inquiry."
                  },
                  "companyWebsite": {
                    "type": "string",
                    "maxLength": 0,
                    "description": "Spam-control field; leave empty."
                  }
                },
                "additionalProperties": false
              }
            },
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "company",
                  "workflow",
                  "consent"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 100
                  },
                  "email": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 254,
                    "format": "email"
                  },
                  "company": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 160
                  },
                  "workflow": {
                    "type": "string",
                    "minLength": 20,
                    "maxLength": 2000
                  },
                  "phone": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 40
                  },
                  "industry": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 120
                  },
                  "location": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 250
                  },
                  "volume": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 300
                  },
                  "baseline": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 600
                  },
                  "outcome": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 600
                  },
                  "environment": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 1200
                  },
                  "systems": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 800
                  },
                  "owner": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 250
                  },
                  "timeline": {
                    "type": "string",
                    "minLength": 0,
                    "maxLength": 250
                  },
                  "consent": {
                    "type": "string",
                    "enum": [
                      "on",
                      "true"
                    ]
                  },
                  "submissionId": {
                    "type": "string",
                    "pattern": "^[a-zA-Z0-9_-]{8,128}$",
                    "description": "Optional identifier. Reuse only for the same inquiry."
                  },
                  "companyWebsite": {
                    "type": "string",
                    "maxLength": 0,
                    "description": "Spam-control field; leave empty."
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted by the inquiry service; scope, feasibility, availability and commercial terms remain pending.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "ok",
                    "status",
                    "receipt",
                    "next"
                  ],
                  "properties": {
                    "ok": {
                      "const": true
                    },
                    "status": {
                      "const": "accepted_by_inquiry_service"
                    },
                    "receipt": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "next": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Unreadable or missing request body.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Invalid or cross-site browser origin.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Identifier reused for a different brief.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Body exceeds 20 KB.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "415": {
            "description": "Unsupported format.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Invalid fields or missing permission.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit: at most five new inquiries per minute per IP per instance.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Upstream acceptance unconfirmed. Contact Droid before resending.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Service busy or delivery unconfirmed. No automatic retries.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "properties": {
                    "error": {
                      "type": "string"
                    },
                    "code": {
                      "type": "string"
                    },
                    "fields": {
                      "type": "object",
                      "additionalProperties": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
