{"openapi":"3.1.0","info":{"title":"Postify free tools","version":"1.0.0","description":"Free, no-key endpoints behind the tools on usepostify.com. No authentication; 30 requests a minute and 300 a day per address."},"servers":[{"url":"https://usepostify.com"}],"security":[],"tags":[{"name":"Free tools"}],"paths":{"/api/tools/validate-media":{"get":{"operationId":"validateMedia","summary":"Check a video or image against each network's limits","description":"Send the file's metadata, never the file. Returns, per network format, whether its publishing API accepts the file, which rule it breaks and how to fix it. Docs: https://usepostify.com/tools/media-validator","tags":["Free tools"],"security":[],"parameters":[{"name":"type","in":"query","required":false,"schema":{"type":"string"},"description":"The file's MIME type, e.g. video/mp4 or image/jpeg."},{"name":"kind","in":"query","required":false,"schema":{"type":"string"},"description":"image or video; only needed when `type` is not sent."},{"name":"bytes","in":"query","required":false,"schema":{"type":"number"},"description":"File size in bytes."},{"name":"width","in":"query","required":false,"schema":{"type":"number"},"description":"Width in pixels."},{"name":"height","in":"query","required":false,"schema":{"type":"number"},"description":"Height in pixels."},{"name":"duration","in":"query","required":false,"schema":{"type":"number"},"description":"Video length in seconds."},{"name":"fps","in":"query","required":false,"schema":{"type":"number"},"description":"Frame rate (frames per second)."},{"name":"formats","in":"query","required":false,"schema":{"type":"string"},"description":"Comma-separated format ids to check (default: every format of the file's kind): tiktok-video, tiktok-photo, instagram-image, instagram-reel, instagram-story-video, facebook-photo, facebook-reel, linkedin-image, linkedin-video, youtube-short, pinterest-image, pinterest-video, bluesky-image, bluesky-video."}],"responses":{"200":{"description":"One verdict per format. Markdown when the request sends Accept: text/markdown.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateMediaResult"}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}},"post":{"operationId":"validateMediaPost","summary":"Check a video or image (JSON body)","description":"Same check as GET, with the metadata as a JSON object of at most 4096 bytes.","tags":["Free tools"],"security":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"The file's MIME type, e.g. video/mp4 or image/jpeg."},"kind":{"type":"string","description":"image or video; only needed when `type` is not sent."},"bytes":{"type":"number","description":"File size in bytes."},"width":{"type":"number","description":"Width in pixels."},"height":{"type":"number","description":"Height in pixels."},"duration":{"type":"number","description":"Video length in seconds."},"fps":{"type":"number","description":"Frame rate (frames per second)."},"formats":{"type":"array","items":{"type":"string"},"description":"Comma-separated format ids to check (default: every format of the file's kind): tiktok-video, tiktok-photo, instagram-image, instagram-reel, instagram-story-video, facebook-photo, facebook-reel, linkedin-image, linkedin-video, youtube-short, pinterest-image, pinterest-video, bluesky-image, bluesky-video."}}}}}},"responses":{"200":{"description":"One verdict per format.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ValidateMediaResult"}},"text/markdown":{"schema":{"type":"string"}}}},"400":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"413":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"RFC 9457 problem details.","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}}}}},"components":{"schemas":{"Problem":{"type":"object","properties":{"type":{"type":"string"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"}}},"ValidateMediaResult":{"type":"object","properties":{"input":{"type":"object"},"limitsCheckedAt":{"type":"string","format":"date"},"docs":{"type":"string","format":"uri"},"results":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"platform":{"type":"string"},"label":{"type":"string"},"verdict":{"type":"string","enum":["pass","warn","fail"]},"checks":{"type":"array","items":{"type":"object","properties":{"status":{"type":"string","enum":["pass","warn","fail","unknown","info"]},"rule":{"type":"string"},"detail":{"type":"string"},"fix":{"type":"string"},"source":{"type":"object","properties":{"label":{"type":"string"},"url":{"type":"string","format":"uri"},"checked":{"type":"string","format":"date"}}}}}}}}}}}}}}