{"openapi":"3.1.0","info":{"title":"chmod API","version":"1.0.0","description":"A Unix file-permission calculator as an API. Convert a symbolic permission string (rwxr-xr-x) to its octal mode (755) and back, and explain any mode in plain English with a per-class breakdown (owner / group / others, each read / write / execute). Full support for the special bits — setuid (4), setgid (2) and the sticky bit (1) — so 4755 ↔ rwsr-xr-x and 1777 ↔ rwxrwxrwt are handled correctly, including the capital S/T forms. Perfect for Dockerfiles and CI scripts, deployment and provisioning tooling, teaching, and any time you need to double-check a chmod value. Pure local computation — no key, no third-party service, instant. Live, nothing stored. 4 endpoints. Distinct from anything that touches real files or networking.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/chmod-api","description":"oanor gateway"}],"tags":[{"name":"chmod"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/describe":{"get":{"operationId":"get_v1_describe","tags":["chmod"],"summary":"Describe a mode","description":"","parameters":[{"name":"mode","in":"query","required":true,"description":"Octal or symbolic","schema":{"type":"string"},"example":"750"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"human":"Owner: read, write, execute; Group: read, execute; Others: none","octal":"0750","special":{"setgid":false,"setuid":false,"sticky":false},"symbolic":"rwxr-x---","octal_short":"750","permissions":{"group":{"read":true,"write":false,"execute":true},"owner":{"read":true,"write":true,"execute":true},"others":{"read":false,"write":false,"execute":false}}},"meta":{"timestamp":"2026-06-03T01:09:49.217Z","request_id":"d13836b2-4dea-4dea-b875-a499e48524ff"},"status":"ok","message":"Describe a mode","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/to-octal":{"get":{"operationId":"get_v1_to_octal","tags":["chmod"],"summary":"Symbolic to octal","description":"","parameters":[{"name":"symbolic","in":"query","required":true,"description":"e.g. rwxr-xr-x","schema":{"type":"string"},"example":"rwxr-xr-x"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"octal":"0755","symbolic":"rwxr-xr-x","octal_short":"755"},"meta":{"timestamp":"2026-06-03T01:09:49.310Z","request_id":"7e5e7108-4046-48ef-8aff-adcfd58f8ecb"},"status":"ok","message":"Symbolic to octal","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/to-symbolic":{"get":{"operationId":"get_v1_to_symbolic","tags":["chmod"],"summary":"Octal to symbolic","description":"","parameters":[{"name":"octal","in":"query","required":true,"description":"e.g. 755 or 4755","schema":{"type":"string"},"example":"4755"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"octal":"4755","symbolic":"rwsr-xr-x","octal_short":"4755"},"meta":{"timestamp":"2026-06-03T01:09:49.410Z","request_id":"2bdb615d-e9ba-4e05-a281-04de2e724913"},"status":"ok","message":"Octal to symbolic","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"name":"chmod API","notes":"A 4-digit octal sets special bits: 4=setuid, 2=setgid, 1=sticky (e.g. 4755 = rwsr-xr-x, 1777 = rwxrwxrwt).","version":"v1","endpoints":[{"path":"/v1/to-octal","params":{"symbolic":"e.g. rwxr-xr-x (required)"},"returns":"the octal mode"},{"path":"/v1/to-symbolic","params":{"octal":"e.g. 755 or 4755 (required)"},"returns":"the symbolic mode"},{"path":"/v1/describe","params":{"mode":"octal or symbolic (or use octal=/symbolic=)"},"returns":"octal, symbolic, per-class flags, special bits, plain-English"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Unix file-permission calculator — convert between symbolic (rwxr-xr-x) and octal (755) modes, including setuid, setgid and the sticky bit, and explain a mode in plain words. Pure local, no key."},"meta":{"timestamp":"2026-06-03T01:09:49.508Z","request_id":"2feb11d1-f4bb-4a40-9457-0844dcaf5e28"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":720,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":90,"monthly_call_quota":5700,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":1860,"monthly_call_quota":123000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5460,"monthly_call_quota":635000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/chmod-api"}