{"openapi":"3.1.0","info":{"title":"Al Wasit International: Published Offers & Private Inquiries","version":"1.0.0","description":"Read official published metal offers and submit a private, non-binding inquiry for human owner review. No automatic contracts, publishing, media uploads or private data retrieval. Client configuration and an owner-issued API key are required for writes; this does not register the site with every AI company."},"servers":[{"url":"https://wseet.manus.space"}],"paths":{"/api/ai/v1/offers":{"get":{"operationId":"listPublishedMetalOffers","security":[],"summary":"Read the latest 60 official published offers","description":"Published offers only. Availability and commercial terms must be confirmed by the human broker. This is not acceptance of a contract.","responses":{"200":{"description":"Published offers","content":{"application/json":{"schema":{"type":"object","properties":{"offers":{"type":"array","items":{"$ref":"#/components/schemas/PublishedOffer"}},"snapshotAt":{"type":"string","format":"date-time"},"binding":{"const":false}},"required":["offers","snapshotAt","binding"]}}}},"429":{"description":"Request budget exhausted"},"503":{"description":"Catalog temporarily unavailable"}}}},"/api/ai/v1/requests":{"post":{"operationId":"submitPrivateMetalInquiry","x-openai-isConsequential":true,"summary":"Submit a private inquiry for owner review, not a contract","description":"Receive a plain-text company inquiry for personal human owner review only. No generated replies, negotiation or deal acceptance. Ask the user to confirm submission and sharing company contact details. Company name and at least one valid phone or email are required. Requires an owner-issued integration key, never an owner/Manus secret. Reuse the same Idempotency-Key only with the same JSON payload for retry. No attachments, executable markup, publishing, owner privileges, or reading another inquiry.","security":[{"integrationKey":[]}],"parameters":[{"in":"header","name":"Idempotency-Key","required":true,"schema":{"type":"string","minLength":16,"maxLength":64,"pattern":"^[A-Za-z0-9_-]{16,64}$"},"description":"Unique client-generated key; UUID strings are suitable."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrivateInquiry"}}}},"responses":{"200":{"description":"Idempotent retry: original receipt, no second inquiry or notification","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InquiryReceipt"}}}},"202":{"description":"Inquiry received privately for owner review; not binding","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InquiryReceipt"}}}},"400":{"description":"Invalid JSON, idempotency key, or unknown/privileged fields"},"401":{"description":"Invalid, expired, revoked, or former-owner integration key"},"404":{"description":"Referenced published offer unavailable"},"409":{"description":"Same idempotency key with different payload"},"413":{"description":"JSON larger than 16 KiB"},"429":{"description":"Request/concurrency budget exhausted"},"503":{"description":"Integration temporarily unavailable"}}}}},"components":{"securitySchemes":{"integrationKey":{"type":"http","scheme":"bearer","bearerFormat":"Owner-issued limited integration API key (not a login session)"}},"schemas":{"PublishedOffer":{"type":"object","additionalProperties":false,"required":["id","kind","metal","quantityTons","url"],"properties":{"id":{"type":"integer"},"kind":{"type":"string","enum":["sell","buy"]},"metal":{"type":"string","enum":["iron","ferrous","aluminum","otherMetal"]},"grade":{"type":"string"},"quantityTons":{"type":"number","description":"Metric tons"},"location":{"type":"string"},"terms":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"url":{"type":"string","format":"uri"}}},"PrivateInquiry":{"type":"object","additionalProperties":false,"required":["requestType","metal","weightTons","contactName","companyCountry"],"anyOf":[{"required":["phone"],"properties":{"phone":{"minLength":1}}},{"required":["email"],"properties":{"email":{"minLength":1}}},{"required":["contact"],"properties":{"contact":{"minLength":5}}}],"properties":{"requestType":{"type":"string","enum":["buyRequest","sellRequest"]},"metal":{"type":"string","enum":["iron","ferrous","aluminum","otherMetal"]},"weightTons":{"type":"number","minimum":10000,"maximum":100000000},"grade":{"type":"string","maxLength":300},"location":{"type":"string","maxLength":300},"notes":{"type":"string","maxLength":1800},"contactName":{"type":"string","minLength":2,"maxLength":200,"description":"Required company name"},"companyCountry":{"type":"string","pattern":"^[A-Z]{2}$","description":"Required company registration country. IL, IR and KP are rejected before storage. Declared country is not verified identity; company verification is required before any transaction."},"phoneCountry":{"type":"string","pattern":"^[A-Z]{2}$","description":"ISO country code, e.g. SA. Required to interpret a national phone number."},"phone":{"type":"string","maxLength":40,"description":"Valid national phone with phoneCountry or international number beginning with +"},"email":{"type":"string","maxLength":254,"description":"Valid company email. Phone or email is sufficient; if both supplied, both must be valid."},"contact":{"type":"string","maxLength":300,"description":"Legacy compatibility: one valid email or international phone only; prefer phone and email fields"},"language":{"type":"string","minLength":1,"maxLength":40,"default":"Arabic"},"relatedOfferId":{"type":["integer","null"],"minimum":1,"description":"Optional existing published offer ID"}}},"InquiryReceipt":{"type":"object","additionalProperties":false,"required":["requestId","status","published","binding"],"properties":{"requestId":{"type":"integer"},"status":{"const":"pending_owner_review"},"published":{"const":false},"binding":{"const":false}}}}}}