{"openapi":"3.1.0","info":{"title":"JSON Pointer API","version":"1.0.0","description":"Address values inside a JSON document by JSON Pointer (RFC 6901) — the /a/b/0 path syntax used by JSON Patch (RFC 6902), JSON Schema and OpenAPI $ref. The get endpoint resolves the value at a pointer (and tells you whether it exists); set writes a value at a pointer and returns the modified document (use - as the final array token to append); and list enumerates every pointer in a document, optionally only the leaf values. Token escaping (~0 for ~, ~1 for /) is handled for you. Perfect for surgically reading and patching deep JSON, building config and form tooling, and walking API responses. Pure local computation — no key, no third-party service, instant; up to 2 MB via POST. Live, nothing stored. 4 endpoints. Distinct from JSONPath querying, JSON diff/patch and dot-notation flattening.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/jsonpointer-api","description":"oanor gateway"}],"tags":[{"name":"JSON Pointer"},{"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/get":{"get":{"operationId":"get_v1_get","tags":["JSON Pointer"],"summary":"Resolve a JSON Pointer","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON document","schema":{"type":"string"},"example":"{\"users\":[{\"name\":\"Alice\"},{\"name\":\"Bob\"}],\"meta\":{\"tags\":[\"x\",\"y\"]}}"},{"name":"pointer","in":"query","required":true,"description":"Pointer (e.g. /users/0/name)","schema":{"type":"string"},"example":"/users/0/name"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"found":true,"value":"Alice","pointer":"/users/0/name"},"meta":{"timestamp":"2026-06-03T01:09:45.713Z","request_id":"209cebca-82f6-4322-8e51-d3e7c810ed94"},"status":"ok","message":"Resolve a JSON Pointer","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/list":{"get":{"operationId":"get_v1_list","tags":["JSON Pointer"],"summary":"List all pointers","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON document","schema":{"type":"string"},"example":"{\"users\":[{\"name\":\"Alice\"},{\"name\":\"Bob\"}],\"meta\":{\"tags\":[\"x\",\"y\"]}}"},{"name":"leaves_only","in":"query","required":false,"description":"true to list only scalar values","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"count":10,"pointers":[{"type":"object","pointer":""},{"type":"array","pointer":"/users"},{"type":"object","pointer":"/users/0"},{"type":"string","pointer":"/users/0/name"},{"type":"object","pointer":"/users/1"},{"type":"string","pointer":"/users/1/name"},{"type":"object","pointer":"/meta"},{"type":"array","pointer":"/meta/tags"},{"type":"string","pointer":"/meta/tags/0"},{"type":"string","pointer":"/meta/tags/1"}]},"meta":{"timestamp":"2026-06-03T01:09:45.810Z","request_id":"f6304d90-44b0-4ea6-b2bd-82026c886b61"},"status":"ok","message":"List all pointers","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/set":{"get":{"operationId":"get_v1_set","tags":["JSON Pointer"],"summary":"Set a value at a pointer","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON document","schema":{"type":"string"},"example":"{\"users\":[{\"name\":\"Alice\"},{\"name\":\"Bob\"}],\"meta\":{\"tags\":[\"x\",\"y\"]}}"},{"name":"pointer","in":"query","required":true,"description":"Target pointer","schema":{"type":"string"},"example":"/users/0/name"},{"name":"value","in":"query","required":true,"description":"Value (JSON or string)","schema":{"type":"string"},"example":"\"Alicia\""}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"result":{"meta":{"tags":["x","y"]},"users":[{"name":"Alicia"},{"name":"Bob"}]},"pointer":"/users/0/name"},"meta":{"timestamp":"2026-06-03T01:09:45.909Z","request_id":"79fb1dcb-8c75-4ba1-800b-1d189d77f6c3"},"status":"ok","message":"Set a value at a pointer","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":"JSON Pointer API","notes":"Tokens are escaped per RFC 6901 (~0 = ~, ~1 = /). Use - as the last array token in set to append. Nothing is stored.","version":"v1","endpoints":[{"path":"/v1/get","params":{"json":"the document (required)","pointer":"e.g. /users/0/name (\"\" = whole doc)"},"returns":"the value and whether it was found"},{"path":"/v1/set","params":{"json":"the document (required)","value":"the value (JSON or string)","pointer":"target (required)"},"returns":"the modified document"},{"path":"/v1/list","params":{"json":"the document (required)","leaves_only":"true to list only scalar values"},"returns":"every pointer in the document"},{"path":"/v1/meta","params":[],"returns":"this document"}],"description":"Resolve, set and enumerate values inside a JSON document by JSON Pointer (RFC 6901) — the /a/b/0 path syntax used by JSON Patch, JSON Schema and OpenAPI $ref. Get the value at a pointer, set a value at a pointer (returning the modified document), and list every pointer in a document. Pure local, no key."},"meta":{"timestamp":"2026-06-03T01:09:45.987Z","request_id":"08e71fa5-598a-4f2f-94bd-391b75190685"},"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":1065,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":105,"monthly_call_quota":9050,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2095,"monthly_call_quota":141500,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":5895,"monthly_call_quota":745000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/jsonpointer-api"}