Genymotion SaaS Public HTTP API (2.0.0)

Download OpenAPI specification:Download

Genymotion SaaS Team: [email protected] URL: https://cloud.geny.io/

Genymotion SaaS user documentation can be found at docs.genymotion.com/saas.

This HTTP API allows you to manage Genymotion SaaS virtual devices.

There are 3 main concepts in this API. All of them must be understood in order to able to use the it efficiently.

The first concept is Authentication. An API token or JWT (JSON Web Token) must be used to authenticate the API calls. The authentication endpoint itself does not accept an API token or JWT. In the Genymotion SaaS Public HTTP API, all endpoints other than the authentication endpoint accept either API token or JWT authentication.

For endpoints requiring authentication, exactly one of the API token or the JWT must be provided. If neither are provided, the API call will return a 401 Unauthorized HTTP error. If both are provided, the API call will return a 400 Bad Request HTTP error.

The details of each authentication scheme are provided below, in Authentication.

The second concept is the Recipe. A Recipe is what is needed to cook an Instance. This Recipe contains the information about the Android system, the virtual device characteristics, and some contextual data. Genymobile provides a variety of default Recipes, but you can create and share new ones from either the Genymotion SaaS Portal or from the Genymotion Desktop software (license required).

The third concept is the Instance. An Instance represents a Genymotion Virtual Device running in the Cloud. Built using the information contained in a Recipe, an Instance can be accessed using a wide variety of tools. The current API allows you to start and stop disposable Instances. A disposable Instance will always be recreated from the Recipe when a start request is sent. When a stop request is sent, the virtual device Instance will be destroyed, and any modifications done inside it during the run time will be lost.

Authentication

ApiToken

x-api-token HTTP header, with the api-token as the value.

API tokens may be created in the Genymotion SaaS Portal.

Providing an invalid API token will result in a 401 Unauthorized HTTP error.

Providing an API token on an endpoint which does not support API token authentication will result in a 403 Forbidden HTTP error.

Providing both an API token and a JWT Authorization will result in a 400 Bad Request HTTP error.

Security scheme type: API Key
Header parameter name: x-api-token

Bearer

Authorization HTTP header, with Bearer <JWT> content format, for authentication mechanism.

Use the Authenticate User endpoint to obtain a JWT.

Providing an invalid/expired JWT will result in a 401 Unauthorized HTTP error.

Providing both a JWT Authorization and an API token will result in a 400 Bad Request HTTP error.

Security scheme type: API Key
Header parameter name: Authorization

Users v1

Authenticate User

Authenticate a User, and retreive a new valid JWT. This JWT must be provided to all other API calls in order to identify and authenticate the User executing the request.

Once logged in, simply add the Authorization HTTP header to all subsequents API calls. Authorization HTTP header value must have the following format: Bearer <JWT>.

A JWT will expire after some time. The default validity duration is 48 hours. It is recommended to generate a new one before running a new set of API calls. Generating a new JWT will not invalidate previously generated JWTs.

Request Body schema: application/json

Data used to log User

email
required
string <email>

Email address

password
required
string <password>

User password

Responses

200

User profile and JWT

401

The email/password combination is incorrect.

403

User is not enabled.

default

Cannot log in user.

post /v1/users/login
https://api.geny.io/cloud/v1/users/login

Request samples

application/json
Copy
Expand all Collapse all
{}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "token": "string",
  • "user":
    {
    }
}

Recipes v1

List Recipes

List all ready Recipes available for the authenticated User. This endpoint returns 3 lists of Recipes:

  • Bases Recipes, the default Recipes, provided by Genymobile and always available to all Users
  • User Recipes, Recipes shared to any other User by the currently authenticated User
  • Shared Recipes, Recipes shared by any other User to the currently authenticated User
Authorizations:

Responses

200

List of Recipes

default

Cannot list recipes.

get /v1/recipes
https://api.geny.io/cloud/v1/recipes

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/recipes

Response samples

application/json
Copy
Expand all Collapse all
{
  • "base":
    [
    ],
  • "user":
    [
    ],
  • "shared":
    [
    ]
}

Create a new recipe

This endpoint creates a new recipe from the input parameters.

Authorizations:
Request Body schema: application/json
hardware_profile_uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Resource unique identifier

os_image_uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Resource unique identifier

parent_recipe_uuid
string <uuid> Nullable ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Resource unique identifier

name
required
string Nullable

Recipe name

description
string

Recipe description

Responses

201

The created recipe.

400

Wrong parameters.

401

Not authorized.

403

Not allowed.

500

Service Failed.

post /v1/recipes
https://api.geny.io/cloud/v1/recipes

Request samples

application/json
Copy
Expand all Collapse all
{
  • "hardware_profile_uuid": "string",
  • "os_image_uuid": "string",
  • "parent_recipe_uuid": "string",
  • "name": "string",
  • "description": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "parent_recipe_uuid": "string",
  • "uuid": "string",
  • "hardware_profile":
    {
    },
  • "os_image":
    {
    },
  • "name": "string",
  • "is_official": true,
  • "owner":
    {
    },
  • "description": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "status": "CREATING"
}

Delete Recipe identified by its uuid

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the recipe to retrieve

Request Body schema: application/json
delete_hardware_profile
boolean
Default: false

Define if we delete the recipe hardware profile.

delete_os_image
boolean
Default: false

Define if we delete the recipe OS image.

Responses

204

Recipe is successfully removed.

400

Wrong parameters.

401

Not authorized.

403

The user is not allowed to delete this recipe.

404

Recipe not found.

500

Service Failed.

delete /v1/recipes/{uuid}
https://api.geny.io/cloud/v1/recipes/{uuid}

Request samples

application/json
Copy
Expand all Collapse all
{
  • "delete_hardware_profile": false,
  • "delete_os_image": false
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string"
}

Recipes v2

List Recipes (paginated)

List all Recipes available for the authenticated User.

This endpoint returns a paginated list of all Recipes.

Authorizations:
query Parameters
source
string
Default: "all"
Enum:"all" "official" "owner" "sharee" "shared"

Filter by Recipe source.

Options are:

  • official: Recipes provided by Genymotion, available to everyone
  • owner: Recipes created by authenticated User
  • sharee: Recipes shared to authenticated User or their Organization
  • shared: combination of owner & sharee
  • all: combination of official & shared
status
string
Default: "all"
Enum:"all" "ready" "updating"

Filter by Recipe status.

Options are:

  • ready: Recipes you can use to start an Instance with
  • updating: Recipes currently being updating (cannot be used to start an Instance yet)
  • all: combination of ready & updating
type
string
Default: "system"
Enum:"system" "app" "all"

Filter by Recipe type.

Options are:

  • system: Recipes based on a full-fledged system
  • app: Recipes based on an Android application (APK)
  • all: combination of system & app

Responses

200

Paginated list of Recipes

default

Cannot list recipes.

get /v2/recipes
https://api.geny.io/cloud/v2/recipes

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v2/recipes

Response samples

application/json
Copy
Expand all Collapse all
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "results":
    [
    ]
}

Recipes v3

List Recipes

List all is official Recipes and Recipes of the current user.

Authorizations:
query Parameters
source
string
Default: "all"
Enum:"all" "official" "shared"

Filter by Recipe source. Options are:

  • official: Recipes provided by Genymotion, available to everyone
  • shared: combination of recipes :
    • created by the authenticated User
    • shared to authenticated User or their Organization
  • all: combination of official & shared
search
string

Search term to search on name or uuid attributes.

page
integer

Page to fetch

page_size
integer
Default: 30

Number of recipes per page

Responses

200

A list containing all official and related to the user recipes.

401

Not authorized.

500

Service Failed.

get /v3/recipes/
https://api.geny.io/cloud/v3/recipes/

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v3/recipes/

Response samples

application/json
Copy
Expand all Collapse all
{
  • "count": 0,
  • "results":
    [
    ]
}

Instances v1

Start disposable Instance

Start a new disposable Instance from the given Recipe identified by its Uuid.

The Instance is disposable, meaning that all changes done inside it will be lost after the Instance is stopped.

The state of the Instance returned by this call will always be CREATING.

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the resource

Request Body schema: application/json

Data used to start new disposable Instance

instance_name
required
string

Name of the Instance. This name must be unique per User.

rename_on_conflict
boolean
Default: false

In case a virtual device already exist with the same name, allow the Platform to rename the Instance with a new, unique, name. New name will look like instance_name followed by some characters generated by the Platform.

stop_when_inactive
boolean
Default: false

DEPRECATED. Use timeouts.inactivity instead.

automatic_release
object

DEPRECATED. Use timeouts instead.

timeouts
object

Various customizable timeouts for the Instance.

Responses

201

The creating Instance

400

An instance with the same name already exist for user.

403

Not allowed to start an instance.

404

The given recipe cannot be found, or no slots are available on the platform.

default

Cannot start disposable instance.

post /v1/recipes/{uuid}/start-disposable
https://api.geny.io/cloud/v1/recipes/{uuid}/start-disposable

Request samples

application/json
Copy
Expand all Collapse all
{
  • "instance_name": "string",
  • "rename_on_conflict": false,
  • "stop_when_inactive": false,
  • "automatic_release":
    {
    },
  • "timeouts": { }
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "name": "string",
  • "owner_uuid": "string",
  • "organization_uuid": "string",
  • "hardware_profile":
    {
    },
  • "os_image":
    {
    },
  • "state": "CREATING",
  • "streamer_fqdn": "string",
  • "turn_fqdn": "string",
  • "adb_url": "string",
  • "file_upload_url": "string",
  • "webrtc_url": "string",
  • "recipe_uuid": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "timeout": 0,
  • "timeouts":
    {
    },
  • "recipe":
    {
    },
  • "owner":
    {
    }
}

List Instances (deprecated) Deprecated

List all currently available Instances for the authenticated User. This endpoint is deprecated. /v2/instances should be used instead.

Authorizations:
query Parameters
format
string
Enum:"template" "recipe"

Deprecated.

Responses

200

List of Instances

default

Cannot list instances.

get /v1/instances
https://api.geny.io/cloud/v1/instances

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/instances

Response samples

application/json
Copy
Expand all Collapse all
[
  • {
    }
]

Get a token to connect to an instance.

Returns a token to be used for connecting to an instance.

Use this endpoint when using an api token with other endpoints.

Authorizations:

Responses

200

Instance access token

default

An unknown error occurred

post /v1/instances/access-token
https://api.geny.io/cloud/v1/instances/access-token

Response samples

application/json
Copy
Expand all Collapse all
{
  • "access_token": "string"
}

Get Instance

Retrieve an Instance identified by its Uuid.

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the resource

query Parameters
format
string
Default: "recipe"
Enum:"recipe" "template"

Deprecated.

Responses

200

The Instance

404

Instance does not exit.

default

Cannot get instance information.

get /v1/instances/{uuid}
https://api.geny.io/cloud/v1/instances/{uuid}

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/instances/<UUID>

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "name": "string",
  • "owner_uuid": "string",
  • "organization_uuid": "string",
  • "hardware_profile":
    {
    },
  • "os_image":
    {
    },
  • "state": "CREATING",
  • "streamer_fqdn": "string",
  • "turn_fqdn": "string",
  • "adb_url": "string",
  • "file_upload_url": "string",
  • "webrtc_url": "string",
  • "recipe_uuid": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "timeout": 0,
  • "timeouts":
    {
    },
  • "recipe":
    {
    },
  • "owner":
    {
    }
}

Stop disposable Instance

Stop the given disposable Instance identified by its Uuid.

The Instance will automatically be destroyed right after it has been stopped.

The state of the Instance returned by this call will always be STOPPING, unless it was already in SAVING or DELETING state. In this case, the call will succeed but the instance will continue its end-of-life cycle.

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the resource

Responses

200

The stopping Instance

404

Instance does not exit.

default

Cannot stop disposable instance.

post /v1/instances/{uuid}/stop-disposable
https://api.geny.io/cloud/v1/instances/{uuid}/stop-disposable

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' --data '{}' https://api.geny.io/cloud/v1/instances/<UUID>/stop-disposable

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "name": "string",
  • "owner_uuid": "string",
  • "organization_uuid": "string",
  • "hardware_profile":
    {
    },
  • "os_image":
    {
    },
  • "state": "CREATING",
  • "streamer_fqdn": "string",
  • "turn_fqdn": "string",
  • "adb_url": "string",
  • "file_upload_url": "string",
  • "webrtc_url": "string",
  • "recipe_uuid": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "timeout": 0,
  • "timeouts":
    {
    },
  • "recipe":
    {
    },
  • "owner":
    {
    }
}

Save a running instance in order to reuse it later

[STATEFULL] Export running instance data to make it persist over stop

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

UUID of the instance

Request Body schema: application/json
action
string
Default: "SAVE_AS"
Enum:"SAVE" "SAVE_AS"

Specify if the recipe should be updated in place, or if a new recipe should be created.

SAVE will update the custom recipe. SAVE can only be used if the current user is the owner of the custom recipe. If a the image is official, a new custom image will be created. Otherwise the existing custom image will be updated.

SAVE_AS will create a new custom recipe and a new custom image.

When a new custom recipe is created, it will have the name specified by new_recipe_name. If no new_recipe_name is specified, the new custom recipe will be named "Copy of toriginal recipe name)"

When a new custom image is created, it will have the name specified by new_os_image_name. If no new_os_image_name is specified, the new custom image will be named "Copy of (original image name)"

new_recipe_name
string

Name of the new created recipe. Used in case of action=SAVE_AS.

new_os_image_name
string

Name of the new created OS Image. Used in case of action=SAVE and current OsImage is official, or if action=SAVE_AS.

Responses

204

The instance has successfully been saved.

403

The user is not allowed to save an instance.

404

Instance not found.

500

Service Failed.

post /v1/instances/{uuid}/save
https://api.geny.io/cloud/v1/instances/{uuid}/save

Request samples

application/json
Copy
Expand all Collapse all
{
  • "action": "SAVE_AS",
  • "new_recipe_name": "string",
  • "new_os_image_name": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string"
}

Instances v2

List Instances

List all currently available Instances for the authenticated User.

The following sortable fields are available:

  • name (Instance name)
  • created_at (Instance creation datetime)
  • updated_at (Instance update datetime)
  • owner (Uuid of the Instance owner)
  • state (Instance state)

This endpoint is paginated.

Authorizations:
query Parameters
ordering
string^[\+|\-]?[,1-9a-zA-Z_\-]*$

Use an orderable field with an optional '+' OR '-' prefix to order in the desired direction

page
integer

Page to query

page_size
integer

Number of elements per pages

organization_uuid
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the organization. Only an organization manager can use this filter.

state
string

Instance state to filter

Responses

200

List of Instances

403

Not allowed to list organization's instances

default

Cannot list instances.

get /v2/instances
https://api.geny.io/cloud/v2/instances

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' 'https://api.geny.io/cloud/v2/instances?state=BOOTING&state=ONLINE&ordering=created_at'

Response samples

application/json
Copy
Expand all Collapse all
{
  • "count": 0,
  • "next": "string",
  • "previous": "string",
  • "results":
    [
    ]
}

Hardware Profile v1

Retrieve Hardware Profile identified by its uuid

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the hardware profile to retrieve

Responses

200

The requested hardware profile.

403

The user is not allowed to request this hardware profile.

404

Hardware Profile not found.

500

Service Failed.

get /v1/hardware-profiles/{uuid}
https://api.geny.io/cloud/v1/hardware-profiles/{uuid}

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/hardware-profiles/<UUID>

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "display_settings":
    {
    },
  • "parent_hardware_profile_uuid": "string",
  • "name": "string",
  • "is_official": true,
  • "owner":
    {
    },
  • "form_factor": "PHONE",
  • "cpu_count": 0,
  • "ram_size": 0,
  • "data_disk_size": 0,
  • "release_date": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "recipe_count": 0
}

Delete Hardware Profile identified by its uuid

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the hardware profile to retrieve

Responses

204

Hardware Profile is successfully removed.

401

Not authorized.

403

The user is not allowed to delete this hardware profile.

404

Hardware Profile not found.

500

Service Failed.

delete /v1/hardware-profiles/{uuid}
https://api.geny.io/cloud/v1/hardware-profiles/{uuid}

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' -X "DELETE" https://api.geny.io/cloud/v1/hardware-profiles/<UUID>

Response samples

application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string"
}

List Hardware Profiles

List all is official Hardware Profiles and Hardware Profiles of the current user.

Authorizations:
query Parameters
source
string
Default: "all"
Enum:"all" "official" "owner"

Filter by Hardware Profile source. Options are:

  • official: Hardware Profiles provided by Genymotion, available to everyone
  • owner: Hardware Profiles created by authenticated User
  • all: combination of official & owner
search
string

Search term to search on name attribute.

page
integer

Page to fetch

page_size
integer
Default: 30

Number of hardware profiles per page

Responses

200

A list containing all official and related to the user hardware profiles.

401

Not authorized.

500

Service Failed.

get /v1/hardware-profiles/
https://api.geny.io/cloud/v1/hardware-profiles/

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/hardware-profiles/

Response samples

application/json
Copy
Expand all Collapse all
{
  • "count": 0,
  • "results":
    [
    ]
}

Create a new hardware profile

This endpoint creates a new hardware profile from the input parameters.

Authorizations:
Request Body schema: application/json
display_settings
required
object (PublicDisplaySettingsPayload)
parent_hardware_profile_uuid
string <uuid> Nullable ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Resource unique identifier

name
required
string

Hardware Profile name

form_factor
string (PublicFormFactor)
Enum:"PHONE" "TABLET"

Hardware Profile form factor

release_date
string Nullable ^(\d{4})-(\d){2}-(\d{2})$

Date

Responses

201

The created hardware profile.

400

Wrong parameters.

401

Not authorized.

403

Not allowed.

500

Service Failed.

post /v1/hardware-profiles/
https://api.geny.io/cloud/v1/hardware-profiles/

Request samples

application/json
Copy
Expand all Collapse all
{
  • "display_settings":
    {
    },
  • "parent_hardware_profile_uuid": "string",
  • "name": "string",
  • "form_factor": "PHONE",
  • "release_date": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "display_settings":
    {
    },
  • "parent_hardware_profile_uuid": "string",
  • "name": "string",
  • "is_official": true,
  • "owner":
    {
    },
  • "form_factor": "PHONE",
  • "cpu_count": 0,
  • "ram_size": 0,
  • "data_disk_size": 0,
  • "release_date": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "recipe_count": 0
}

OS Image v1

Retrieve OS Image identified by its uuid

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the OS Image to retrieve

Responses

200

The requested OS Image.

403

The user is not allowed to request this OS Image.

404

OS Image not found.

500

Service Failed.

get /v1/os-images/{uuid}
https://api.geny.io/cloud/v1/os-images/{uuid}

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/os-images/<UUID>

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "os_version":
    {
    },
  • "parent_os_image_uuid": "string",
  • "supported_form_factors":
    [
    ],
  • "name": "string",
  • "is_official": true,
  • "is_beta": true,
  • "arch": "x86",
  • "owner":
    {
    },
  • "status": "CREATING",
  • "image_version": "string",
  • "image_uri": "string",
  • "image_size_bytes": 0,
  • "image_hash": "string",
  • "image_date": "string",
  • "build_date": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "recipe_count": 0
}

Delete OS Image identified by its uuid

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the OS Image to retrieve

Responses

204

OS Image is successfully removed.

400

Wrong parameters.

401

Not authorized.

403

The user is not allowed to delete this Os Image.

404

OS Image not found.

500

Service Failed.

delete /v1/os-images/{uuid}
https://api.geny.io/cloud/v1/os-images/{uuid}

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' -X "DELETE" https://api.geny.io/cloud/v1/os-images/<UUID>

Response samples

application/json
Copy
Expand all Collapse all
{
  • "code": "string",
  • "message": "string"
}

List OS Images

List all is official OS Images and OS Images of the current user.

Authorizations:
query Parameters
source
string
Default: "all"
Enum:"all" "official" "owner"

Filter by OS Image source. Options are:

  • official: OS Images provided by Genymotion, available to everyone
  • owner: OS Images created by authenticated User
  • all: combination of official & owner
search
string

Search term to search on name attribute.

page
integer

Page to fetch

page_size
integer
Default: 30

Number of os images per page

Responses

200

A list containing all official and related to the user os images.

401

Not authorized.

500

Service Failed.

get /v1/os-images/
https://api.geny.io/cloud/v1/os-images/

Request samples

Copy
curl -H 'Content-Type: application/json;charset=utf-8' -H 'x-api-token: <token>' https://api.geny.io/cloud/v1/os-images/

Response samples

application/json
Copy
Expand all Collapse all
{
  • "count": 0,
  • "results":
    [
    ]
}

Duplicate an OS Image

This endpoint duplicates an OS Image from the input parameters.

Authorizations:
path Parameters
uuid
required
string <uuid> ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$

Uuid of the OS Image to retrieve

Request Body schema: application/json
name
required
string

OS Image name

Responses

201

The duplicated OS Image.

400

Wrong parameters.

401

Not authorized.

403

Not allowed.

500

Service Failed.

post /v1/os-images/{uuid}/duplicate/
https://api.geny.io/cloud/v1/os-images/{uuid}/duplicate/

Request samples

application/json
Copy
Expand all Collapse all
{
  • "name": "string"
}

Response samples

application/json
Copy
Expand all Collapse all
{
  • "uuid": "string",
  • "os_version":
    {
    },
  • "parent_os_image_uuid": "string",
  • "supported_form_factors":
    [
    ],
  • "name": "string",
  • "is_official": true,
  • "is_beta": true,
  • "arch": "x86",
  • "owner":
    {
    },
  • "status": "CREATING",
  • "image_version": "string",
  • "image_uri": "string",
  • "image_size_bytes": 0,
  • "image_hash": "string",
  • "image_date": "string",
  • "build_date": "string",
  • "created_at": "string",
  • "updated_at": "string",
  • "recipe_count": 0
}