API: /shows/timers{timer_id} documentation

Started by DeltaMikeCharlie, July 29, 2026, 04:13:38 PM

Previous topic - Next topic

DeltaMikeCharlie

Hi Daniel,

Can you please check the API documentation?

http://developer.icetv.com.au/#!/Shows/post_shows_timers_timer_id

The request '/shows/timers{timer_id}' may be missing a '/'.  I think that it should be '/shows/timers/{timer_id}'.

Also, I think that the HTTP request method should be PUT, not POST.

Apologies in advance if I have misread something.

prl

Quote from: DeltaMikeCharlie on July 29, 2026, 04:13:38 PMThe request '/shows/timers{timer_id}' may be missing a '/'.  I think that it should be '/shows/timers/{timer_id}'.

Correct.

Quote from: DeltaMikeCharlie on July 29, 2026, 04:13:38 PMAlso, I think that the HTTP request method should be PUT, not POST.

The Beyonwiz IceTV plugin doesn't use /shows/timers/{timer_id} to download timers from IceTV, but it definitely uses /shows/timers with method GET. It uses POST /shows/timers/{timer_id} when it wants to send a timer that the user has set on the Beyonwiz to the IceTV server (so it show up in the IceTV My Recordings list). So which HTTP method is correct depends on what you want to do.
Peter
Beyonwiz T4 in-use
Beyonwiz T2, T3, T4, U4 & V2 for testing

DeltaMikeCharlie

Quote from: prl on July 29, 2026, 05:07:56 PMSo which HTTP method is correct depends on what you want to do.

OK, I think that you are onto something.

I think that maybe PUT is needed to update an existing record (like changing the status to 'pending', for example) and POST is needed to create a new one.  POST was always failing for me on update.

prl

Quote from: DeltaMikeCharlie on July 29, 2026, 05:27:07 PMI think that maybe PUT is needed to update an existing record (like changing the status to 'pending', for example) and POST is needed to create a new one.  POST was always failing for me on update.

I got myself a bit confused with the code. The IceTV API code doesn't seem to use /shows/timers/{timer_id} to upload timers to the server, it uses POST /shows/timers with the timer id in the data (and despite the "timers" only sends one timer at a time. It also has a PUT method, but it's not used by the upper level code.

It has GET, PUT AND DELETE methods for /shows/timers/{timer_id}, but that's only used to delete and update timers (e.g. when they change status) on the server.
Peter
Beyonwiz T4 in-use
Beyonwiz T2, T3, T4, U4 & V2 for testing

DeltaMikeCharlie

Quote from: prl on July 29, 2026, 05:53:01 PMIt has GET, PUT AND DELETE methods for /shows/timers/{timer_id}, but that's only used to delete and update timers (e.g. when they change status) on the server.

I just managed to dig out some very old Topfield source code and I have the following:

POST = Send a new timer to Ice.
DELETE = Delete an existing timer from Ice.
PUT = Update an existing timer on Ice.

I think that maybe PUT needs to be added to the documentation for clarification.

I don't use GET for timers because they are included by default with an EPG GET request.