11

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

Henrique Gonçalves
  • 1,572
  • 3
  • 16
  • 27

3 Answers3

16

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).
CrandellWS
  • 2,708
  • 5
  • 49
  • 111
Henrique Gonçalves
  • 1,572
  • 3
  • 16
  • 27
2

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.

James K
  • 3,692
  • 1
  • 28
  • 36
sjthespian
  • 21
  • 2
1

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.

Whitecat
  • 3,882
  • 7
  • 48
  • 78