Question

I'm trying to create a ticket in osticket through its REST API (https://github.com/osTicket/osTicket-1.7/blob/develop/setup/doc/api/tickets.md)

The problem is /api/tickets.json returns 404. I have it installed in a server on osticket folder (something like http://my.net.work.ip/osticket/api/tickets.json - 404)

Also, I've tried to CURL the server (logged in through ssh), created an APIKey for the server's IP address and had the same response.

What am I missing here? Thank you

Was it helpful?

Solution

So, I had to add http.php after api/ (/api/http.php/tickets.json) and now I can create tickets.

Check http://tmib.net/using-osticket-1812-api. The sample used has this info in the comments.

enter image description here

The two really important parts are on lines 18 and 19.

'url'=>'http://your.domain.tld/api/http.php/tickets.json', // URL to site.tld/api/tickets.json
'key'=>'PUTyourAPIkeyHERE' // API Key goes here
//Edit line 18 to have your URL.
//Edit line 19 by changing "PUTyourAPIkeyHERE" to your API key (aka the "THISISAFAKEAPIKEYHERE!" from earlier).

OTHER TIPS

The piece that seems to be missing from the docs is how to pass the API key. Through a bit of testing and the script mentioned above, I found the X-API-Key header. That means you can create tickets without using a script, you can use curl as easily as:

curl -X POST -H "X-API-Key: 1234567890ABCDEF" -v -d'{"autorespond":false, "source": "API", "name": "Doctor Who", "email":"who@tardis.com", "subject":"Have you seen my Tardis key?", "message":"I have managed to lock myself out of the Tardis, can you send me a spare key?"}' http://support.gallifrey.org/api/tickets.json

This will only work if it is run from the IP address you specified when you created the API key.

Besides changing lines 18 and 19 you need to make sure that you have the correct IP address. You can check that by going to your site here: http://your.domain.tld/support/scp/logs.php

Then look to see if you get the error API Error (401). If you do then look at the IP address and create a new API key for that IP address.

The problem I was facing was I typed in my IPv4 address, but the server was getting my IPv6 address.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top