{"openapi":"3.1.0","info":{"title":"Nafarat Developer API","version":"v1","summary":"\u0648\u0627\u062c\u0647\u0629\u064f \u0646\u0641\u0631\u0627\u062a \u0644\u0644\u0646\u0642\u0644 \u0627\u0644\u0639\u0627\u0645\u0651 \u0641\u064a \u0627\u0644\u0639\u0631\u0627\u0642","description":"\u0648\u0627\u062c\u0647\u0629\u064c \u0628\u0631\u0645\u062c\u064a\u0651\u0629\u064c \u0644\u0644\u0646\u0642\u0644 \u0627\u0644\u0639\u0627\u0645\u0651 \u0641\u064a \u0627\u0644\u0639\u0631\u0627\u0642: \u062a\u062e\u0637\u064a\u0637\u064f \u0627\u0644\u0631\u062d\u0644\u0627\u062a \u0648\u0627\u0644\u062e\u0637\u0648\u0637\u064f\n\u0648\u0627\u0644\u0645\u062d\u0637\u0651\u0627\u062a\u064f \u0648\u0627\u0644\u0623\u0645\u0627\u0643\u0646.\n\n**\u062b\u0644\u0627\u062b\u0629\u064f \u0623\u0634\u064a\u0627\u0621 \u062a\u064f\u0642\u0631\u0623 \u0642\u0628\u0644 \u0627\u0644\u0628\u0646\u0627\u0621:**\n\n\u0661) **\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u0644\u064a\u0633\u062a \u062e\u0637\u0623\u064b.** \u0627\u0646\u0639\u062f\u0627\u0645\u064f \u0645\u0633\u0627\u0631\u064d \u064a\u0639\u0648\u062f `200` \u0645\u0639\n   `status: \"no_route_found\"`. \u0627\u0644\u062a\u063a\u0637\u064a\u0629\u064f \u0645\u0639\u0644\u0646\u0629\u064c \u0641\u064a `\/v1\/coverage`\u060c\n   \u0641\u0627\u0646\u0639\u062f\u0627\u0645\u064f \u0627\u0644\u0645\u0633\u0627\u0631 \u0646\u062a\u064a\u062c\u0629\u064c \u062d\u064f\u0633\u0628\u062a \u0644\u0627 \u0639\u0637\u0644 \u2014 \u0648\u062c\u0639\u0644\u064f\u0647 \u062e\u0637\u0623\u064b \u064a\u064f\u0641\u0633\u062f \u0644\u0648\u062d\u0629\u064e\n   \u0627\u0644\u0645\u0631\u0627\u0642\u0628\u0629 \u0639\u0646\u062f\u0643.\n\n\u0662) **\u0627\u0644\u0632\u0645\u0646\u064f \u0641\u064a \u0646\u062a\u0627\u0626\u062c \u0627\u0644\u062a\u0648\u062c\u064a\u0647 \u0645\u0642\u062f\u064e\u0651\u0631\u064c \u0645\u0646 \u0627\u0644\u0645\u0633\u0627\u0641\u0629 \u0644\u0627 \u0645\u0631\u0635\u0648\u062f.** \u0648\u062d\u0642\u0644\u064f\n   `scheduled_time_pct` \u0641\u064a `\/v1\/coverage` \u064a\u0628\u064a\u0651\u0646 \u0643\u0645 \u062e\u0637\u0651\u0627\u064b \u064a\u062d\u0645\u0644 \u0632\u0645\u0646\u0627\u064b\n   \u0645\u0631\u0635\u0648\u062f\u0627\u064b \u0641\u0639\u0644\u0627\u064b \u0641\u064a \u0643\u0644\u0651 \u0645\u062d\u0627\u0641\u0638\u0629. \u0644\u0627 \u062a\u0628\u0646\u0650 \u0648\u0639\u062f\u0627\u064b \u0628\u0645\u0648\u0639\u062f\u0650 \u0648\u0635\u0648\u0644\u064d \u0639\u0644\u064a\u0647.\n\n\u0663) **\u0627\u0644\u0646\u0637\u0627\u0642\u064f \u064a\u064f\u0641\u0631\u064e\u0636 \u0639\u0644\u0649 \u0637\u0631\u0641\u064e\u064a \u0627\u0644\u0637\u0644\u0628.** \u0648\u0642\u062f \u064a\u0639\u0628\u064f\u0631 \u0627\u0644\u0645\u0633\u0627\u0631\u064f \u0645\u062d\u0627\u0641\u0638\u0629\u064b\n   \u063a\u064a\u0631\u064e \u0645\u0634\u062a\u064e\u0631\u0643\u064d \u0628\u0647\u0627 \u0628\u064a\u0646 \u0637\u0631\u0641\u064a\u0646 \u0645\u0634\u062a\u064e\u0631\u0643\u064d \u0628\u0647\u0645\u0627 \u2014 \u0648\u064a\u064f\u0633\u0644\u064e\u0651\u0645 \u0643\u0645\u0627 \u0647\u0648\u060c \u0644\u0623\u0646\n   \u0627\u0642\u062a\u0637\u0627\u0639\u064e\u0647 \u064a\u064f\u0646\u062a\u062c \u0645\u0633\u0627\u0631\u0627\u064b \u0643\u0627\u0630\u0628\u0627\u064b.\n\n**\u0627\u0644\u062d\u062f\u0648\u062f:** \u062a\u0631\u0648\u064a\u0633\u0627\u062a `X-RateLimit-*` \u0648`X-Quota-*` \u0641\u064a \u0643\u0644\u0651 \u0631\u062f\u0651\u060c\n\u0648`X-Request-Id` \u064a\u064f\u0630\u0643\u064e\u0631 \u0641\u064a \u0643\u0644\u0651 \u0628\u0644\u0627\u063a\u0650 \u062f\u0639\u0645.","contact":{"name":"Nafarat","url":"https:\/\/nafarat.app\/developers"}},"servers":[{"url":"https:\/\/nafarat.app","description":"\u0627\u0644\u0625\u0646\u062a\u0627\u062c"}],"tags":[{"name":"routing","description":"\u062a\u062e\u0637\u064a\u0637\u064f \u0627\u0644\u0631\u062d\u0644\u0627\u062a"},{"name":"routes","description":"\u0627\u0644\u062e\u0637\u0648\u0637\u064f \u0648\u062a\u0641\u0627\u0635\u064a\u0644\u064f\u0647\u0627"},{"name":"stations","description":"\u0627\u0644\u0645\u062d\u0637\u0651\u0627\u062a"},{"name":"geocode","description":"\u0627\u0644\u0623\u0645\u0627\u0643\u0646\u064f \u0648\u0627\u0644\u062c\u064a\u0648\u0643\u0648\u062f"},{"name":"coverage","description":"\u0627\u0644\u062a\u063a\u0637\u064a\u0629\u064f \u2014 \u0645\u062c\u0651\u0627\u0646\u064a\u0651\u0629"},{"name":"usage","description":"\u0627\u0644\u0627\u0633\u062a\u0647\u0644\u0627\u0643\u064f \u0648\u0627\u0644\u062d\u0635\u0651\u0629"}],"paths":{"\/v1\/coverage":{"get":{"operationId":"coverage","summary":"Coverage and measured quality per governorate","description":"\u0627\u0644\u062a\u063a\u0637\u064a\u0629\u064f \u0648\u062c\u0648\u062f\u062a\u064f\u0647\u0627 \u0644\u0643\u0644\u0651 \u0645\u062d\u0627\u0641\u0638\u0629","tags":["coverage"],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/data-version":{"get":{"operationId":"data_version","summary":"Current data version fingerprint and its date","description":"\u0628\u0635\u0645\u0629\u064f \u0625\u0635\u062f\u0627\u0631 \u0627\u0644\u0628\u064a\u0627\u0646\u0627\u062a \u0627\u0644\u062d\u0627\u0644\u064a\u0651 \u0648\u062a\u0627\u0631\u064a\u062e\u064f\u0647","tags":["data-version"],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/geocode\/reverse":{"get":{"operationId":"geocode_reverse","summary":"Place name at a coordinate","description":"\u0627\u0633\u0645\u064f \u0627\u0644\u0645\u0643\u0627\u0646 \u0639\u0646\u062f \u0625\u062d\u062f\u0627\u062b\u064a\u0651\u0629","tags":["geocode"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"parameters":[{"name":"lat","in":"query","required":true,"description":"","schema":{"type":"number"}},{"name":"lng","in":"query","required":true,"description":"","schema":{"type":"number"}}],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/geocode\/search":{"get":{"operationId":"geocode_search","summary":"Search places by name","description":"\u0628\u062d\u062b\u064f \u0627\u0644\u0623\u0645\u0627\u0643\u0646 \u0628\u0627\u0644\u0627\u0633\u0645","tags":["geocode"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":true,"description":"\u0627\u0644\u0646\u0635\u064f\u0651 \u0627\u0644\u0645\u0628\u062d\u0648\u062b (\u062d\u0631\u0641\u0627\u0646 \u0641\u0623\u0643\u062b\u0631)","schema":{"type":"string"}},{"name":"near_lat","in":"query","required":false,"description":"\u062a\u0631\u062c\u064a\u062d\u064c \u0628\u0627\u0644\u0642\u0631\u0628 \u2014 \u0645\u0639 near_lng","schema":{"type":"number"}},{"name":"near_lng","in":"query","required":false,"description":"","schema":{"type":"number"}},{"name":"limit","in":"query","required":false,"description":"\u0661\u2013\u0662\u0660 \u00b7 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0661\u0660","schema":{"type":"integer"}}],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/openapi.json":{"get":{"operationId":"openapi","summary":"This specification","description":"\u0647\u0630\u0647 \u0627\u0644\u0645\u0648\u0627\u0635\u0641\u0629","tags":["openapi"],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/routes":{"get":{"operationId":"routes_index","summary":"List routes, filtered by subscription scope","description":"\u0642\u0627\u0626\u0645\u0629\u064f \u0627\u0644\u062e\u0637\u0648\u0637 \u2014 \u0645\u064f\u0631\u0634\u064e\u0651\u062d\u0629\u064c \u0628\u0646\u0637\u0627\u0642 \u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643","tags":["routes"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"parameters":[{"name":"governorate","in":"query","required":false,"description":"\u0627\u0633\u0645\u064f \u0627\u0644\u0645\u062d\u0627\u0641\u0638\u0629","schema":{"type":"string"}},{"name":"vehicle_type","in":"query","required":false,"description":"\u0646\u0648\u0639\u064f \u0627\u0644\u0645\u0631\u0643\u0628\u0629","schema":{"type":"string"}},{"name":"q","in":"query","required":false,"description":"\u0628\u062d\u062b\u064c \u0641\u064a \u0627\u0644\u0627\u0633\u0645","schema":{"type":"string"}},{"name":"page","in":"query","required":false,"description":"\u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0661","schema":{"type":"integer"}},{"name":"per_page","in":"query","required":false,"description":"\u0661\u2013\u0662\u0660\u0660 \u00b7 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0665\u0660","schema":{"type":"integer"}}],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/routes\/{id}":{"get":{"operationId":"routes_show","summary":"Route detail: stations, geometry and fares","description":"\u062a\u0641\u0635\u064a\u0644\u064f \u062e\u0637\u064d\u0651: \u0645\u062d\u0637\u0651\u0627\u062a\u064f\u0647 \u0648\u0647\u0646\u062f\u0633\u062a\u064f\u0647 \u0648\u0623\u062c\u0631\u062a\u064f\u0647","tags":["routes"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"\u0645\u0639\u0631\u0651\u0641\u064f \u0627\u0644\u062e\u0637\u0651","schema":{"type":"integer"}}],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/routing\/plan":{"post":{"operationId":"routing_plan","summary":"Plan a trip between two points","description":"\u062a\u062e\u0637\u064a\u0637\u064f \u0631\u062d\u0644\u0629\u064d \u0628\u064a\u0646 \u0646\u0642\u0637\u062a\u064a\u0646","tags":["routing"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"from":{"type":"object","description":"\u0646\u0642\u0637\u0629\u064f \u0627\u0644\u0627\u0646\u0637\u0644\u0627\u0642 {lat,lng}"},"to":{"type":"object","description":"\u0646\u0642\u0637\u0629\u064f \u0627\u0644\u0648\u0635\u0648\u0644 {lat,lng}"},"priority":{"type":"string","description":"fastest | cheapest | least_walking"},"max_results":{"type":"integer","description":"\u0661\u2013\u0661\u0660 \u00b7 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0663"}},"required":["from","to"]}}}},"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/stations":{"get":{"operationId":"stations_index","summary":"Stations near a point or inside a bounding box","description":"\u0645\u062d\u0637\u0651\u0627\u062a\u064c \u0642\u0631\u0628\u064e \u0646\u0642\u0637\u0629\u064d \u0623\u0648 \u062f\u0627\u062e\u0644\u064e \u0645\u0633\u062a\u0637\u064a\u0644","tags":["stations"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"parameters":[{"name":"lat","in":"query","required":false,"description":"\u0645\u0639 lng \u2014 \u0635\u064a\u063a\u0629\u064f \u0627\u0644\u0642\u0631\u0628","schema":{"type":"number"}},{"name":"lng","in":"query","required":false,"description":"\u0645\u0639 lat","schema":{"type":"number"}},{"name":"radius_km","in":"query","required":false,"description":"\u0660\u066b\u0660\u0665\u2013\u0665 \u00b7 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0661","schema":{"type":"number"}},{"name":"north","in":"query","required":false,"description":"\u0645\u0639 south \u0648east \u0648west \u2014 \u0635\u064a\u063a\u0629\u064f \u0627\u0644\u0645\u0633\u062a\u0637\u064a\u0644","schema":{"type":"number"}},{"name":"south","in":"query","required":false,"description":"","schema":{"type":"number"}},{"name":"east","in":"query","required":false,"description":"","schema":{"type":"number"}},{"name":"west","in":"query","required":false,"description":"","schema":{"type":"number"}},{"name":"limit","in":"query","required":false,"description":"\u0661\u2013\u0663\u0660\u0660 \u00b7 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0661\u0660\u0660","schema":{"type":"integer"}}],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/v1\/usage":{"get":{"operationId":"usage","summary":"Subscription usage and quota \u2014 not counted against the quota","description":"\u0627\u0633\u062a\u0647\u0644\u0627\u0643\u064f \u0627\u0644\u0627\u0634\u062a\u0631\u0627\u0643 \u0648\u062d\u0635\u0651\u062a\u064f\u0647 \u2014 \u0644\u0627 \u064a\u064f\u062d\u0633\u0628 \u0645\u0646 \u0627\u0644\u062d\u0635\u0651\u0629","tags":["usage"],"security":[{"BearerAuth":[]},{"ApiKeyHeader":[]}],"parameters":[{"name":"days","in":"query","required":false,"description":"\u0661\u2013\u0669\u0660 \u00b7 \u0627\u0644\u0627\u0641\u062a\u0631\u0627\u0636 \u0663\u0660","schema":{"type":"integer"}}],"responses":{"200":{"description":"\u0646\u062c\u062d. \u0648\u00ab\u0644\u0627 \u0646\u062a\u064a\u062c\u0629\u00bb \u064a\u0639\u0648\u062f \u0662\u0660\u0660 \u0623\u064a\u0636\u0627\u064b \u0645\u0639 `status` \u064a\u0648\u0636\u0651\u062d \u2014 \u0631\u0627\u062c\u0639 \u0627\u0644\u0648\u0635\u0641 \u0627\u0644\u0639\u0627\u0645\u0651.","content":{"application\/json":{"schema":{"type":"object"}}}},"401":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_key \u00b7 missing_key \u00b7 revoked_key","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"402":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: subscription_inactive","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"403":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: scope_out_of_range","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"404":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: route_not_found","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"422":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: invalid_request","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"429":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_busy \u00b7 quota_exceeded \u00b7 rate_limit_exceeded","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"500":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: engine_error","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"503":{"description":"\u0627\u0644\u0631\u0645\u0648\u0632\u064f \u0627\u0644\u0645\u0645\u0643\u0646\u0629: platform_disabled","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Authorization: Bearer nfr_live_\u2026"},"ApiKeyHeader":{"type":"apiKey","in":"header","name":"X-Nafarat-Key"}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","message_en","request_id"],"properties":{"code":{"type":"string","enum":["missing_key","invalid_key","revoked_key","subscription_inactive","scope_out_of_range","rate_limit_exceeded","quota_exceeded","platform_busy","platform_disabled","route_not_found","invalid_request","engine_error"]},"message":{"type":"string","description":"\u0628\u0627\u0644\u0639\u0631\u0628\u064a\u0651\u0629"},"message_en":{"type":"string"},"doc_url":{"type":"string","format":"uri"},"request_id":{"type":"string","description":"\u064a\u064f\u0630\u0643\u064e\u0631 \u0641\u064a \u0643\u0644\u0651 \u0628\u0644\u0627\u063a\u0650 \u062f\u0639\u0645"}}}}}}}}