{
    "openapi": "3.0.3",
    "info": {
        "title": "Andre N Brown \u2014 Agent Orders",
        "version": "1.1.0",
        "description": "Order fixed-price consulting services. Unpaid requests receive HTTP 402 with payment instructions (Stripe SPT and/or Tempo USDC when configured). After payment you receive order_token \u2014 send it in X-Order-Token on follow-up requests. Poll GET /agent/v1/orders/{order_id} for notes and deliverable status; download the ZIP when status is completed."
    },
    "servers": [
        {
            "url": "https://andrenbrown.com"
        }
    ],
    "components": {
        "securitySchemes": {
            "OrderToken": {
                "type": "apiKey",
                "in": "header",
                "name": "X-Order-Token"
            }
        }
    },
    "paths": {
        "/agent/v1/skus": {
            "get": {
                "summary": "List available services",
                "responses": {
                    "200": {
                        "description": "Catalog and agreement links"
                    }
                }
            }
        },
        "/agent/v1/orders/{sku}": {
            "post": {
                "summary": "Create an order",
                "parameters": [
                    {
                        "name": "sku",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "buyer_email",
                                    "buyer_name",
                                    "request_id",
                                    "accept_scope",
                                    "accept_terms",
                                    "fulfillment_brief"
                                ],
                                "properties": {
                                    "buyer_email": {
                                        "type": "string",
                                        "format": "email"
                                    },
                                    "buyer_name": {
                                        "type": "string"
                                    },
                                    "request_id": {
                                        "type": "string"
                                    },
                                    "accept_scope": {
                                        "type": "boolean"
                                    },
                                    "accept_terms": {
                                        "type": "boolean"
                                    },
                                    "fulfillment_brief": {
                                        "type": "string",
                                        "minLength": 20,
                                        "maxLength": 2000
                                    },
                                    "notes": {
                                        "type": "string",
                                        "description": "Legacy alias for fulfillment_brief"
                                    },
                                    "organization": {
                                        "type": "string"
                                    },
                                    "callback_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Optional HTTPS webhook for deliverable.ready and note.added"
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "402": {
                        "description": "Payment required (WWW-Authenticate: tempo and/or stripe SPT)"
                    },
                    "200": {
                        "description": "Order accepted; includes order_token"
                    },
                    "400": {
                        "description": "Invalid request"
                    },
                    "503": {
                        "description": "Temporarily not accepting orders"
                    }
                }
            }
        },
        "/agent/v1/orders/{order_id}/status": {
            "get": {
                "summary": "Check order status (legacy polling)",
                "parameters": [
                    {
                        "name": "order_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "token",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Deprecated; prefer X-Order-Token header"
                    },
                    {
                        "name": "X-Order-Token",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Order token from checkout response (order_token). Required on detail, notes, and deliverable routes."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Order status"
                    }
                }
            }
        },
        "/agent/v1/orders/{order_id}": {
            "get": {
                "summary": "Order detail with fulfillment brief, notes, and deliverable metadata",
                "security": [
                    {
                        "OrderToken": []
                    }
                ],
                "parameters": [
                    {
                        "name": "order_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-Order-Token",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Order token from checkout response (order_token). Required on detail, notes, and deliverable routes."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Order detail"
                    }
                }
            }
        },
        "/agent/v1/orders/{order_id}/notes": {
            "post": {
                "summary": "Add a conversation note during fulfillment",
                "security": [
                    {
                        "OrderToken": []
                    }
                ],
                "parameters": [
                    {
                        "name": "order_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-Order-Token",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Order token from checkout response (order_token). Required on detail, notes, and deliverable routes."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "text"
                                ],
                                "properties": {
                                    "text": {
                                        "type": "string",
                                        "maxLength": 2000
                                    }
                                }
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Note added"
                    }
                }
            }
        },
        "/agent/v1/orders/{order_id}/deliverable": {
            "get": {
                "summary": "Download deliverable ZIP when status is completed",
                "security": [
                    {
                        "OrderToken": []
                    }
                ],
                "parameters": [
                    {
                        "name": "order_id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "X-Order-Token",
                        "in": "header",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Order token from checkout response (order_token). Required on detail, notes, and deliverable routes."
                    }
                ],
                "responses": {
                    "200": {
                        "description": "ZIP file"
                    }
                }
            }
        }
    },
    "x-agreement": {
        "statement": "By placing an order with accept_terms=true, the buyer agrees to be bound by the Terms and Conditions and the Commissioned Services Addendum.",
        "required_field": "accept_terms",
        "terms_and_conditions": {
            "name": "Terms and Conditions",
            "version": 1,
            "url": "https://andrenbrown.com/preview/terms/base/ab518cebbdb44c03998de810df998d86"
        },
        "commissioned_services_addendum": {
            "name": "Commissioned Services Addendum",
            "version": 1,
            "url": "https://andrenbrown.com/preview/terms/addendum/357b98d485c84c0d9cf7a24ab65e5bdb"
        }
    }
}