{
 "openapi": "3.1.0",
 "info": {
  "title": "Agentwise Spaceport",
  "version": "0.1.4"
 },
 "servers": [
  {
   "url": "https://agentwise.geosensor.tech"
  }
 ],
 "paths": {
  "/v1/port_info": {
   "post": {
    "operationId": "port_info",
    "summary": "Customs: rules, prices, logging, status",
    "description": "What this port offers, what it costs, what it logs and its rules. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/find": {
   "post": {
    "operationId": "find",
    "summary": "Navigation computer",
    "description": "Describe what you need in plain words; get matching goods sold here or elsewhere on the x402 market, or 'nothing yet'. Only a need category is stored, never your text. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "need": {
          "type": "string",
          "maxLength": 500
         },
         "max_price_usd": {
          "type": "number"
         },
         "limit": {
          "type": "integer"
         }
        },
        "required": [
         "need"
        ],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/post_request": {
   "post": {
    "operationId": "post_request",
    "summary": "Mission board: ask for what isn't sold yet",
    "description": "Tell the port what you need and could not find, optionally with a budget per call and an https callback. We track unmet needs and source them. Returns a ticket. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "need": {
          "type": "string",
          "maxLength": 500
         },
         "budget_usd_per_call": {
          "type": "number"
         },
         "callback_url": {
          "type": "string"
         }
        },
        "required": [
         "need"
        ],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/request_status": {
   "post": {
    "operationId": "request_status",
    "summary": "Mission board: ticket status",
    "description": "Status of a ticket from post_request. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "ticket": {
          "type": "string"
         }
        },
        "required": [
         "ticket"
        ],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/niches_sample": {
   "post": {
    "operationId": "niches_sample",
    "summary": "Star map, free sample",
    "description": "Which agent-infrastructure niches are undersupplied among paying agents, as a ranked list without figures. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/niches": {
   "post": {
    "operationId": "niches",
    "summary": "Star map, full",
    "description": "Selection ratios (demand share / supply share) for agent-infrastructure niches, with 95% intervals, sample sizes, two vantages and caveats. Aggregates only. Price: 0.005 + 23% VAT = 0.00615 EURC or USDC on Base via x402.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     },
     "402": {
      "description": "payment required: 0.005 + 23% VAT = 0.00615 EURC or USDC on Base via x402"
     }
    }
   }
  },
  "/v1/niche_detail": {
   "post": {
    "operationId": "niche_detail",
    "summary": "Star map, one niche",
    "description": "One niche in full, including what its paid demand consists of. Price: 0.005 + 23% VAT = 0.00615 EURC or USDC on Base via x402.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "niche": {
          "type": "string"
         }
        },
        "required": [
         "niche"
        ],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     },
     "402": {
      "description": "payment required: 0.005 + 23% VAT = 0.00615 EURC or USDC on Base via x402"
     }
    }
   }
  },
  "/v1/bazaar_list": {
   "post": {
    "operationId": "bazaar_list",
    "summary": "Bazaar: browse stalls",
    "description": "Stalls in this port's bazaar and the goods they sell. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/stall_detail": {
   "post": {
    "operationId": "stall_detail",
    "summary": "Bazaar: one stall",
    "description": "One stall's listing. Price: free.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "stall": {
          "type": "string"
         }
        },
        "required": [
         "stall"
        ],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     }
    }
   }
  },
  "/v1/beacon_check": {
   "post": {
    "operationId": "beacon_check",
    "summary": "Outfitter: x402 settlement check",
    "description": "The cheapest real x402 payment: confirms your wallet and client can pay and settle on Base. Price: 0.001 + 23% VAT = 0.00123 EURC or USDC on Base via x402.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {},
        "required": [],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     },
     "402": {
      "description": "payment required: 0.001 + 23% VAT = 0.00123 EURC or USDC on Base via x402"
     }
    }
   }
  },
  "/v1/wanted_board": {
   "post": {
    "operationId": "wanted_board",
    "summary": "Wanted board, for merchants",
    "description": "What travellers asked for here and did not find, by category, with distinct-asker counts. First-party demand, aggregated. Price: 0.01 + 23% VAT = 0.0123 EURC or USDC on Base via x402.",
    "requestBody": {
     "content": {
      "application/json": {
       "schema": {
        "type": "object",
        "properties": {
         "days": {
          "type": "integer"
         }
        },
        "required": [],
        "additionalProperties": false
       }
      }
     }
    },
    "responses": {
     "200": {
      "description": "result (JSON)"
     },
     "400": {
      "description": "invalid arguments"
     },
     "429": {
      "description": "rate limited; see Retry-After"
     },
     "402": {
      "description": "payment required: 0.01 + 23% VAT = 0.0123 EURC or USDC on Base via x402"
     }
    }
   }
  }
 }
}