{"openapi":"3.1.0","info":{"title":"RapidLink Agent Delivery API","version":"1.0.0","description":"Create a short-lived RapidLink session and hand its URL to a user."},"servers":[{"url":"https://www.rapidlink.tools"}],"paths":{"/api/v1/deliveries":{"post":{"operationId":"createDelivery","summary":"Deliver text and local files to a user","description":"Returns a shareUrl and a suggestedMessage suitable for the agent response.","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":250000},"file":{"type":"array","maxItems":20,"items":{"type":"string","format":"binary"}},"name":{"type":"string","minLength":3,"maxLength":48},"expirationMinutes":{"type":"integer","enum":[5,15,30,60,360,1440],"default":60},"locale":{"type":"string","enum":["es","en"],"default":"es"},"access":{"type":"string","enum":["link","public"],"default":"link","description":"link requires the secret URL; public also opens by session name."}}}},"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","maxLength":250000},"name":{"type":"string","minLength":3,"maxLength":48},"expirationMinutes":{"type":"integer","enum":[5,15,30,60,360,1440],"default":60},"locale":{"type":"string","enum":["es","en"],"default":"es"},"access":{"type":"string","enum":["link","public"],"default":"link"},"files":{"type":"array","maxItems":20,"items":{"type":"object","required":["filename","contentBase64"],"properties":{"filename":{"type":"string"},"mimeType":{"type":"string"},"contentBase64":{"type":"string","format":"byte"}}}}}}}}},"responses":{"201":{"description":"Delivery created","content":{"application/json":{"schema":{"type":"object","required":["sessionName","shareUrl","expiresAt","suggestedMessage"],"properties":{"sessionName":{"type":"string"},"access":{"type":"string","enum":["link","public"]},"shareUrl":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time"},"suggestedMessage":{"type":"string"}}}}}},"400":{"description":"Invalid or empty delivery"},"401":{"description":"Missing or invalid bearer token"},"413":{"description":"Request exceeds the direct-upload limit"},"422":{"description":"Blocked file type"},"429":{"description":"Rate limited or hourly/daily capacity exhausted"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}}}}