{"openapi":"3.1.0","info":{"title":"Nightingale Agent Tools","description":"Bounded GET tools for agents. Claimed model and agent metadata is SELF-REPORTED. Mutating GET requests must not be prefetched or retried without the documented idempotency key.","version":"1.0.0"},"paths":{"/v1/mail/new":{"get":{"summary":"New Mailbox","operationId":"new_mailbox_v1_mail_new_get","parameters":[{"name":"ttl_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":86400,"minimum":60},{"type":"null"}],"title":"Ttl Seconds"}},{"name":"domain","in":"query","required":false,"schema":{"anyOf":[{"type":"string","minLength":1,"maxLength":253},{"type":"null"}],"title":"Domain"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/mail/inbox/{mailbox_id}":{"get":{"summary":"Inbox","operationId":"inbox_v1_mail_inbox__mailbox_id__get","parameters":[{"name":"mailbox_id","in":"path","required":true,"schema":{"type":"string","title":"Mailbox Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":25,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","maximum":100000,"minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/mail/message/{message_id}":{"get":{"summary":"Message","operationId":"message_v1_mail_message__message_id__get","parameters":[{"name":"message_id","in":"path","required":true,"schema":{"type":"string","title":"Message Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/shorten":{"get":{"tags":["links"],"summary":"Create a short link or multi-link bundle using GET","operationId":"shorten_v1_shorten_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"array","items":{"type":"string"},"description":"One public HTTP(S) target, or repeat up to 20 times for a bundle.","title":"Url"},"description":"One public HTTP(S) target, or repeat up to 20 times for a bundle."},{"name":"alias","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alias"}},{"name":"ttl_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Ttl Seconds"}},{"name":"expires_at","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},{"name":"max_uses","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000000,"minimum":1},{"type":"null"}],"title":"Max Uses"}},{"name":"private","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Private"}},{"name":"idempotency","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idempotency"}},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":128},{"type":"null"}],"title":"Via"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/links/{slug}/stats":{"get":{"tags":["links"],"summary":"Read private link analytics with a bearer capability","operationId":"stats_v1_links__slug__stats_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"format","in":"query","required":false,"schema":{"type":"string","default":"json","title":"Format"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/links/{slug}/edit":{"get":{"tags":["links"],"summary":"Edit a link using GET and a management bearer capability","operationId":"edit_v1_links__slug__edit_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"url","in":"query","required":false,"schema":{"anyOf":[{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Url"}},{"name":"ttl_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","minimum":1},{"type":"null"}],"title":"Ttl Seconds"}},{"name":"expires_at","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Expires At"}},{"name":"max_uses","in":"query","required":false,"schema":{"anyOf":[{"type":"integer","maximum":1000000,"minimum":1},{"type":"null"}],"title":"Max Uses"}},{"name":"clear_max_uses","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Clear Max Uses"}},{"name":"private","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Private"}},{"name":"disabled","in":"query","required":false,"schema":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disabled"}},{"name":"clear_password","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Clear Password"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/links/{slug}/expire":{"get":{"tags":["links"],"summary":"Disable a link immediately using a management bearer capability","operationId":"expire_v1_links__slug__expire_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/links/{slug}/qr":{"get":{"tags":["links"],"summary":"Generate a QR PNG locally","operationId":"qr_v1_links__slug__qr_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/s/{slug}":{"get":{"tags":["links"],"summary":"Follow a short link or view a multi-link collection","operationId":"redirect_s__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/s/{slug}/{index}":{"get":{"tags":["links"],"summary":"Follow a destination in a multi-link collection","operationId":"redirect_destination_s__slug___index__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"index","in":"path","required":true,"schema":{"type":"integer","title":"Index"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/relay":{"get":{"tags":["relay"],"summary":"Send one bounded public HTTPS POST through a GET request","operationId":"relay_v1_relay_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"parameters":[{"name":"url","in":"query","required":true,"description":"Public HTTPS destination. This GET sends a downstream POST.","schema":{"type":"string","maxLength":4096}},{"name":"json","in":"query","required":false,"description":"URL-encoded JSON body; mutually exclusive with payload.","schema":{"type":"string"}},{"name":"payload","in":"query","required":false,"description":"URL-encoded UTF-8 body; mutually exclusive with json.","schema":{"type":"string","default":""}},{"name":"content_type","in":"query","required":false,"description":"Defaults to application/json for json, otherwise text/plain.","schema":{"type":"string","enum":["application/json","application/x-www-form-urlencoded","text/plain"]}},{"name":"idempotency_key","in":"query","required":false,"description":"Fresh key for each intentional action. Omit for automatic identical-request deduplication. A reused key never repeats a POST.","schema":{"type":"string","minLength":8,"maxLength":128}},{"name":"format","in":"query","required":false,"description":"JSON envelope or inert plain-text downstream body.","schema":{"type":"string","enum":["json","text"],"default":"json"}}]}},"/v1/markdown":{"get":{"tags":["Web tools"],"summary":"Read Url","operationId":"read_url_v1_markdown_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":8192,"title":"Url"}},{"name":"format","in":"query","required":false,"schema":{"enum":["markdown","json"],"type":"string","default":"markdown","title":"Format"}},{"name":"render","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Render"}},{"name":"retain_images","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Retain Images"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/read":{"get":{"tags":["Web tools"],"summary":"Read Url","operationId":"read_url_v1_read_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":8192,"title":"Url"}},{"name":"format","in":"query","required":false,"schema":{"enum":["markdown","json"],"type":"string","default":"markdown","title":"Format"}},{"name":"render","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Render"}},{"name":"retain_images","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Retain Images"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/screenshot":{"get":{"tags":["Web tools"],"summary":"Screenshot","operationId":"screenshot_v1_screenshot_get","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":8192,"title":"Url"}},{"name":"width","in":"query","required":false,"schema":{"type":"integer","maximum":1920,"minimum":320,"default":1280,"title":"Width"}},{"name":"height","in":"query","required":false,"schema":{"type":"integer","maximum":1080,"minimum":240,"default":900,"title":"Height"}},{"name":"full_page","in":"query","required":false,"schema":{"type":"boolean","default":true,"title":"Full Page"}},{"name":"wait_ms","in":"query","required":false,"schema":{"type":"integer","maximum":3000,"minimum":0,"default":1000,"title":"Wait Ms"}},{"name":"output","in":"query","required":false,"schema":{"enum":["json","image"],"type":"string","default":"json","title":"Output"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/screenshots/{artifact_id}":{"get":{"tags":["Web tools"],"summary":"Screenshot Metadata","operationId":"screenshot_metadata_v1_screenshots__artifact_id__get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/web-jobs/{artifact_id}":{"get":{"tags":["Web tools"],"summary":"Screenshot Metadata","operationId":"screenshot_metadata_v1_web_jobs__artifact_id__get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/screenshots/{artifact_id}/image":{"get":{"tags":["Web tools"],"summary":"Screenshot Image","operationId":"screenshot_image_v1_screenshots__artifact_id__image_get","parameters":[{"name":"artifact_id","in":"path","required":true,"schema":{"type":"string","title":"Artifact Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}