# api.heigit.org Directions V2 returns plain nginx HTTP 400, also in official API Playground

**URL:** <https://ask.openrouteservice.org/t/api-heigit-org-directions-v2-returns-plain-nginx-http-400-also-in-official-api-playground/8052>\
**Category:** isochrones\
**Created:** [September 18, 2026, 8:34am UTC](https://ask.openrouteservice.org/t/api-heigit-org-directions-v2-returns-plain-nginx-http-400-also-in-official-api-playground/8052 "2026-09-18T08:34:46Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![mr.kronister](https://ask.openrouteservice.org/letter_avatar_proxy/v4/letter/m/e9c0ed/32.png) [@mr.kronister](https://ask.openrouteservice.org/u/mr.kronister)\
**Post date:** [September 18, 2026, 8:34am UTC](https://ask.openrouteservice.org/t/api-heigit-org-directions-v2-returns-plain-nginx-http-400-also-in-official-api-playground/8052/1 "2026-09-18T08:34:46Z")

</div>

[api.heigit.org](http://api.heigit.org) Directions V2 returns plain nginx HTTP 400,  
Subject:  
[api.heigit.org](http://api.heigit.org) Directions V2 returns plain nginx HTTP 400, including from official API Playground

Hello,

I am currently unable to use the openrouteservice Directions V2 API through [api.heigit.org](http://api.heigit.org).

Account / key status:

- HeiGIT account is active
- API key was created on 18 September 2026
- The key does not expire according to the HeiGIT dashboard
- openrouteservice Directions V2 is enabled
- Remaining Directions V2 quota is approximately 1963/2000
- Rate limit shown in the dashboard: 40 requests/minute
- The dashboard records the requests

Endpoint tested:

POST  
[https://api.heigit.org/openrouteservice/v2/directions/driving-car](https://api.heigit.org/openrouteservice/v2/directions/driving-car)

Authentication:  
Authorization header with the HeiGIT API key

Content-Type:  
application/json

Accept:  
application/json

I first tested a route in Vienna. The response was:

HTTP/1.1 400 Bad Request  
Server: nginx/1.31.0  
Content-Type: text/plain; charset=utf-8

400 Bad Request

I then reproduced the problem using the official ORS example coordinates:

{“coordinates”:[[8.681495,49.41461],[8.686507,49.41943]]}

The result was again:

HTTP/1.1 400 Bad Request  
Server: nginx/1.31.0  
Content-Type: text/plain; charset=utf-8

400 Bad Request

I tested this independently using:

1. Python urllib
2. curl.exe

Both produced the same response.

I also tested:

POST  
[https://api.heigit.org/openrouteservice/v2/directions/driving-car/json](https://api.heigit.org/openrouteservice/v2/directions/driving-car/json)

This also returned the same plain nginx HTTP 400 response.

Most importantly, I can reproduce HTTP 400 directly in the official openrouteservice API Playground while logged into my HeiGIT account and using the provided Directions example.

The Playground displays:

400  
“The request is incorrect and therefore cannot be processed.”

The API key itself is NOT included in this report.

Could you please check whether there is currently an issue with my HeiGIT API key/account, the [api.heigit.org](http://api.heigit.org) gateway, or the Directions V2 service?

The plain text nginx response is particularly confusing because I do not receive the normal structured ORS JSON error response.

Date/time of reproduction:  
18 September 2026  
approximately 04:07–04:40 UTC  
(06:07–06:40 CEST)

Thank you.

---

<div class="post-metadata">

**Author:** ![jschnell](https://ask.openrouteservice.org/user_avatar/ask.openrouteservice.org/jschnell/32/971_2.png) [@jschnell](https://ask.openrouteservice.org/u/jschnell)\
**Post date:** [September 18, 2026, 8:37am UTC](https://ask.openrouteservice.org/t/api-heigit-org-directions-v2-returns-plain-nginx-http-400-also-in-official-api-playground/8052/2 "2026-09-18T08:37:07Z")

</div>

Hey,

I cannot reproduce the HTTP 400 response from the Playground.

Could you please post the exact request you are sending, ideally in cURL-format?  
These issues are notoriously hard to debug, and the more precise you replicate your request, the easier it is to find out what is going on.

The Playground gives you the option to copy the request as cURL directly.  
Please remember to redact your API key 🙂

Best regards

---

<div class="post-metadata">

**Author:** ![mr.kronister](https://ask.openrouteservice.org/letter_avatar_proxy/v4/letter/m/e9c0ed/32.png) [@mr.kronister](https://ask.openrouteservice.org/u/mr.kronister)\
**Post date:** [September 18, 2026, 5:20pm UTC](https://ask.openrouteservice.org/t/api-heigit-org-directions-v2-returns-plain-nginx-http-400-also-in-official-api-playground/8052/3 "2026-09-18T17:20:54Z")

</div>

Thanks for checking.

Here is the exact cURL generated by the official ORS API Playground.  
I only replaced my API key with [REDACTED].

curl -X POST   
‘[https://api.heigit.org/openrouteservice/v2/directions/driving-car](https://api.heigit.org/openrouteservice/v2/directions/driving-car)’   
-H ‘Content-Type: application/json; charset=utf-8’   
-H ‘Accept: application/json, application/geo+json, application/gpx+xml, img/png; charset=utf-8’   
-H ‘Authorization: [REDACTED]’   
-d ‘{“coordinates”:[[8.681495,49.41461],[8.686507,49.41943],[8.687872,49.420318]]}’

This is the example request generated by the Playground itself.

When I execute the request in the official Playground, I receive:

HTTP 400  
400 Bad Request

The response is plain text from nginx rather than the usual structured ORS JSON error response.

The same request also returns HTTP 400 when executed with curl locally.

My API key has Directions V2 enabled and remaining quota.

Thanks for looking into this.

---

<div class="post-metadata">

**Author:** ![jschnell](https://ask.openrouteservice.org/user_avatar/ask.openrouteservice.org/jschnell/32/971_2.png) [@jschnell](https://ask.openrouteservice.org/u/jschnell)\
**Post date:** [September 19, 2026, 7:05am UTC](https://ask.openrouteservice.org/t/api-heigit-org-directions-v2-returns-plain-nginx-http-400-also-in-official-api-playground/8052/4 "2026-09-19T07:05:00Z")

</div>

Hey,

I can neither reproduce this from my local machine nor from the playground or from a separated, unrelated server.

I can only imagine that this might be an issue in your stack, however you connect to the internet.

Best regards
