{"id":28423551,"url":"https://github.com/ptv-logistics/clients-route-optimization-optiflow-api","last_synced_at":"2026-04-07T14:04:19.972Z","repository":{"id":216081181,"uuid":"740408699","full_name":"ptv-logistics/clients-route-optimization-optiflow-api","owner":"ptv-logistics","description":"Clients for the route optimization optiflow api","archived":false,"fork":false,"pushed_at":"2026-03-16T14:29:11.000Z","size":1812,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-17T02:06:01.067Z","etag":null,"topics":["clients","delivery","last-mile","logistics","pickup-and-delivery","ptv-developer","solver","traveling-salesman-problem","tsp","tsp-solver","vehicle-routing-problem","vrp","vrp-sol"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ptv-logistics.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-08T09:36:18.000Z","updated_at":"2026-03-16T14:29:14.000Z","dependencies_parsed_at":"2024-01-09T14:47:51.999Z","dependency_job_id":"d070453a-694d-4938-a8bb-f9b30fcea849","html_url":"https://github.com/ptv-logistics/clients-route-optimization-optiflow-api","commit_stats":null,"previous_names":["ptv-group/clients-route-optimization-optiflow-api","ptv-logistics/clients-route-optimization-optiflow-api"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/ptv-logistics/clients-route-optimization-optiflow-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptv-logistics%2Fclients-route-optimization-optiflow-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptv-logistics%2Fclients-route-optimization-optiflow-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptv-logistics%2Fclients-route-optimization-optiflow-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptv-logistics%2Fclients-route-optimization-optiflow-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ptv-logistics","download_url":"https://codeload.github.com/ptv-logistics/clients-route-optimization-optiflow-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ptv-logistics%2Fclients-route-optimization-optiflow-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31515153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T03:10:19.677Z","status":"ssl_error","status_checked_at":"2026-04-07T03:10:13.982Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clients","delivery","last-mile","logistics","pickup-and-delivery","ptv-developer","solver","traveling-salesman-problem","tsp","tsp-solver","vehicle-routing-problem","vrp","vrp-sol"],"created_at":"2025-06-05T09:08:53.936Z","updated_at":"2026-04-07T14:04:19.931Z","avatar_url":"https://github.com/ptv-logistics.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Clients for the Route Optimization OptiFlow API\n\nUsing client classes makes it easier and more convenient to integrate the API into an existing programming environment. We provide here clients for Java, C# and TypeScript. Alternatively you can generate the clients yourself by using this [tutorial](https://developer.myptv.com/en/resources/tutorials/general/how-generate-clients-ptv-developer-apis).\n\n\nLanguage depending information:\n* **DotNet:** Please add the following nuget packages to your client project\n  * Please use .NET 8.0\n  * JsonSubTypes (1.8.0)\n  * Polly (7.2.3)\n  * RestSharp (106.13.0)\n  * System.ComponentModel.Annotations (5.0.0)\n  \n  To initialize your client with your APIKey you can use the following snippet:\n    ```\n     var apiKey = new Dictionary\u003cstring, string\u003e(){[\"apiKey\"] = \"Enter your ApiKey here\" };\n     var configuration = new Configuration() { ApiKey = apiKey };\n     PlansApi plansApi = new PlansApi(configuration);\n    ```\n  If your APIKey allows for at least 5000 Orders, before you start a big Optimization in class OptimizationAPI, you may have to compress your payload. For this\n    * set ``` localVarRequestOptions.HeaderParameters.Add(\"Content-Encoding\", \"gzip\"); ```\n    * use compressed data as body of your http request\n      ```\n       MemoryStream memStream1 = new MemoryStream();\n       BinaryFormatter binFormatter = new BinaryFormatter();\n       binFormatter.Serialize(memStream1, optimizationRequest);\n       byte[] data = memStream1.ToArray();\n       MemoryStream memStream2 = new MemoryStream();\n       GZipStream gzStream = new GZipStream(memStream2, CompressionMode.Compress);\n       gzStream.Write(data, 0, data.Length);\n       localVarRequestOptions.Data = memStream2.ToArray();\n      ```\n\n* **Java:** Please add the following dependencies to your project\n  ```   \u003cdependencies\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.fasterxml.jackson.core\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-core\u003c/artifactId\u003e\n            \u003cversion\u003e2.18.3\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.fasterxml.jackson.core\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-annotations\u003c/artifactId\u003e\n            \u003cversion\u003e2.18.3\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.fasterxml.jackson.core\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-databind\u003c/artifactId\u003e\n            \u003cversion\u003e2.18.3\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.fasterxml.jackson.datatype\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-datatype-jsr310\u003c/artifactId\u003e\n            \u003cversion\u003e2.18.3\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003eorg.openapitools\u003c/groupId\u003e\n            \u003cartifactId\u003ejackson-databind-nullable\u003c/artifactId\u003e\n            \u003cversion\u003e0.2.6\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ecom.github.ptv-logistics\u003c/groupId\u003e\n            \u003cartifactId\u003eopenapi-generator-cli\u003c/artifactId\u003e\n            \u003cversion\u003e7.5.0\u003c/version\u003e\n        \u003c/dependency\u003e\n        \u003cdependency\u003e\n            \u003cgroupId\u003ejakarta.ws.rs\u003c/groupId\u003e\n            \u003cartifactId\u003ejakarta.ws.rs-api\u003c/artifactId\u003e\n            \u003cversion\u003e4.0.0\u003c/version\u003e\n        \u003c/dependency\u003e\n  ```       \n   To initialize your client with your APIKey you can use the following snippet:\n    ```\n     ApiClient apiClient = Configuration.getDefaultApiClient()\n       .setRequestInterceptor(builder -\u003e builder.setHeader(\"ApiKey\", \"Enter your ApiKey here\"));\n     PlansApi plansApi = new PlansApi(apiClient);\n    ```\n   If your APIKey allows for at least 5000 Orders, before you start a big Optimization in class OptimizationAPI, you may have to compress your payload. For this\n    * set ``` localVarRequestBuilder.header(\"Content-Encoding\", \"gzip\"); ```\n    * use compressed data as body of your http request\n      ```\n       byte[] localVarPostBody = memberVarObjectMapper.writeValueAsBytes(optimizationRequest);\n       String requested = new String(localVarPostBody, StandardCharsets.UTF_8);\n       ByteArrayOutputStream baOutStream = new ByteArrayOutputStream();\n       GZIPOutputStream gzipOutStream = new GZIPOutputStream(baOutStream);\n       gzipOutStream.write(localVarPostBody, 0, localVarPostBody.length);\n       gzipOutStream.close();\n       byte[] localVarPostBody_1 =  baOutStream.toByteArray();\n      ```\n\n* **TypeScript:** Please add the following dependecies to your project\n  * aurelia-api (3.2.1)\n  * aurelia-fetch-client (1.8.2)\n  * node-fetch (2.6.1)\n  * polly-js (1.8.0)\n  * typescript (4.1.2)\n  * @types/node (18.11.18)\n  * typescript-http-client (0.10.1)\n  \n  \n  To initialize your client with your APIKey you can use the following snippet:\n    ```\n    let configurationParameters: ConfigurationParameters = {fetchApi: require('node-fetch'),\n                                                            headers: {ApiKey: \"Enter your ApiKey here\"}};\n    let configuration: Configuration = new Configuration(configurationParameters);\n    let plansApi: PlansApi = new PlansApi(configuration);\n    ```\n  If your APIKey allows for at least 5000 Orders, before you start a big Optimization in class OptimizationAPI, you may have to compress your payload. For this\n    * set ``` headerParameters['Content-Encoding'] = 'gzip'; ```\n    * use compressed data as body of your http request\n      ```\n       const jsonString = JSON.stringify(requestParameters.optimizationRequest);\n       const data = new TextEncoder().encode(jsonString);\n       const compressedData = await gzipModule.compress(data);\n      ```\n\n \u0026nbsp;  \n \u0026nbsp;  \n Please refer to our [Route Optimization Optiflow API](https://developer.myptv.com/en/documentation/route-optimization-optiflow-api-experimental/quick-start-route-optimization-optiflow) documentation.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptv-logistics%2Fclients-route-optimization-optiflow-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fptv-logistics%2Fclients-route-optimization-optiflow-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fptv-logistics%2Fclients-route-optimization-optiflow-api/lists"}