{"openapi":"3.1.0","info":{"title":"Query String API","version":"1.0.0","description":"Parse and build URL query strings — with full support for nested objects and arrays. Turn a query string like a[b][c]=1&tags[]=x&tags[]=y into a clean nested JSON object, and turn any JSON object back into a properly-encoded query string. Choose how arrays are serialised (indices, brackets, repeated keys or comma-separated) and whether to URL-encode. Far beyond a flat key=value encoder — it handles the deep structures real web frameworks (Rails, PHP, Express/qs) use. Pure local processing — no key, no third-party service, instant. Live. 3 endpoints. Built for API request construction, parsing complex links and redirects, form-encoded bodies and webhook payloads.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/querystring-api","description":"oanor gateway"}],"tags":[{"name":"QueryString"},{"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/parse":{"get":{"operationId":"get_v1_parse","tags":["QueryString"],"summary":"Parse a query string to an object","description":"","parameters":[{"name":"query","in":"query","required":true,"description":"Query string (with or without ?)","schema":{"type":"string"},"example":"a[b][c]=1&tags[]=x&tags[]=y"},{"name":"depth","in":"query","required":false,"description":"Max nesting depth (default 5)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"parsed":{"a":{"b":{"c":"1"}},"tags":["x","y"]}},"meta":{"timestamp":"2026-06-02T16:51:54.430Z","request_id":"a61af415-21d6-42eb-85f1-f5f3c0ea9e15"},"status":"ok","message":"Parse a query string","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/stringify":{"get":{"operationId":"get_v1_stringify","tags":["QueryString"],"summary":"Build a query string from an object","description":"","parameters":[{"name":"json","in":"query","required":true,"description":"JSON object","schema":{"type":"string"},"example":"{\"a\":{\"b\":1},\"tags\":[\"x\",\"y\"]}"},{"name":"array_format","in":"query","required":false,"description":"indices|brackets|repeat|comma","schema":{"type":"string"}},{"name":"encode","in":"query","required":false,"description":"false to disable URL-encoding","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"query":"a%5Bb%5D=1&tags%5B0%5D=x&tags%5B1%5D=y"},"meta":{"timestamp":"2026-06-02T16:51:54.506Z","request_id":"b9c4fd82-6e2d-4b81-94ba-5948c54dc4be"},"status":"ok","message":"Build a query string","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":{"auth":"none upstream; this gateway requires x-api-key","name":"Query String API","note":"Parse and build URL query strings with full nested support. /v1/parse?query=a[b][c]=1&x[]=2&x[]=3 returns a nested object (optional ?depth=); /v1/stringify?json={...} builds a query string (options: array_format=indices|brackets|repeat|comma, encode=true|false). Distinct from a flat URL-encoder. Instant, nothing stored.","source":"Local query-string processing (qs) — no key, no upstream","endpoints":3},"meta":{"timestamp":"2026-06-02T16:51:54.587Z","request_id":"4bf35060-1e67-4738-b29b-f917288a8ac3"},"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":1260,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":440,"monthly_call_quota":16000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2400,"monthly_call_quota":158000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6000,"monthly_call_quota":810000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/querystring-api"}