Theta V API error message for every commands/execute

Hello, I would like to disable the automatic Zenith / Orientation Correction by following this method : Using the THETA Web API without programming (Remote photo app)

And following this :

The state command from the first link work perfectly (with URL

But when I want to start the session with URL with this command :
“name”: “camera.startSession”,
“parameters”: {}

It gives me the Bad Request 400 :
{"error {“code”:“unknownCommand”,“message”:“Command executed is unkown.”}, “name”:“unknown”,“state”:“error”}

At least, I’m getting this message for every command I use with the URL commands/execute

Can you help me ?

you don’t need to start the session with the new API version. Run osc/commands/execute without using startSession prior to it.


Are you using a THETA V?

@jcasman are you going to put the code for concept 3 up on the GitHub repo? That one has a POST with body example. We are waiting for that repo. :slight_smile:

Yes, I’m using a Theta V.

But this command gives me the same error message.
“name”: “camera.takePicture”,
“parameters”: {}

It’s seem the error message appear for every POST command.

Post the full command in this forum

Are you passing the header?

As Il said, i’m following this tuto : Using the THETA Web API without programming (Remote photo app)

And no headers are asked. Plus, I don’t even know exactly how to use headers. Should I try one ?
What does mean “passing the header” ?

Rest of the code :

Basic Request Settings :

Headers :

Body :
Custom Text
{“name”: “camera.takePicture”, “parameters”: {} }

Response :
picture failed with status code 400 (Bad Request).

{“error”:{“code”:“unknownCommand”,“message”:“Command executed is unknown.”},“name”:“unknown”,“state”:“error”}

can you post a screenshot of the app you are using with the setup screen? In particular, the portion that shows the entire command you are sending the camera and any options when you send it. The directions in the article you linked to are for a THETA SC, which uses a different version of the API from the THETA V. So, you unfortunately, can’t follow the tutorial for the THETA SC precisely.

if there is a field to insert the header, it is Content-Type: application/json;utf-8

BTW, is there no way to set the stitching with the official RICOH THETA mobile app?

Here :

I have tried this, but I got this error message :

You can choose if you want the Zenith correction during a video transfert but there is no button to switch the correction for standard pictures…

Can you change Content-Type to application/json;charset=utf-8 NOT text/json.

The request will fail because you need to set the Request Header to application/json;charset=utf-8, NOT text/json.

Sorry, I wrote down the wrong header earlier.


sorry, I forgot the charset=

You can choose if you want the Zenith correction during a video transfert but there is no button to switch the correction for standard pictures…


BTW, what is your use case? Are you taking timelapse?

Also, which is the name of the software you are using? Is it this?

Sorry for the delay of my response… But now I have a new error message !

What should I do about that ?

I’m taking pictures in a structure that isn’t perpendicular to the ground (ground inside the structure isn’t horizontal). The result is a photo where the image appears crooked…

It is “HTTP Request Shortcuts”.

Please confirm that the camera is in still image mode (not video mode) when you send the camera.takePicture

You will need the header when you send the camera.takePicture command.

Is it a series of photos at a single tripod location or a single photo?

The _topBottomCorrection option has a lot of options for images taken in sequence from the same or similar horizon.

Test with Camera in Four Different Orientations

API Used

set to Disapply

        'name': 'camera.setOptions',
        'parameters': {
          'options': {'_topBottomCorrection': 'Disapply'}

It’s working now ! It seems that the headers + the command makes that the Theta can take the photo and disabble the Zenith correction, thanks a lot !

By the way, do you know if it’s possible to send 2 or more commands in one request ?


You can change multiple options at once.
You need to send takePicture as a standalone command.

If you list the commands you want to send, I can provide more info.

If the sequence is this, you need to send two commands:

  1. setOption → _topBottomCorrection → Disapply
  2. takePicture (you cannot combine this with the first step)

If you are trying to do this, you can combine the commands

  1. setOption → _topBottomCorrection → Disapply
  2. setOption → exposureCompensation → 1.0 (you can combine the commands)

Please mark the question as solved so that it makes it easier for other people to find the information about the headers.