NAV
HTTP cURL

Introduction

This documentation describes Solo REST API which provides access to Solo objects. Using Solo REST API, you can easily create your own powerful integration.

Your use of the Solo REST API is subject to this License Agreement

Access Solo REST API

To access Solo REST API you must issue token.

API URL

Once you have a token you can use this url to access Solo objects.

https://Solo.cloud/

Solo objects

Solo objects in Solo REST API are presented in the same hierarchy as is Starsteer. The top level is Project, with the following structure:

Double values

Has a value

HTTP/1.1 200 OK

"data" : {
  "val" : 16.581
}

Not a number value

HTTP/1.1 200 OK

"data" : {
  "undefined": true
}

Double value consists of two fields:

  1. val - field holds a value
  2. undefined - field which is true if a value is not a number value

Paging

HTTP/1.1 200 OK

{
  "content" : [ ],
  "offset" : 0,
  "limit" : 20,
  "first" : true,
  "last" : true,
  "total" : 3
}

Many of the Solo REST API endpoints return a pageable structure:

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
total Number Total number of records

0. Authentication

Issue token

Authentication using OAuth 2.0

Request

$ curl 'https://solo.cloud/oauth/token' -i -u 'solo-api-client-id:solo-api-secret' -X POST \
    -H 'Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1' \
    -d 'grant_type=password&username=test%2Bapi%40test.com&password=password'
POST /oauth/token HTTP/1.1
Authorization: Basic c29sby1hcGktY2xpZW50LWlkOnNvbG8tYXBpLXNlY3JldA==
Content-Type: application/x-www-form-urlencoded; charset=ISO-8859-1
Host: solo.cloud

grant_type=password&username=test%2Bapi%40test.com&password=password

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: d427bc8172c90b160bb1f15ba899b546
X-Solo-Device-Identifier: vmEVHxrpVTkmSElxj+gJcpmjtQU3tV/u7vY5O2pdKTEUDIYI3/qQz1mPonqqcaW+FG3uOnAj2isxP9xAdzel+Q==
Set-Cookie: device-identifier=vmEVHxrpVTkmSElxj+gJcpmjtQU3tV/u7vY5O2pdKTEUDIYI3/qQz1mPonqqcaW+FG3uOnAj2isxP9xAdzel+Q==; Domain=rogii.net; Path=/auth/api/v2; HttpOnly; SameSite=Strict
Set-Cookie: SESSION=N2RmNDRhNDAtZDk2YS00YTc1LTk1ZWItYjBjZjFjOWU1NzVj; Max-Age=2147483647; Expires=Sun, 26 Sep 2094 21:06:48 GMT; Path=/; HttpOnly; SameSite=Strict
Set-Cookie: SSO-SESSION=N2RmNDRhNDAtZDk2YS00YTc1LTk1ZWItYjBjZjFjOWU1NzVj; Max-Age=2147483647; Expires=Sun, 26 Sep 2094 21:06:48 GMT; Domain=rogii.com; Path=/; HttpOnly; SameSite=Strict
Set-Cookie: SSO-SESSION=N2RmNDRhNDAtZDk2YS00YTc1LTk1ZWItYjBjZjFjOWU1NzVj; Max-Age=2147483647; Expires=Sun, 26 Sep 2094 21:06:48 GMT; Domain=solo.cloud; Path=/; HttpOnly; SameSite=Strict
Set-Cookie: SSO-SESSION=N2RmNDRhNDAtZDk2YS00YTc1LTk1ZWItYjBjZjFjOWU1NzVj; Max-Age=2147483647; Expires=Sun, 26 Sep 2094 21:06:48 GMT; Domain=testsolo.rogii.net; Path=/; HttpOnly; SameSite=Strict
Authorization: 7df44a40-d96a-4a75-95eb-b0cf1c9e575c
Content-Type: application/json;charset=UTF-8

{
  "access_token" : "eyJraWQiOiI5YzBkMjY2NC0wODdkLTQxMmUtYWRkMC1hNTRlMDU2MTc0ZDEiLCJhbGciOiJSUzI1NiJ9.eyJjb21wYW55X2lkIjoyMDAwMywiY2xpZW50X2FwcF9pZCI6InBhcGkiLCJwZXJzb25fdHlwZSI6IlNUQUZGIiwidXNlcl9uYW1lIjoidGVzdCthcGlAdGVzdC5jb20iLCJjbGllbnRfaW5pdF9pcCI6IjEwLjQyLjAuMTM1IiwidXNlcl9kaWdlc3QiOiI4YjllZWEzNzc3IiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9TVEFGRiJdLCJjbGllbnRfaWQiOiJzb2xvLWFwaS1jbGllbnQtaWQiLCJhdWQiOiJzb2xvLXB1YmxpYy1hcGkiLCJ1c2VyX2lkIjoxNDk3LCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTc4ODg5OTk2MSwiaWF0IjoxNzg4ODg5OTYxLCJqdGkiOiJmZGQ3YzdiOC0wYmM1LTQwNTEtYjNjYy1lZTIwMWJlYWM1OGQifQ.X4lr3fdwIlgC1IJofsKjnFL9Ahy-LC8irtAvgExIzAWVVvmDG9Tur_EzslMTiLo5qfuZKQ2O1Sbxqz64puM_KC7btQPndjjM4DkwyjuJ8PY_ZCTemSOI2TZCY560iMH9cCNaAfllaX1A18sJDBqvMQZm1J0BXrA_sNOt5m9mGJWbncCiAmDCETqP2_Q52i06bGU1TB2Qr2EcUQq4Wa2NN4V8qKTlXfI75VMSbSMsZlexzKApPsdZDwBQeQq80WVNTBnmvaJTpAEjxhQWlFQ4Q6jL4sQ9zqW4IgNOp7pAYwRRKoYeMss71hkBXyDsTVvyAqJNa7vQ1xStt2QwC_SKUg",
  "refresh_token" : "eyJraWQiOiI5YzBkMjY2NC0wODdkLTQxMmUtYWRkMC1hNTRlMDU2MTc0ZDEiLCJhbGciOiJSUzI1NiJ9.eyJjb21wYW55X2lkIjoyMDAwMywiY2xpZW50X2FwcF9pZCI6InBhcGkiLCJwZXJzb25fdHlwZSI6IlNUQUZGIiwidXNlcl9uYW1lIjoidGVzdCthcGlAdGVzdC5jb20iLCJjbGllbnRfaW5pdF9pcCI6IjEwLjQyLjAuMTM1IiwidXNlcl9kaWdlc3QiOiI4YjllZWEzNzc3IiwiYXV0aG9yaXRpZXMiOlsiUk9MRV9TVEFGRiJdLCJjbGllbnRfaWQiOiJzb2xvLWFwaS1jbGllbnQtaWQiLCJhdWQiOiJzb2xvLXB1YmxpYy1hcGkiLCJ1c2VyX2lkIjoxNDk3LCJzY29wZSI6WyJyZWFkIl0sImV4cCI6MTc4ODkxOTk2MSwiaWF0IjoxNzg4ODg5OTYxLCJqdGkiOiI2MmJlMWY5MS1iOWE2LTQ5NDQtYjI4Mi05OWI3MTZlNjM3OWMifQ.D8cfvD6kwDjAFDkl9A9QVnj4BTmuYvYasRVtIUdOjUaeRDonmUz4ULX8P54LQaQGRsHT7UmdbrIuCjW_ByEOW5sU1ROJehwCMqabGvhkywHSGvcLdB-ZEdwINyS7vG7wCEowS-yD3Wur2RsGxWemNdZ1HAqx3U79sUXjZahBsamwRVJCy6Q2lXhCi9nh2L5hNOBkt1Ml9SFjoru_QooCyf4owGjPYoONGSlA0ukSqY1Z9vuP0QItAzClvYM6Tpu_QS0RqG4XPud4p3uAfRAmpduz5hKCEwKh9sarzUHSFRnOuUscbih1ON5E6wUXzrcT0tervG6IuorxUA-VWkiAWQ",
  "scope" : "read",
  "token_type" : "Bearer",
  "expires_in" : 9999,
  "iat" : 1788889961,
  "jti" : "fdd7c7b8-0bc5-4051-b3cc-ee201beac58d"
}

POST /oauth/token

Parameter Description
grant_type The type of grant being presented in exchange for an access and refresh token. Can be password or refresh_token
username User name in Solo to access a project
password User password in Solo to access a project
Header Description
Authorization Authorization header in the following format Basic credentials
credentials is a client_id:secret string encoded in base64 (standard http basic authorization).
client_id is a unique client identifier to access the public api.
secret is a unique client secret string to access the public api.

Response body

Path Type Description
access_token String Access token issued by the authorization server
token_type String Token type
refresh_token String Refresh token associated with the access token
expires_in Number Lifetime in seconds of the access token. For example, the value 3600 denotes that the access token will expire in one hour from the time the response was generated
scope String Scope of the token
iat Number Time at which the token was issued
jti String Unique token identifier

Solo-hosted login for external integrations

In addition to the OAuth 2.0 token methods described above, Solo supports a browser-based, Solo-hosted login flow for external applications. This flow is suitable for integrations that want to present a "Sign in with Solo" button, redirect the user to Solo for authentication, and receive an authorization code that can be exchanged for tokens.

Download sample project

A runnable sample project is available as a reference implementation. It demonstrates the hosted login redirect, callback handling, token exchange, refresh token handling, and local setup with .env.example.

Download: Solo-auth-sample.zip

1. Projects

Create virtual project

Create virtual project by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef/virtual' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Virtual project name",
  "description" : "Virtual project description"
}'
POST /public/api/v1/projects/edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef/virtual HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 86

{
  "name" : "Virtual project name",
  "description" : "Virtual project description"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2d8c6f782f89d65a96ad04104267aa9a
Content-Type: application/json

{
  "uuid" : "72fa4b85-8529-4380-a8c3-8b06f449b8b2"
}

POST /public/api/v1/projects/{uuid}/virtual

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Virtual project name
description String Virtual project description

Response body

Path Type Description
uuid String Created virtual project UUID

Add virtual project entities

Add virtual project entities by virtual project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/virtual/72fa4b85-8529-4380-a8c3-8b06f449b8b2/entities' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "wells" : [ "052c2a3f-43b4-4947-a601-0b26c14cc580", "2b082cf5-7301-4587-8fa8-b0035795ccc0" ],
  "typewells" : [ "9cde0681-25c2-47a1-a46d-808c13b03552", "08d79a8d-91b3-4a57-90b4-35165b890fdd" ],
  "grids" : [ "8b91dbd3-cd59-4da2-8772-1f43e7a0239e" ],
  "polygons" : [ "02187bef-cf20-469e-b174-70142b9173c3" ],
  "sticks" : [ "1a8f9f4f-252f-4634-83bf-9183f9f18c97" ]
}'
POST /public/api/v1/projects/virtual/72fa4b85-8529-4380-a8c3-8b06f449b8b2/entities HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 370

{
  "wells" : [ "052c2a3f-43b4-4947-a601-0b26c14cc580", "2b082cf5-7301-4587-8fa8-b0035795ccc0" ],
  "typewells" : [ "9cde0681-25c2-47a1-a46d-808c13b03552", "08d79a8d-91b3-4a57-90b4-35165b890fdd" ],
  "grids" : [ "8b91dbd3-cd59-4da2-8772-1f43e7a0239e" ],
  "polygons" : [ "02187bef-cf20-469e-b174-70142b9173c3" ],
  "sticks" : [ "1a8f9f4f-252f-4634-83bf-9183f9f18c97" ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: b5eb98c6d745b91a8dcaf0e50cf3a559

POST /public/api/v1/projects/virtual/{uuid}/entities

Path parameter Description
uuid Virtual project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
wells Array List of well UUIDs to add to the virtual project
typewells Array List of typewell UUIDs to add to the virtual project
grids Array List of grid UUIDs to add to the virtual project
polygons Array List of polygon UUIDs to add to the virtual project
sticks Array List of stick UUIDs to add to the virtual project

Response body

Empty body

Get projects

Get a list of company projects with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/projects?filter=pApi&offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/projects?filter=pApi&offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 933a06ecb657c67c37d0ed40a40e8368
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "62695ef6-1022-41ed-bc14-8871f4e0e515",
    "name" : "Papi test project 1",
    "measure_unit" : "FOOT",
    "role" : "MANAGER",
    "accessed_on" : "2026-09-08T17:50:55Z",
    "modified_on" : "2026-09-08T17:50:55Z"
  }, {
    "uuid" : "25b013a9-17e1-45ae-984e-2af9db757227",
    "name" : "Papi test project 2",
    "measure_unit" : "METER",
    "role" : "MANAGER",
    "geo_crs" : {
      "code" : 2000,
      "authority" : "EPSG",
      "name" : "Anguilla 1957 / British West Indies Grid",
      "measure_unit" : "METER"
    },
    "accessed_on" : "2026-09-08T17:50:55Z",
    "modified_on" : "2026-09-08T17:50:55Z"
  }, {
    "uuid" : "edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef",
    "name" : "Papi test project 3",
    "measure_unit" : "FOOT",
    "role" : "MANAGER",
    "geo_crs" : {
      "code" : 2270,
      "authority" : "EPSG",
      "name" : "NAD83 / Oregon South (ft)",
      "measure_unit" : "FOOT"
    },
    "accessed_on" : "2026-09-08T17:50:55Z",
    "modified_on" : "2026-09-08T17:50:55Z"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 3,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects

Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter projects by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Project UUID
content[].name String Project name
content[].measure_unit String Measurement units (possible values: METER, FOOT, METER_FOOT)
content[].role String Role
content[].accessed_on String Date/time project last accessed at
content[].modified_on String Date/time project last modified at
content[].geo_crs Object Coordinate reference system (CRS) information
content[].geo_crs.code Varies CRS code
content[].geo_crs.authority Varies Authority
content[].geo_crs.name Varies CRS name
content[].geo_crs.measure_unit Varies CRS measure unit

Get virtual projects

Get a list of company virtual projects with paginations. Virtual projects use a subset of data from a Global Project and have their own access roles defined in the SOLO Admin Panel. They can be easily managed for specific users and any changes made are updated across the database. Data added to a Virtual Project is also added to the corresponding Global Project

Request

$ curl 'https://solo.cloud/public/api/v1/projects/virtual?filter=pApi&offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/projects/virtual?filter=pApi&offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3ef3b6555fd9f7d490ffa2d6ee733a63
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "f50e3c7b-4bbf-4fac-bd82-32db084995e6",
    "name" : "Virtual Papi test project 1",
    "measure_unit" : "FOOT",
    "role" : "MANAGER",
    "parent_uuid" : "62695ef6-1022-41ed-bc14-8871f4e0e515",
    "parent_name" : "Papi test project 1",
    "virtual" : true,
    "modified_on" : "2026-09-08T17:50:55Z"
  }, {
    "uuid" : "eef566f4-3576-40db-869e-a0b03f0a0acd",
    "name" : "Virtual Papi test project 2",
    "measure_unit" : "METER",
    "role" : "MANAGER",
    "geo_crs" : {
      "code" : 2000,
      "authority" : "EPSG",
      "name" : "Anguilla 1957 / British West Indies Grid",
      "measure_unit" : "METER"
    },
    "parent_uuid" : "25b013a9-17e1-45ae-984e-2af9db757227",
    "parent_name" : "Papi test project 2",
    "virtual" : true,
    "modified_on" : "2026-09-08T17:50:55Z"
  }, {
    "uuid" : "803c189e-a7b8-4024-aadf-57cba9e5f055",
    "name" : "Virtual Papi test project 3",
    "measure_unit" : "FOOT",
    "role" : "MANAGER",
    "geo_crs" : {
      "code" : 2270,
      "authority" : "EPSG",
      "name" : "NAD83 / Oregon South (ft)",
      "measure_unit" : "FOOT"
    },
    "parent_uuid" : "edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef",
    "parent_name" : "Papi test project 3",
    "virtual" : true,
    "modified_on" : "2026-09-08T17:50:55Z"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 3,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/virtual

Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter virtual projects by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Virtual project UUID
content[].name String Virtual project name
content[].measure_unit String Measurement units (possible values: METER, FOOT, METER_FOOT)
content[].role String Role
content[].accessed_on String Date/time project last accessed at
content[].modified_on String Date/time project last modified at
content[].geo_crs Object Coordinate reference system (CRS) information
content[].parent_uuid String Parent project UUID
content[].parent_name String Parent project name
content[].virtual Boolean Whether the project is virtual
content[].geo_crs.code Varies CRS code
content[].geo_crs.authority Varies Authority
content[].geo_crs.name Varies CRS name
content[].geo_crs.measure_unit Varies CRS measure unit

Get project

Get a single project info

Request

$ curl 'https://solo.cloud/public/api/v1/projects/edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/projects/edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 1742881ac5f186930afb29d3d29120c7
Content-Type: application/json

{
  "uuid" : "edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef",
  "name" : "Papi test project 3",
  "measure_unit" : "FOOT",
  "role" : "MANAGER",
  "geo_crs" : {
    "code" : 2270,
    "authority" : "EPSG",
    "name" : "NAD83 / Oregon South (ft)",
    "measure_unit" : "FOOT"
  },
  "accessed_on" : "2026-09-08T17:50:55Z",
  "modified_on" : "2026-09-08T17:50:55Z"
}

GET /public/api/v1/projects/{uuid}

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
uuid String Project UUID
name String Project name
measure_unit String Measurement units (possible values: METER, FOOT, METER_FOOT)
role String Role
accessed_on String Date/time project last accessed at
modified_on String Date/time project last modified at
geo_crs Object Coordinate reference system (CRS) information
geo_crs.code Number CRS code
geo_crs.authority String Authority
geo_crs.name String CRS name
geo_crs.measure_unit String CRS measure unit

Get recently updated objects

Get recently updated project objects

Request

$ curl 'https://solo.cloud/public/api/v1/projects/edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef/changes' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "modified_since" : "2026-09-08T17:49:55.461Z"
}'
POST /public/api/v1/projects/edae5c56-4e03-43fe-b0e5-e9a4bec2e6ef/changes HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 51

{
  "modified_since" : "2026-09-08T17:49:55.461Z"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8c1230912dda63ea6bbde02ae721e9d9
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "052c2a3f-43b4-4947-a601-0b26c14cc580",
    "type" : "WELL",
    "operation" : "CREATE"
  }, {
    "uuid" : "9cde0681-25c2-47a1-a46d-808c13b03552",
    "type" : "TYPEWELL",
    "operation" : "CREATE"
  } ],
  "modified_on" : "2026-09-08T17:50:56.158Z",
  "modified_at" : "2026-09-08T17:50:56.158+00:00"
}

POST /public/api/v1/projects/{uuid}/changes

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
modified_since String Date/time project modifications request since (pay attention to format)

Response body

Path Type Description
content Array Content array
modified_at String Date/time project last modified at
content[].uuid String Project object UUID
content[].type String Project object type
content[].operation String Operation performed on the object

Get project history

Get project history by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/8703082f-d258-444e-896f-fe1a16b770e4/history?offset=0&limit=4' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "modified_since" : "2026-03-12T12:00:00.000+00:00",
  "modified_to" : "2026-03-12T13:00:00.000+00:00",
  "user_name" : "Bot Manager",
  "user_email" : "a.bortnikov+manager@rogii.com",
  "well_name" : "Typewell",
  "well_ids" : [ "755135f6-6634-49bb-ad1f-093bf4efcc9c" ],
  "sources" : [ "ANY" ]
}'
POST /public/api/v1/projects/8703082f-d258-444e-896f-fe1a16b770e4/history?offset=0&limit=4 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 300

{
  "modified_since" : "2026-03-12T12:00:00.000+00:00",
  "modified_to" : "2026-03-12T13:00:00.000+00:00",
  "user_name" : "Bot Manager",
  "user_email" : "a.bortnikov+manager@rogii.com",
  "well_name" : "Typewell",
  "well_ids" : [ "755135f6-6634-49bb-ad1f-093bf4efcc9c" ],
  "sources" : [ "ANY" ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 7403cb7037470b35
Content-Type: application/json

{
  "content" : [ {
    "modified_at" : "2026-03-12T12:00:04.441+00:00",
    "user_email" : "a.bortnikov+manager@rogii.com",
    "user_name" : "Bot Manager",
    "source" : "portal",
    "well_id" : "755135f6-6634-49bb-ad1f-093bf4efcc9c",
    "well_name" : "Typewell",
    "well_type" : "TYPEWELL",
    "changes" : [ {
      "operation" : "CREATE",
      "object_id" : "755135f6-6634-49bb-ad1f-093bf4efcc9c",
      "object_type" : "TYPEWELL",
      "object_name" : "Typewell"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000001",
      "object_type" : "WELLHEADER",
      "object_name" : "Name"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000002",
      "object_type" : "WELLHEADER",
      "object_name" : "API"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000004",
      "object_type" : "WELLHEADER",
      "object_name" : "Operator"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000007",
      "object_type" : "WELLHEADER",
      "object_name" : "KB"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000008",
      "object_type" : "WELLHEADER",
      "object_name" : "Azimuth VS"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000009",
      "object_type" : "WELLHEADER",
      "object_name" : "Convergence"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000012",
      "object_type" : "WELLHEADER",
      "object_name" : "X-srf"
    }, {
      "operation" : "CREATE",
      "object_id" : "00000000-0000-0000-0000-000000000013",
      "object_type" : "WELLHEADER",
      "object_name" : "Y-srf"
    } ]
  }, {
    "modified_at" : "2026-03-12T12:00:05.488+00:00",
    "user_email" : "a.bortnikov+manager@rogii.com",
    "user_name" : "Bot Manager",
    "source" : "portal",
    "well_id" : "755135f6-6634-49bb-ad1f-093bf4efcc9c",
    "well_name" : "Typewell",
    "well_type" : "TYPEWELL",
    "changes" : [ {
      "operation" : "CREATE",
      "object_id" : "489bce1c-333d-486d-b84d-89670505f9f3",
      "object_type" : "LOG",
      "object_name" : "Log"
    } ]
  }, {
    "modified_at" : "2026-03-12T12:00:05.634+00:00",
    "user_email" : "a.bortnikov+manager@rogii.com",
    "user_name" : "Bot Manager",
    "source" : "portal",
    "well_id" : "755135f6-6634-49bb-ad1f-093bf4efcc9c",
    "well_name" : "Typewell",
    "well_type" : "TYPEWELL",
    "changes" : [ {
      "operation" : "CREATE",
      "object_id" : "3bd00b21-c7d9-407e-83e9-347d50cef95d",
      "object_type" : "TOPSET",
      "object_name" : "Top Set"
    } ]
  }, {
    "modified_at" : "2026-03-12T12:00:05.982+00:00",
    "user_email" : "a.bortnikov+manager@rogii.com",
    "user_name" : "Bot Manager",
    "source" : "portal",
    "well_id" : "755135f6-6634-49bb-ad1f-093bf4efcc9c",
    "well_name" : "Typewell",
    "well_type" : "TYPEWELL",
    "changes" : [ {
      "operation" : "CREATE",
      "object_id" : "1b97e61f-f57e-4fa4-8df1-21ee3a1b0244",
      "object_type" : "MUDLOG",
      "object_name" : "Mud Log"
    } ]
  } ],
  "offset" : 0,
  "limit" : 4,
  "total" : 32,
  "last" : false,
  "first" : true
}

POST /public/api/v1/projects/{uuid}/history

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header
Body field Type Description
modified_since String Filter by modification date/time from
modified_to String Filter by modification date/time to
user_name String Filter by user name
user_email String Filter by user email
well_name String Filter by well name
well_ids Array Filter by well UUIDs
object_name String Filter by object name
object_ids Array Filter by object UUIDs
sources Array Filter by client application sources, allowed values are 'SOLO_CONNECT_CLOUD', 'FEED_OUTPUT', 'WEB_VIEWER_NATIVE_IOS', 'ANY', 'TLOG', 'ALERTS', 'PETREL', 'WS_RTM_NATIVE_ANDROID', 'STARSTEER', 'DRILLSPOT_FEED', 'WEB_VIEWER_MOBILE', 'WS_RTM', 'WEB_VIEWER_NATIVE_ANDROID', 'SOLO_CONNECT', 'SOLOBOX', 'WITSML', 'WITSML_SERVER', 'ACTIVITY_LOG', 'PYTHON_SDK', 'DATA_MANAGER', 'SYSTEM_ROBOT', 'WS_RTM_NATIVE_IOS', 'DRILLSPOT', 'SOLO_FEED', 'FEED_SAAS_OUTPUT', 'STARFRAC', 'WEB_PORTAL', 'SAAS_STARSTEER', 'WEB_ADMIN', 'PAPI', 'LANDING', 'WEB_VIEWER', 'WEB_SUPPORT_MANAGEMENT', 'WEB_FREE_VIEWER_NATIVE_IOS', 'DRILLSPOT_SOLO_FEED'

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].modified_at String Date/time of modification
content[].user_email String User email
content[].user_name String User name
content[].source String Client application source
content[].well_id String Well UUID
content[].well_name String Well name
content[].well_type String Well type
content[].changes Array List of changes
content[].changes[].operation String Operation performed
content[].changes[].object_id String Object UUID
content[].changes[].object_type String Object type
content[].changes[].object_name String Object name

Delete virtual project

Delete virtual project by virtual project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/virtual/72fa4b85-8529-4380-a8c3-8b06f449b8b2' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/projects/virtual/72fa4b85-8529-4380-a8c3-8b06f449b8b2 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 84d3706f94bcea44c0efb643627112cb

DELETE /public/api/v1/projects/virtual/{uuid}

Path parameter Description
uuid Virtual project UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

2. Laterals

Create lateral

Create lateral by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/4eb7625b-9bf2-4d0f-9408-a6e169e001f1/wells' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Lateral name",
  "operator" : "operator",
  "api" : "api",
  "convergence" : {
    "val" : 90.0
  },
  "azimuth" : {
    "val" : 45.0
  },
  "kb" : {
    "val" : 0.3
  },
  "tieintvd" : {
    "val" : 0.4
  },
  "tieinns" : {
    "val" : 0.5
  },
  "tieinew" : {
    "val" : 0.6
  },
  "xsrfreal" : {
    "val" : 100.0
  },
  "ysrfreal" : {
    "val" : 500.0
  }
}'
POST /public/api/v1/projects/4eb7625b-9bf2-4d0f-9408-a6e169e001f1/wells HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 377

{
  "name" : "Lateral name",
  "operator" : "operator",
  "api" : "api",
  "convergence" : {
    "val" : 90.0
  },
  "azimuth" : {
    "val" : 45.0
  },
  "kb" : {
    "val" : 0.3
  },
  "tieintvd" : {
    "val" : 0.4
  },
  "tieinns" : {
    "val" : 0.5
  },
  "tieinew" : {
    "val" : 0.6
  },
  "xsrfreal" : {
    "val" : 100.0
  },
  "ysrfreal" : {
    "val" : 500.0
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8882ab7a2e36196a0c247f7a04158d3a
Content-Type: application/json

{
  "uuid" : "697ae158-0f4e-43d2-9a79-742bb650821c"
}

POST /public/api/v1/projects/{uuid}/wells

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Lateral name
operator String Operator name
api String API lateral number
convergence.val Number Convergence
azimuth.val Number AzimuthVS
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
tieintvd.val Number TieInTvd
tieinns.val Number TieInNs
tieinew.val Number TieInEw
xsrfreal.val Number X surface wellbore coordinate
ysrfreal.val Number Y surface wellbore coordinate

Response body

Path Type Description
uuid String Created lateral UUID

Get laterals by project

Get a list of laterals by project UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/projects/4eb7625b-9bf2-4d0f-9408-a6e169e001f1/wells?offset=0&limit=10&filter=oNe' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/4eb7625b-9bf2-4d0f-9408-a6e169e001f1/wells?offset=0&limit=10&filter=oNe HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: d634177d8098e687d90f596305cee7e1
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "b4ba1dba-a310-4e58-b965-d144da91da05",
    "name" : "Lateral one",
    "api" : "api lateral one",
    "flags" : {
      "has_logs" : false,
      "has_topsets" : false,
      "has_interpretations" : false,
      "has_nested_wells" : false,
      "has_mudlogs" : false,
      "has_target_lines" : false
    }
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/wells

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter laterals by the 'name' or 'api' fields. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Lateral UUID
content[].name String Lateral name
content[].api String API lateral number
content[].flags.has_logs Boolean Flag indicating the presence of logs
content[].flags.has_topsets Boolean Flag indicating the presence of topsets
content[].flags.has_interpretations Boolean Flag indicating the presence of interpretations
content[].flags.has_nested_wells Boolean Flag indicating the presence of nested wells
content[].flags.has_mudlogs Boolean Flag indicating the presence of mudlogs
content[].flags.has_target_lines Boolean Flag indicating the presence of target lines

Get laterals by API filter

Get a list of laterals by API filter with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/api-filtered?offset=0&limit=10&filter=lateral%20t' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/api-filtered?offset=0&limit=10&filter=lateral%20t HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 80473bf29b6c0a5a6b645e456a73d8db
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "593ba4e7-45a0-42fd-93e6-d8d8043ab889",
    "name" : "Lateral two",
    "api" : "api lateral two",
    "flags" : {
      "has_logs" : false,
      "has_topsets" : false,
      "has_interpretations" : false,
      "has_nested_wells" : false,
      "has_mudlogs" : false,
      "has_target_lines" : false
    },
    "project_uuid" : "4eb7625b-9bf2-4d0f-9408-a6e169e001f1",
    "project_role" : "MANAGER"
  }, {
    "uuid" : "c4445ac4-e9be-4b29-b7e0-a6a5a64665b7",
    "name" : "Lateral three",
    "api" : "api lateral three",
    "flags" : {
      "has_logs" : false,
      "has_topsets" : false,
      "has_interpretations" : false,
      "has_nested_wells" : false,
      "has_mudlogs" : false,
      "has_target_lines" : false
    },
    "project_uuid" : "4eb7625b-9bf2-4d0f-9408-a6e169e001f1",
    "project_role" : "MANAGER"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/api-filtered

Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter laterals by the 'api' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Lateral UUID
content[].name String Lateral name
content[].api String API lateral number
content[].flags.has_logs Boolean Flag indicating the presence of logs
content[].flags.has_topsets Boolean Flag indicating the presence of topsets
content[].flags.has_interpretations Boolean Flag indicating the presence of interpretations
content[].flags.has_nested_wells Boolean Flag indicating the presence of nested wells
content[].flags.has_mudlogs Boolean Flag indicating the presence of mudlogs
content[].flags.has_target_lines Boolean Flag indicating the presence of target lines
content[].project_uuid String Project UUID
content[].project_role String Role

Get lateral metadata

Get lateral metadata

Request

$ curl 'https://solo.cloud/public/api/v1/wells/c4445ac4-e9be-4b29-b7e0-a6a5a64665b7' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/c4445ac4-e9be-4b29-b7e0-a6a5a64665b7 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 40d6188acbdb9981786830eccb18365f
Content-Type: application/json

{
  "uuid" : "c4445ac4-e9be-4b29-b7e0-a6a5a64665b7",
  "name" : "Lateral three",
  "operator" : "string",
  "api" : "api lateral three",
  "xsrf" : {
    "val" : 19.68503937007874
  },
  "ysrf" : {
    "val" : 32.808398950131235
  },
  "kb" : {
    "val" : 22.96587926509186
  },
  "convergence" : {
    "val" : 0.0
  },
  "azimuth" : {
    "val" : 0.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 3.280839895013123
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}

GET /public/api/v1/wells/{uuid}

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
uuid String Lateral UUID
name String Lateral name
operator String Operator name
api String API lateral number
xsrf.val Number X surface coordinate
ysrf.val Number Y surface coordinate
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
azimuth.val Number AzimuthVS
convergence.val Number Convergence
tie_in_tvd.val Number Tie in tvd coordinates
tie_in_ns.val Number Tie in NS
tie_in_ew.val Number Tie in EW
last_feed_stream_date String Timestamp of last update by Solo Feed

Get lateral ellipses

Get lateral ellipses data by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/laterals/03532cbb-4119-4438-82e0-a2f451489848/ellipses' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/laterals/03532cbb-4119-4438-82e0-a2f451489848/ellipses HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 575f709c8773a3021aaddf1425bea4c8
Content-Type: application/json

{
  "content" : [ {
    "index" : 10.0,
    "value" : {
      "nev" : [ 14.99, 98.23, 41.2, 67.78, 23.89, 12.31, 55.43, 11.23, 34.33 ],
      "messages" : [ ]
    }
  } ]
}

GET /public/api/v1/laterals/{lateralUuid}/ellipses

Path parameter Description
lateralUuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Ellipses points array
content[].index Number Measured Depth value
content[].value.nev Array Ellipse attributes
content[].value.messages Array Comments

Get starred objects

Get starred objects by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/3b68702b-bb23-44d3-868a-93263ed750c4/starred' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/wells/3b68702b-bb23-44d3-868a-93263ed750c4/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: d39b42339c15acf5cd4446095d7f6b32
Content-Type: application/json

{
  "target_line" : "91c33efe-0eba-420a-ac0c-e4703ce1c962",
  "nested_well" : "ea82d296-ce6b-4ed9-8945-45807a1cb359",
  "interpretation" : "d772c9ba-3b27-4985-a078-474ec48d685a",
  "topset" : "b3a8da9d-3213-4a44-a01d-c549c1f18df1"
}

GET /public/api/v1/wells/{uuid}/starred

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
target_line String Starred target line UUID
nested_well String Starred nested well UUID
interpretation String Starred interpretation UUID
topset String Starred topset UUID

Get linked typewells

Get linked typewells by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5a42a2fa-3bef-4335-939f-0474aca5dbe6/linked?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/wells/5a42a2fa-3bef-4335-939f-0474aca5dbe6/linked?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: d2d875c1fa0bd47396eb33f57c96e454
Content-Type: application/json

{
  "content" : [ {
    "shift" : {
      "val" : 1640.4199475065616
    },
    "typewell_id" : "54ff71df-487c-4da8-ad61-24308d0d91f2"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/linked

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].shift.val Number Typewell shift
content[].typewell_id String Typewell UUID

Get bit projection

Get bit projection by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/2a9eb4e6-c4e4-4bec-879e-1b5bb2a75b81/bitprojection' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/wells/2a9eb4e6-c4e4-4bec-879e-1b5bb2a75b81/bitprojection HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ff723ce29e50cd9554cd3c68eac10b86
Content-Type: application/json

{
  "mode" : "CALCULATED",
  "sub_mode" : "DLS_TF",
  "distance_to_bit" : {
    "val" : 30.0
  },
  "dls" : {
    "val" : 9.499999999999998
  },
  "tool_face" : {
    "val" : 120.49999999999999
  },
  "continuous_inclination_log" : "00000000-0000-0000-0000-000000000000",
  "last_log_point_log" : "00000000-0000-0000-0000-000000000000"
}

GET /public/api/v1/wells/{uuid}/bitprojection

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
mode String Can be [OFF, CALCULATED, PREDEFINED]
sub_mode String Can be [TREND, DLS_TF, CONT_INCL_LOG]
distance_to_bit.val Number Distance to Bit (range [0; 100000])
dls.val Number Dogleg Severity value (range [0; 60])
tool_face.val Number Tool face value (range [-180; 180])
continuous_inclination_log String Continuous inclination log UUID
last_log_point_log String Last point log UUID

Update lateral metadata

Update lateral metadata

Request

$ curl 'https://solo.cloud/public/api/v1/wells/b4ba1dba-a310-4e58-b965-d144da91da05' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Lateral name",
  "api" : "api lateral",
  "operator" : "string",
  "xsrf" : {
    "val" : 60.5
  },
  "ysrf" : {
    "val" : 100.0
  },
  "kb" : {
    "val" : 70.0
  },
  "azimuth" : {
    "val" : 0.0
  },
  "convergence" : {
    "val" : 0.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 1.0
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}'
PATCH /public/api/v1/wells/b4ba1dba-a310-4e58-b965-d144da91da05 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 379

{
  "name" : "Lateral name",
  "api" : "api lateral",
  "operator" : "string",
  "xsrf" : {
    "val" : 60.5
  },
  "ysrf" : {
    "val" : 100.0
  },
  "kb" : {
    "val" : 70.0
  },
  "azimuth" : {
    "val" : 0.0
  },
  "convergence" : {
    "val" : 0.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 1.0
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ceed1ec3b7fc2fa34687cec4c0bc5d42

PATCH /public/api/v1/wells/{uuid}

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Lateral name
operator String Operator name
api String API lateral number
xsrf.val Number X surface coordinate
ysrf.val Number Y surface coordinate
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
azimuth.val Number Well azimuth (degrees)
convergence.val Number Convergence
tie_in_tvd.val Number Tie in tvd coordinates
tie_in_ns.val Number Tie in NS
tie_in_ew.val Number Tie in EW

Response body

Empty body

Set starred objects

Set starred objects by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/3b68702b-bb23-44d3-868a-93263ed750c4/starred' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "targetline" : "91c33efe-0eba-420a-ac0c-e4703ce1c962",
  "nestedwell" : "ea82d296-ce6b-4ed9-8945-45807a1cb359",
  "interpretation" : "d772c9ba-3b27-4985-a078-474ec48d685a",
  "topset" : "b3a8da9d-3213-4a44-a01d-c549c1f18df1"
}'
PUT /public/api/v1/wells/3b68702b-bb23-44d3-868a-93263ed750c4/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 230

{
  "targetline" : "91c33efe-0eba-420a-ac0c-e4703ce1c962",
  "nestedwell" : "ea82d296-ce6b-4ed9-8945-45807a1cb359",
  "interpretation" : "d772c9ba-3b27-4985-a078-474ec48d685a",
  "topset" : "b3a8da9d-3213-4a44-a01d-c549c1f18df1"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c7d04b374f513532bf10ced198ae4d85

PUT /public/api/v1/wells/{uuid}/starred

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
targetline String Target line UUID to set starred (use "00000000-0000-0000-0000-000000000000" to reset)
nestedwell String Nested well UUID to set starred (use "00000000-0000-0000-0000-000000000000" to reset)
interpretation String Interpretation UUID to set starred (use "00000000-0000-0000-0000-000000000000" to reset)
topset String Topset UUID to set starred (use "00000000-0000-0000-0000-000000000000" to reset)

Response body

Empty body

Set bit projection

Set bit projection by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/d0c26808-5407-42fe-9735-7bf7dd4d4699/bitprojection' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "mode" : "CALCULATED",
  "sub_mode" : "DLS_TF",
  "distance_to_bit" : {
    "val" : 30.0
  },
  "dls" : {
    "val" : 9.5
  },
  "tool_face" : {
    "val" : 120.5
  },
  "last_log_point_log" : "00000000-0000-0000-0000-000000000000"
}'
PUT /public/api/v1/wells/d0c26808-5407-42fe-9735-7bf7dd4d4699/bitprojection HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 237

{
  "mode" : "CALCULATED",
  "sub_mode" : "DLS_TF",
  "distance_to_bit" : {
    "val" : 30.0
  },
  "dls" : {
    "val" : 9.5
  },
  "tool_face" : {
    "val" : 120.5
  },
  "last_log_point_log" : "00000000-0000-0000-0000-000000000000"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ba1ce5c777b0096f9622d9d6057cbc9f

PUT /public/api/v1/wells/{uuid}/bitprojection

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
mode String Can be [OFF, CALCULATED, PREDEFINED]
sub_mode String Can be [TREND, DLS_TF, CONT_INCL_LOG] for CALCULATED mode
distance_to_bit.val Number Distance to Bit (range [0; 100000])
dls.val Number Dogleg Severity value (range [0; 60])
tool_face.val Number Tool face value (range [-180; 180])
continuous_inclination_log String Continuous inclination log UUID
last_log_point_log String Last point log UUID

Response body

Empty body

Lock lateral

Lock lateral by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/c1f0afca-c536-4dc5-9323-b8867188eb19/lock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/wells/c1f0afca-c536-4dc5-9323-b8867188eb19/lock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 1bd7ef9185bead5ad39d76b038568159

PATCH /public/api/v1/wells/{uuid}/lock

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Unlock lateral

Unlock lateral by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/66ac5ba2-47bc-4bc4-a07c-7eafbac15881/unlock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/wells/66ac5ba2-47bc-4bc4-a07c-7eafbac15881/unlock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6ce5d397252cb5107eb1450dd33cf70c

PATCH /public/api/v1/wells/{uuid}/unlock

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete lateral

Delete lateral by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/213ab729-306f-43b7-9ee4-86abd92985f5' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/wells/213ab729-306f-43b7-9ee4-86abd92985f5 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8bacbd13a277ce3a364f5ba6c9693637

DELETE /public/api/v1/wells/{uuid}

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

3. Interpretations

Create interpretation

Create interpretation by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/17a2e6c6-f21a-4f36-b72f-07b1f60d7884/interpretations' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Interpretation name"
}'
POST /public/api/v1/wells/17a2e6c6-f21a-4f36-b72f-07b1f60d7884/interpretations HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 36

{
  "name" : "Interpretation name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: a945b44170697d8cb8b25fead10eb0eb
Content-Type: application/json

{
  "uuid" : "6e1579d4-5851-4d36-a97e-9e6ade32ae6d"
}

POST /public/api/v1/wells/{uuid}/interpretations

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Interpretation name

Response body

Path Type Description
uuid String Created interpretation UUID

Write interpretation segments in bulk

Create or overwrite one interpretation of the lateral with all its segments in a single request. Either the whole interpretation is written or nothing is, a refused request leaves the target as it was.

The target is addressed by uuid, or by name when uuid is omitted. An existing target gets its segments fully replaced and the response carries created: false. When no interpretation with such name exists, a new one is created as a copy of source_interpretation_uuid (horizons included, owner is the caller, privacy is taken from private) and the response carries created: true; source_interpretation_uuid is required in this case. Sending the same request twice therefore yields one interpretation written twice, so a retry is safe. Concurrent writes to one lateral are not supported, upload laterals in parallel but write each of them sequentially.

The interpretation name must start with the prefix configured on the server (AI_ by default), so a bulk write never overwrites an interpretation made by a user. It is at most 255 characters long, carries no control characters and neither starts nor ends with whitespace. A lateral holding several interpretations with the requested name is rejected with 400 listing their UUIDs, address the target by uuid instead. A locked target and a private interpretation of another user (as the target or as the source) are rejected with 403. The call requires both CREATE and UPDATE permissions on interpretations.

Segment rules:

One request carries at most 10000 segments (a server setting), a larger request is rejected with 400 naming the limit. Segment values are in project units, the same as the other segment endpoints. Note that a segment is described by its start MD and the vertical shifts at its ends, not by the md, vs, dip and throw set of the per-segment endpoints.

Request

$ curl 'https://solo.cloud/public/api/v1/wells/9435ba5a-8790-4a0e-94ea-d921fecd498b/interpretations/bulk' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "AI_interpretation 1",
  "source_interpretation_uuid" : "d95e8bef-77e8-4e05-bdd4-7e62a6976b0d",
  "private" : false,
  "segments" : [ {
    "start_md" : 1000.0,
    "start_shift" : 0.0,
    "end_shift" : 2.5
  }, {
    "start_md" : 1500.0,
    "start_shift" : 2.5,
    "end_shift" : 4.0
  } ]
}'
PUT /public/api/v1/wells/9435ba5a-8790-4a0e-94ea-d921fecd498b/interpretations/bulk HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 307

{
  "name" : "AI_interpretation 1",
  "source_interpretation_uuid" : "d95e8bef-77e8-4e05-bdd4-7e62a6976b0d",
  "private" : false,
  "segments" : [ {
    "start_md" : 1000.0,
    "start_shift" : 0.0,
    "end_shift" : 2.5
  }, {
    "start_md" : 1500.0,
    "start_shift" : 2.5,
    "end_shift" : 4.0
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: cf91fdf5b5871dbe5219e5a7daf1133b
Content-Type: application/json

{
  "uuid" : "950a3420-05b4-462a-bb14-83e1bd9317c0",
  "name" : "AI_interpretation 1",
  "segments_written" : 2,
  "created" : true
}

PUT /public/api/v1/wells/{uuid}/interpretations/bulk

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Target interpretation name, at most 255 characters, no control characters, no whitespace at either end. Must start with the configured prefix (AI_ by default), otherwise the request is rejected with 400
uuid String Target interpretation UUID. When omitted, the target is looked up by name among the lateral's interpretations; when present, name must match the interpretation name
source_interpretation_uuid String Interpretation of the same lateral the target is copied from, horizons included. Required only when the target does not exist yet and has to be created
private Boolean Privacy of the created interpretation (false by default). Ignored when an existing interpretation is overwritten
segments Array Segments to write in strictly increasing start_md order, the existing segments of the target are fully replaced
segments[].start_md Number Segment start measured depth in project units, within the trajectory MD range
segments[].start_shift Number Vertical shift at the segment start in project units. Used for the first segment and for a fault boundary only, otherwise the previous segment's end_shift is taken
segments[].end_shift Number Vertical shift at the segment end in project units

Response body

Path Type Description
uuid String Target interpretation UUID
name String Target interpretation name
segments_written Number Number of segments the interpretation holds after the write
created Boolean true if the interpretation was created, false if an existing interpretation was overwritten

Add interpretation segment

Add segment by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/81c213dd-9b11-467b-835a-1349475c6883/segments?horizontal_scale=MD' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "uuid" : "cc999130-19e7-4c80-9ec5-1b04bbc0dd97",
  "md" : {
    "val" : 1500.0
  },
  "vs" : {
    "val" : 750.0
  },
  "dip" : {
    "val" : 30.0
  },
  "dip_equal_thickness" : false,
  "throw" : {
    "val" : 15.0
  },
  "throw_equal_thickness" : false
}'
POST /public/api/v1/interpretations/81c213dd-9b11-467b-835a-1349475c6883/segments?horizontal_scale=MD HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 260

{
  "uuid" : "cc999130-19e7-4c80-9ec5-1b04bbc0dd97",
  "md" : {
    "val" : 1500.0
  },
  "vs" : {
    "val" : 750.0
  },
  "dip" : {
    "val" : 30.0
  },
  "dip_equal_thickness" : false,
  "throw" : {
    "val" : 15.0
  },
  "throw_equal_thickness" : false
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 1eb4b999975cc6b22e8dd1031451619f

POST /public/api/v1/interpretations/{uuid}/segments

Path parameter Description
uuid Interpretation UUID
Parameter Description
horizontal_scale Horizontal scale for segment calculations. Available values: MD, THL, VS
Header Description
Authorization OAuth2 authorization header
Body field Type Description
uuid String Segment UUID
md.val Number Measured depth value in project units
vs.val Number Vertical section value in project units
dip.val Number Dip value in degrees
dip_equal_thickness Boolean If true, dip is calculated with equal thickness
throw.val Number Throw value in project units
throw_equal_thickness Boolean If true, throw is calculated with equal thickness

Response body

Empty body

Get interpretations by lateral

Get a list of interpretations by lateral UUID with pagination

The list carries the public and locked interpretations of the lateral, and the private ones belonging to the caller - somebody else's private interpretation is not listed.

Request

$ curl 'https://solo.cloud/public/api/v1/wells/17a2e6c6-f21a-4f36-b72f-07b1f60d7884/interpretations?filter=test&offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/wells/17a2e6c6-f21a-4f36-b72f-07b1f60d7884/interpretations?filter=test&offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: bd316096a6eccbb07f8c23a743fa5830
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "5e569f51-7993-4f39-b91e-c60c348d2b12",
    "name" : "test interpretation 1",
    "format" : {
      "extension_grid_uuid" : "00000000-0000-0000-0000-000000000000",
      "reverse_extension" : false
    },
    "mode" : "PUBLIC"
  }, {
    "uuid" : "85cae2bb-8eb9-475c-85b1-48225e383786",
    "name" : "test interpretation 2",
    "format" : {
      "extension_grid_uuid" : "00000000-0000-0000-0000-000000000000",
      "reverse_extension" : false
    },
    "mode" : "PUBLIC"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/interpretations

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter interpretations by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Interpretation name
content[].uuid String Interpretation UUID
content[].format.extension_grid_uuid String Extension grid UUID
content[].format.reverse_extension Boolean Is it reverse extension or not
content[].mode String PUBLIC, PRIVATE or LOCKED. A PRIVATE interpretation is listed only for its owner.

Get segments by interpretation

Get a list of segments by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/23e480ba-e826-4fbf-a79a-e7ebda758145/segments?horizontal_scale=MD' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/interpretations/23e480ba-e826-4fbf-a79a-e7ebda758145/segments?horizontal_scale=MD HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f1157fb58f7e7403427b0a13edddd4ed
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "45cebb5c-3910-42e6-9c02-3ed381ce438a",
    "md" : {
      "val" : 0.0
    },
    "vs" : {
      "val" : 3.280839895013123
    },
    "dip" : {
      "val" : 97.19791814183668
    },
    "dip_equal_thickness" : false,
    "throw_equal_thickness" : true,
    "throw" : {
      "val" : 0.0
    }
  }, {
    "uuid" : "362e71e5-bfc1-49d1-be1a-9c00b6267596",
    "md" : {
      "val" : 328.0839895013123
    },
    "vs" : {
      "val" : -0.615877064815856
    },
    "dip" : {
      "val" : 90.00000000000594
    },
    "dip_equal_thickness" : true,
    "throw_equal_thickness" : false,
    "throw" : {
      "val" : 0.49212598425196846
    }
  }, {
    "uuid" : "52bb444b-acec-4753-bd82-56473036d801",
    "md" : {
      "val" : 1500.0000000000005
    },
    "vs" : {
      "val" : -24.350204919093997
    },
    "dip" : {
      "undefined" : true
    },
    "dip_equal_thickness" : false,
    "throw_equal_thickness" : false,
    "throw" : {
      "undefined" : true
    }
  } ]
}

GET /public/api/v1/interpretations/{uuid}/segments

Path parameter Description
uuid Interpretation UUID
Parameter Description
horizontal_scale Horizontal scale for segment calculations. Available values: MD, THL, VS
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].uuid String Segment UUID
content[].md.val Number Measured depth value in project units
content[].vs.val Number Vertical section value in project units
content[].dip.val Number Dip value in degrees
content[].dip.undefined Boolean If true, dip value is undefined
content[].dip_equal_thickness Boolean If true, dip is calculated with equal thickness
content[].throw.val Number Throw value in project units
content[].throw.undefined Boolean If true, throw value is undefined
content[].throw_equal_thickness Boolean If true, throw is calculated with equal thickness

Get starred objects

Get starred objects by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/c359c201-7139-4566-aa9b-75d8b210e268/starred' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/interpretations/c359c201-7139-4566-aa9b-75d8b210e268/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3adac3636516b0f6a4051b61977f6297
Content-Type: application/json

{
  "top" : "c9d43d2f-c7f5-4610-8e6e-f26eb7f4c783",
  "center" : "4a4bc914-81be-41e2-9fb3-26a78bddd9b6",
  "bottom" : "ab277904-6bca-4ce0-b94c-014e4fa54b5a"
}

GET /public/api/v1/interpretations/{uuid}/starred

Path parameter Description
uuid Interpretation UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
top String Starred top horizon UUID
center String Starred center horizon UUID
bottom String Starred bottom horizon UUID

Set starred objects

Set starred objects by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/c359c201-7139-4566-aa9b-75d8b210e268/starred' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "top" : "c9d43d2f-c7f5-4610-8e6e-f26eb7f4c783",
  "center" : "4a4bc914-81be-41e2-9fb3-26a78bddd9b6",
  "bottom" : "ab277904-6bca-4ce0-b94c-014e4fa54b5a"
}'
PUT /public/api/v1/interpretations/c359c201-7139-4566-aa9b-75d8b210e268/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 158

{
  "top" : "c9d43d2f-c7f5-4610-8e6e-f26eb7f4c783",
  "center" : "4a4bc914-81be-41e2-9fb3-26a78bddd9b6",
  "bottom" : "ab277904-6bca-4ce0-b94c-014e4fa54b5a"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 5f50fd1874676bc95bdebcae04bc0cc6

PUT /public/api/v1/interpretations/{uuid}/starred

Path parameter Description
uuid Interpretation UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
top String Horizon UUID to be set as starred top (use "00000000-0000-0000-0000-000000000000" to reset)
center String Horizon UUID to be set as starred center (use "00000000-0000-0000-0000-000000000000" to reset)
bottom String Horizon UUID to be set as starred bottom (use "00000000-0000-0000-0000-000000000000" to reset)

Response body

Empty body

Get auto-typewells by interpretation

Get a list of auto-typewells by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/fac5898a-c617-4906-9c1a-b163924e97ec/autotypewells' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/interpretations/fac5898a-c617-4906-9c1a-b163924e97ec/autotypewells HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 96d2a71051531e8eb38df94c3a415bab
Content-Type: application/json

{
  "content" : [ {
    "auto_typewell_uuid" : "f5894f3c-f670-472f-b010-3f8030a7aa8b"
  } ]
}

GET /public/api/v1/interpretations/{uuid}/autotypewells

Path parameter Description
uuid Interpretation UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].auto_typewell_uuid String Auto-typewell UUID

Modify interpretation segment

Modify segment by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/4be34606-a919-487d-b5a6-a87da512ebe6/segments?horizontal_scale=MD' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "uuid" : "0f227676-9627-4b68-b2a2-7c543cf5b922",
  "md" : {
    "val" : 1500.0
  },
  "vs" : {
    "val" : 750.0
  },
  "dip" : {
    "val" : 60.0
  },
  "dip_equal_thickness" : false,
  "throw" : {
    "val" : 25.0
  },
  "throw_equal_thickness" : true
}'
PATCH /public/api/v1/interpretations/4be34606-a919-487d-b5a6-a87da512ebe6/segments?horizontal_scale=MD HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 259

{
  "uuid" : "0f227676-9627-4b68-b2a2-7c543cf5b922",
  "md" : {
    "val" : 1500.0
  },
  "vs" : {
    "val" : 750.0
  },
  "dip" : {
    "val" : 60.0
  },
  "dip_equal_thickness" : false,
  "throw" : {
    "val" : 25.0
  },
  "throw_equal_thickness" : true
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e7328f99a812f11c0c311c223d728bd2

PATCH /public/api/v1/interpretations/{uuid}/segments

Path parameter Description
uuid Interpretation UUID
Parameter Description
horizontal_scale Horizontal scale for segment calculations. Available values: MD, THL, VS
Header Description
Authorization OAuth2 authorization header
Body field Type Description
uuid String Segment UUID
md.val Number Measured depth value in project units
vs.val Number Vertical section value in project units
dip.val Number Dip value in degrees
dip_equal_thickness Boolean If true, dip is calculated with equal thickness
throw.val Number Throw value in project units
throw_equal_thickness Boolean If true, throw is calculated with equal thickness

Response body

Empty body

Delete interpretation segment

Delete segment by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/dcb97e62-dde2-4356-989c-65149a233272/segments/03752249-1af2-4c6c-8690-5e4234c5a8d1' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/interpretations/dcb97e62-dde2-4356-989c-65149a233272/segments/03752249-1af2-4c6c-8690-5e4234c5a8d1 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: b3e76f8aa579426687b20a912724e406

DELETE /public/api/v1/interpretations/{uuid}/segments/{segmentUuid}

Path parameter Description
uuid Interpretation UUID
segmentUuid Segment UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Lock interpretation

Lock interpretation by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/7dbf1bdc-6184-4751-9c01-eed43b8c5beb/lock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/interpretations/7dbf1bdc-6184-4751-9c01-eed43b8c5beb/lock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6c540b3a1f53e1f98c1fccd95e795936

PATCH /public/api/v1/interpretations/{uuid}/lock

Path parameter Description
uuid Interpretation UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Unlock interpretation

Unlock interpretation by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/34cfb655-52a1-469c-b3a0-25e1f6945dd3/unlock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/interpretations/34cfb655-52a1-469c-b3a0-25e1f6945dd3/unlock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 962a91494b3ef773f1bfece0aa79e908

PATCH /public/api/v1/interpretations/{uuid}/unlock

Path parameter Description
uuid Interpretation UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

4. Horizons

Get horizons metadata

Get a list of horizons by interpretation UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/92ab4a4e-1e9c-4dd4-901f-ad7e90159457/horizons?filter=tEst&offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/interpretations/92ab4a4e-1e9c-4dd4-901f-ad7e90159457/horizons?filter=tEst&offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6f5c3645de3ab4d01d7435bb972e7296
Content-Type: application/json

{
  "content" : [ {
    "name" : "Test horizon 1",
    "uuid" : "45b3df2a-63f8-4d95-834e-ef07a2222ccd"
  }, {
    "name" : "Test horizon 2",
    "uuid" : "f8e05b85-3c00-4a12-96c7-c175c3423ec9"
  }, {
    "name" : "Test horizon 3",
    "uuid" : "0ae4d960-bdc7-43ae-ac51-4856e032163b"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 3,
  "first" : true,
  "last" : true
}

GET /public/api/v1/interpretations/{uuid}/horizons

Path parameter Description
uuid Interpretation UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter horizons by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Horizon name
content[].uuid String Horizon UUID

Get horizons data by interpretation

Get calculated horizons data by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/152e40e6-4aac-461e-a6ba-4ee5897e8db2/horizons/data/spacing/5000' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/interpretations/152e40e6-4aac-461e-a6ba-4ee5897e8db2/horizons/data/spacing/5000 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 43fd2a729c699da368aa5990b3f92963
Content-Type: application/json

{
  "content" : [ {
    "azimuth" : {
      "val" : 71.543
    },
    "horizons" : [ {
      "name" : "!new Hor",
      "tvdss" : {
        "val" : 22.965879265091868
      },
      "uuid" : "f40e9d1e-f35a-469f-bf55-bb9e28539a42"
    }, {
      "name" : "Horizon1",
      "tvdss" : {
        "val" : -3257.8740157480324
      },
      "uuid" : "931e5269-c0b7-40fd-a1c2-471b00ddd55e"
    } ],
    "inclination" : {
      "val" : 0
    },
    "kb" : {
      "val" : 22.965879265091868
    },
    "md" : {
      "val" : 0
    },
    "tvt" : {
      "val" : 0
    },
    "vs_azim" : {
      "azimuth" : {
        "val" : 0
      },
      "vs" : {
        "val" : 3.280839895013124
      }
    },
    "well_name" : "Lateral",
    "x" : {
      "val" : 19.68503937007874
    },
    "y" : {
      "val" : 36.08923884514436
    },
    "z" : {
      "val" : 22.965879265091868
    }
  }, {
    "azimuth" : {
      "val" : 149.253
    },
    "horizons" : [ {
      "name" : "!new Hor",
      "tvdss" : {
        "val" : 22.965879265091868
      },
      "uuid" : "f40e9d1e-f35a-469f-bf55-bb9e28539a42"
    }, {
      "name" : "Horizon1",
      "tvdss" : {
        "val" : -3257.8740157480324
      },
      "uuid" : "931e5269-c0b7-40fd-a1c2-471b00ddd55e"
    } ],
    "inclination" : {
      "val" : 1.33
    },
    "kb" : {
      "val" : 22.965879265091868
    },
    "md" : {
      "val" : 3280.839895013124
    },
    "tvt" : {
      "val" : 3280.0196063852154
    },
    "vs_azim" : {
      "azimuth" : {
        "val" : 0
      },
      "vs" : {
        "val" : -60.07861128428071
      }
    },
    "well_name" : "Lateral",
    "x" : {
      "val" : 53.715600823725445
    },
    "y" : {
      "val" : -27.270212334149477
    },
    "z" : {
      "val" : -3257.0537271201238
    }
  } ]
}

GET /public/api/v1/interpretations/{uuid}/horizons/data/spacing/{spacing}

Path parameter Description
uuid Interpretation UUID
spacing Spacing value
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content[].azimuth.val Number Well azimuth (degrees)
content[].inclination.val Number Well inclination (degrees)
content[].kb.val Number KB (project units)
content[].md.val Number MD (project units)
content[].tvt.val Number TVT (project units)
content[].well_name String Well name
content[].x.val Number X (project units)
content[].y.val Number Y (project units)
content[].z.val Number Z (project units)
content[].vs_azim.azimuth.val Number Well azimuth VS (degrees)
content[].vs_azim.vs.val Number VS (project units)
content[].horizons[].name String Horizon name
content[].horizons[].tvdss.val Number TVDSS (project units)
content[].horizons[].uuid String Horizon UUID

Get horizons data by lateral

Get calculated horizons data by lateral UUID with pagination (one element per page)

Request

$ curl 'https://solo.cloud/public/api/v1/wells/31fa2e70-9dca-44a8-bcc1-0dc8bd6590a0/horizons/data/spacing/5000?offset=0' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/wells/31fa2e70-9dca-44a8-bcc1-0dc8bd6590a0/horizons/data/spacing/5000?offset=0 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f165763d8dcbd0b1b2468bb7a6154a8b
Content-Type: application/json

{
  "content" : [ {
    "azimuth" : {
      "val" : 71.543
    },
    "horizons" : [ {
      "name" : "!new Hor",
      "tvdss" : {
        "val" : 22.965879265091868
      },
      "uuid" : "f40e9d1e-f35a-469f-bf55-bb9e28539a42"
    }, {
      "name" : "Horizon1",
      "tvdss" : {
        "val" : -3257.8740157480324
      },
      "uuid" : "931e5269-c0b7-40fd-a1c2-471b00ddd55e"
    } ],
    "inclination" : {
      "val" : 0
    },
    "kb" : {
      "val" : 22.965879265091868
    },
    "md" : {
      "val" : 0
    },
    "tvt" : {
      "val" : 0
    },
    "vs_azim" : {
      "azimuth" : {
        "val" : 0
      },
      "vs" : {
        "val" : 3.280839895013124
      }
    },
    "well_name" : "Lateral",
    "x" : {
      "val" : 19.68503937007874
    },
    "y" : {
      "val" : 36.08923884514436
    },
    "z" : {
      "val" : 22.965879265091868
    }
  }, {
    "azimuth" : {
      "val" : 149.253
    },
    "horizons" : [ {
      "name" : "!new Hor",
      "tvdss" : {
        "val" : 22.965879265091868
      },
      "uuid" : "f40e9d1e-f35a-469f-bf55-bb9e28539a42"
    }, {
      "name" : "Horizon1",
      "tvdss" : {
        "val" : -3257.8740157480324
      },
      "uuid" : "931e5269-c0b7-40fd-a1c2-471b00ddd55e"
    } ],
    "inclination" : {
      "val" : 1.33
    },
    "kb" : {
      "val" : 22.965879265091868
    },
    "md" : {
      "val" : 3280.839895013124
    },
    "tvt" : {
      "val" : 3280.0196063852154
    },
    "vs_azim" : {
      "azimuth" : {
        "val" : 0
      },
      "vs" : {
        "val" : -60.07861128428071
      }
    },
    "well_name" : "Lateral",
    "x" : {
      "val" : 53.715600823725445
    },
    "y" : {
      "val" : -27.270212334149477
    },
    "z" : {
      "val" : -3257.0537271201238
    }
  } ],
  "interpretation" : {
    "name" : "Interpretation",
    "uuid" : "152e40e6-4aac-461e-a6ba-4ee5897e8db2"
  },
  "offset" : 0,
  "limit" : 1,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/horizons/data/spacing/{spacing}

Path parameter Description
uuid Lateral UUID
spacing Spacing value
Parameter Description
offset Each value corresponds to an ordinal index (0 .. N, where N - the total number of interpretations in specified well) of a separate interpretation with its calculated horizons range
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].azimuth.val Number Well azimuth (degrees)
content[].inclination.val Number Well inclination (degrees)
content[].kb.val Number KB (project units)
content[].md.val Number MD (project units)
content[].tvt.val Number TVT (project units)
content[].well_name String Well name
content[].x.val Number X (project units)
content[].y.val Number Y (project units)
content[].z.val Number Z (project units)
content[].vs_azim.azimuth.val Number Well azimuth VS (degrees)
content[].vs_azim.vs.val Number VS (project units)
content[].horizons[].name String Horizon name
content[].horizons[].tvdss.val Number TVDSS (project units)
content[].horizons[].uuid String Horizon UUID
interpretation.name String Interpretation name
interpretation.uuid String Interpretation UUID

5. Nested wells

Create nested well

Create nested well. Another term for a Nested well is a well plan. It's often referred to as a 'well plan object' in StarSteer and Solo

Request

$ curl 'https://solo.cloud/public/api/v1/wells/06238c84-3457-49f5-a2c4-8d6068aff827/nestedwells' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Nested well name",
  "operator" : "operator",
  "api" : "api",
  "xsrf" : {
    "val" : 0.1
  },
  "ysrf" : {
    "val" : 0.2
  },
  "kb" : {
    "val" : 0.3
  },
  "tie_in_tvd" : {
    "val" : 0.4
  },
  "tie_in_ns" : {
    "val" : 0.5
  },
  "tie_in_ew" : {
    "val" : 0.6
  }
}'
POST /public/api/v1/wells/06238c84-3457-49f5-a2c4-8d6068aff827/nestedwells HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 295

{
  "name" : "Nested well name",
  "operator" : "operator",
  "api" : "api",
  "xsrf" : {
    "val" : 0.1
  },
  "ysrf" : {
    "val" : 0.2
  },
  "kb" : {
    "val" : 0.3
  },
  "tie_in_tvd" : {
    "val" : 0.4
  },
  "tie_in_ns" : {
    "val" : 0.5
  },
  "tie_in_ew" : {
    "val" : 0.6
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: afdd69feff5e3b09d20a8e7a4f70dd9d
Content-Type: application/json

{
  "uuid" : "b03e5610-872f-465c-918c-4d01163c3124"
}

POST /public/api/v1/wells/{uuid}/nestedwells

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Nested well name
operator String Operator name
api String Wellbore identifier
xsrf.val Number X surface wellbore coordinate
ysrf.val Number Y surface wellbore coordinate
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
tie_in_ew.val Number TieInEw
tie_in_ns.val Number TieInNs
tie_in_tvd.val Number TieInTvd

Response body

Path Type Description
uuid String Created nested well UUID

Get nested wells by lateral

Get a list of nested wells by lateral UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/8ed7e23c-5720-4a66-9b02-035119cb54da/nestedwells?offset=0&limit=10&filter=oNe' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/8ed7e23c-5720-4a66-9b02-035119cb54da/nestedwells?offset=0&limit=10&filter=oNe HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8c8102a3b268f1ccc22dae51636b6f1f
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "2a46d5ef-11ee-44aa-af35-9b9d5f809679",
    "name" : "Nested well one",
    "api" : "api nested well",
    "flags" : {
      "has_topsets" : false
    }
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/nestedwells

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter nested wells by the 'name' or 'api' fields. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Nested well UUID
content[].name String Nested well name
content[].api String API nested well number
content[].flags.has_topsets Boolean Flag indicating the presence of topsets

Get nested well metadata

Get nested well metadata data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/0b70f38f-098c-4e45-8613-f1a379861596' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/nestedwells/0b70f38f-098c-4e45-8613-f1a379861596 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c4cb103c1d5ad5f0bab33f394be89049
Content-Type: application/json

{
  "name" : "Nested well one",
  "operator" : "string",
  "api" : "api nested well",
  "xsrf" : {
    "val" : 6.0
  },
  "ysrf" : {
    "val" : 10.0
  },
  "kb" : {
    "val" : 22.96587926509186
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 3.280839895013123
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}

GET /public/api/v1/nestedwells/{uuid}

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
name String Lateral name
operator String Operator name
api String API lateral number
xsrf.val Number X surface coordinate
ysrf.val Number Y surface coordinate
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
tie_in_tvd.val Number Tie in tvd coordinates
tie_in_ns.val Number Tie in NS
tie_in_ew.val Number Tie in EW
corridor_top.val Number Corridor Top value
corridor_base.val Number Corridor Base value

Get nested well ellipses

Get nested well ellipses data by nested well UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/62488021-8565-4b86-8a2e-def80b1ad8b1/ellipses' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/nestedwells/62488021-8565-4b86-8a2e-def80b1ad8b1/ellipses HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 87e803ba99c38304a8ccba299e6a18f1
Content-Type: application/json

{
  "content" : [ {
    "index" : 10.0,
    "value" : {
      "nev" : [ 14.99, 98.23, 41.2, 67.78, 23.89, 12.31, 55.43, 11.23, 34.33 ],
      "messages" : [ ]
    }
  } ]
}

GET /public/api/v1/nestedwells/{nestedWellUuid}/ellipses

Path parameter Description
nestedWellUuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Ellipses points array
content[].index Number Measured Depth value
content[].value.nev Array Ellipse attributes
content[].value.messages Array Comments

Get starred topset

Get starred topset by nested well UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/9e02c706-99a0-4773-a915-1c64dd6df6b8/starred' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/nestedwells/9e02c706-99a0-4773-a915-1c64dd6df6b8/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 33ae7a2fc7f9703fba08b4abb3dd8c74
Content-Type: application/json

{
  "topset" : "0cfcaec8-e098-4880-982c-aa422539caab"
}

GET /public/api/v1/nestedwells/{uuid}/starred

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
topset String Starred topset UUID

Update nested well metadata

Update nested well metadata

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/9400e945-e158-408d-b2d8-aa89dd2da367' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Nested well new name",
  "api" : "api nested well",
  "operator" : "string",
  "xsrf" : {
    "val" : 6.0
  },
  "ysrf" : {
    "val" : 10.0
  },
  "kb" : {
    "val" : 7.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 1.0
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}'
PATCH /public/api/v1/nestedwells/9400e945-e158-408d-b2d8-aa89dd2da367 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 310

{
  "name" : "Nested well new name",
  "api" : "api nested well",
  "operator" : "string",
  "xsrf" : {
    "val" : 6.0
  },
  "ysrf" : {
    "val" : 10.0
  },
  "kb" : {
    "val" : 7.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 1.0
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 5b401c76fd246809fb177e3ce2906fd2

PATCH /public/api/v1/nestedwells/{uuid}

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Nested well name
operator String Operator name
api String API nested well number
xsrf.val Number X surface coordinate
xsrf.undefined Boolean If true then X surface coordinate will be set as parent
ysrf.val Number Y surface coordinate
ysrf.undefined Boolean If true then Y surface coordinate will be set as parent
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
kb.undefined Boolean If true then KB will be set as parent
tie_in_tvd.val Number Tie in TVD
tie_in_tvd.undefined Boolean If true then tie in TVD will be set undefined
tie_in_ns.val Number Tie in NS
tie_in_ns.undefined Boolean If true then tie in NS will be set undefined
tie_in_ew.val Number Tie in EW
tie_in_ew.undefined Boolean If true then tie in EW will be set undefined

Response body

Empty body

Set starred topset

Set starred topset by nested well UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/aabb503d-b9f4-43ee-87ac-88eaa3e6668f/starred' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "topset" : "3c7beae4-57d2-493e-a260-6ece0e2b2a24"
}'
PUT /public/api/v1/nestedwells/aabb503d-b9f4-43ee-87ac-88eaa3e6668f/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 55

{
  "topset" : "3c7beae4-57d2-493e-a260-6ece0e2b2a24"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 1bfc33881eb2a3bbf8bfa23774ccd163

PUT /public/api/v1/nestedwells/{uuid}/starred

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
topset String Topset UUID to set starred (use "00000000-0000-0000-0000-000000000000" to reset)

Response body

Empty body

Lock nested well

Lock nested well by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/9484e486-f904-41cd-83f2-68cafa34a033/lock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/nestedwells/9484e486-f904-41cd-83f2-68cafa34a033/lock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: dbcd2378d3a146fe3604270b99482ed1

PATCH /public/api/v1/nestedwells/{uuid}/lock

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Unlock nested well

Unlock nested well by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/6113c907-3b28-4934-bd76-4f860e6f78e8/unlock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/nestedwells/6113c907-3b28-4934-bd76-4f860e6f78e8/unlock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c8118e1509447fb39ada778696bdf37b

PATCH /public/api/v1/nestedwells/{uuid}/unlock

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete nested well

Delete nested well by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/44b6b722-a9f4-4def-9b89-416ffab64002' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/nestedwells/44b6b722-a9f4-4def-9b89-416ffab64002 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 822711d576be0797976ffddfcb4f8591

DELETE /public/api/v1/nestedwells/{uuid}

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

6. Typewells

Create typewell

Create typewell by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/c80ed1fc-cf9b-472a-8506-54e3ae5519f0/typewells' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Typewell name",
  "operator" : "operator",
  "api" : "api",
  "convergence" : {
    "val" : 90.0
  },
  "azimuth" : {
    "val" : 45.0
  },
  "kb" : {
    "val" : 0.3
  },
  "tieintvd" : {
    "val" : 0.4
  },
  "tieinns" : {
    "val" : 0.5
  },
  "tieinew" : {
    "val" : 0.6
  },
  "xsrfreal" : {
    "val" : 100.0
  },
  "ysrfreal" : {
    "val" : 500.0
  }
}'
POST /public/api/v1/projects/c80ed1fc-cf9b-472a-8506-54e3ae5519f0/typewells HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 378

{
  "name" : "Typewell name",
  "operator" : "operator",
  "api" : "api",
  "convergence" : {
    "val" : 90.0
  },
  "azimuth" : {
    "val" : 45.0
  },
  "kb" : {
    "val" : 0.3
  },
  "tieintvd" : {
    "val" : 0.4
  },
  "tieinns" : {
    "val" : 0.5
  },
  "tieinew" : {
    "val" : 0.6
  },
  "xsrfreal" : {
    "val" : 100.0
  },
  "ysrfreal" : {
    "val" : 500.0
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 605fa5987ce844f0011ce04f64bd64fa
Content-Type: application/json

{
  "uuid" : "68de2f42-83c8-42ab-af89-ef6254654ef4"
}

POST /public/api/v1/projects/{uuid}/typewells

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Typewell name
operator String Operator name
api String API typewell number
convergence.val Number Convergence
azimuth.val Number AzimuthVS
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
tieintvd.val Number TieInTvd
tieinns.val Number TieInNs
tieinew.val Number TieInEw
xsrfreal.val Number X surface wellbore coordinate
ysrfreal.val Number Y surface wellbore coordinate

Response body

Path Type Description
uuid String Created typewell UUID

Get typewells by project

Get a list of typewells by project UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/projects/c80ed1fc-cf9b-472a-8506-54e3ae5519f0/typewells?offset=0&limit=10&filter=oNe' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/c80ed1fc-cf9b-472a-8506-54e3ae5519f0/typewells?offset=0&limit=10&filter=oNe HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 34ee697da27be8ad13b8fe01d67da6a3
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "e90993d4-af68-4774-9099-d4111c08e099",
    "name" : "Typewell one",
    "api" : "api typewell one",
    "flags" : {
      "has_logs" : false,
      "has_topsets" : false,
      "has_mudlogs" : false
    }
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/typewells

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter typewells by the 'name' or 'api' fields. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Typewell UUID
content[].name String Typewell name
content[].api String API typewell number
content[].flags.has_logs Boolean Flag indicating the presence of logs
content[].flags.has_topsets Boolean Flag indicating the presence of topsets
content[].flags.has_mudlogs Boolean Flag indicating the presence of mudlogs

Get typewell metadata

Get typewell metadata

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/aa287621-31b0-42d4-aa32-010fd9347420' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/typewells/aa287621-31b0-42d4-aa32-010fd9347420 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 72ee4714eadefd183927eb7c3d59eb2d
Content-Type: application/json

{
  "uuid" : "aa287621-31b0-42d4-aa32-010fd9347420",
  "name" : "Typewell",
  "operator" : "string",
  "api" : "string",
  "xsrf" : {
    "val" : 19.68503937007874
  },
  "ysrf" : {
    "val" : 32.808398950131235
  },
  "kb" : {
    "val" : 22.96587926509186
  },
  "convergence" : {
    "val" : 0.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 3.280839895013123
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}

GET /public/api/v1/typewells/{uuid}

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
uuid String Typewell UUID
name String Typewell name
operator String Operator name
api String API typewell number
xsrf.val Number X surface coordinate
ysrf.val Number Y surface coordinate
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
convergence.val Number Convergence
tie_in_tvd.val Number Tie in tvd coordinates
tie_in_ns.val Number Tie in NS
tie_in_ew.val Number Tie in EW

Get typewell ellipses

Get typewell ellipses data by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/a8d02870-0050-47b6-aaaa-0e19d7e41fba/ellipses' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/a8d02870-0050-47b6-aaaa-0e19d7e41fba/ellipses HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ad7233bee3d27b88ead92f4f424dc9d7
Content-Type: application/json

{
  "content" : [ {
    "index" : 10.0,
    "value" : {
      "nev" : [ 14.99, 98.23, 41.2, 67.78, 23.89, 12.31, 55.43, 11.23, 34.33 ],
      "messages" : [ ]
    }
  } ]
}

GET /public/api/v1/typewells/{typewellUuid}/ellipses

Path parameter Description
typewellUuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Ellipses points array
content[].index Number Measured Depth value
content[].value.nev Array Ellipse attributes
content[].value.messages Array Comments

Get starred topset

Get starred topset by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/aa287621-31b0-42d4-aa32-010fd9347420/starred' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/typewells/aa287621-31b0-42d4-aa32-010fd9347420/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ace78a4dfc921be5718b06a9697edb64
Content-Type: application/json

{
  "topset" : "dbd9edc5-9237-4ec4-a19b-2a483dda785d"
}

GET /public/api/v1/typewells/{uuid}/starred

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
topset String Starred topset UUID

Get linked laterals

Get linked laterals by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/6e89f84a-ab1b-429b-a732-91974eaafcd8/linked?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/typewells/6e89f84a-ab1b-429b-a732-91974eaafcd8/linked?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e4e02c0a63f263654fc07c7a87a9eb7d
Content-Type: application/json

{
  "content" : [ {
    "shift" : {
      "val" : 1640.4199475065616
    },
    "lateral_id" : "52e7c131-73a3-4cec-a50f-a35cf7c33e5a"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/linked

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].shift.val Number Typewell shift
content[].lateral_id String Lateral UUID

Update typewell metadata

Update typewell metadata

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/e90993d4-af68-4774-9099-d4111c08e099' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Typewell one",
  "api" : "api typewell",
  "operator" : "string",
  "xsrf" : {
    "val" : 6.0
  },
  "ysrf" : {
    "val" : 10.0
  },
  "kb" : {
    "val" : 7.0
  },
  "convergence" : {
    "val" : 0.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 1.0
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}'
PATCH /public/api/v1/typewells/e90993d4-af68-4774-9099-d4111c08e099 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 340

{
  "name" : "Typewell one",
  "api" : "api typewell",
  "operator" : "string",
  "xsrf" : {
    "val" : 6.0
  },
  "ysrf" : {
    "val" : 10.0
  },
  "kb" : {
    "val" : 7.0
  },
  "convergence" : {
    "val" : 0.0
  },
  "tie_in_tvd" : {
    "val" : 0.0
  },
  "tie_in_ns" : {
    "val" : 1.0
  },
  "tie_in_ew" : {
    "val" : 0.0
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: a58bafd285513a9955f8c31aa0aaa991

PATCH /public/api/v1/typewells/{uuid}

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Typewell name
operator String Operator name
api String API typewell number
xsrf.val Number X surface coordinate
ysrf.val Number Y surface coordinate
kb.val Number Kelly Bushing (KB) is the height of the Derek (drill rig) measured from the MSL
convergence.val Number Convergence
tie_in_tvd.val Number Tie in tvd coordinates
tie_in_ns.val Number Tie in NS
tie_in_ew.val Number Tie in EW

Response body

Empty body

Set starred topset

Set starred topset by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/aa287621-31b0-42d4-aa32-010fd9347420/starred' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "topset" : "dbd9edc5-9237-4ec4-a19b-2a483dda785d"
}'
PUT /public/api/v1/typewells/aa287621-31b0-42d4-aa32-010fd9347420/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 55

{
  "topset" : "dbd9edc5-9237-4ec4-a19b-2a483dda785d"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 21d672a281d6ad4e079a79739bb7a376

PUT /public/api/v1/typewells/{uuid}/starred

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
topset String Topset UUID to set starred (use "00000000-0000-0000-0000-000000000000" to reset)

Response body

Empty body

Lock typewell

Lock typewell by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/5bc93d55-1e05-4612-9464-a8b591786fff/lock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/typewells/5bc93d55-1e05-4612-9464-a8b591786fff/lock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 77dfa1995f099bf0bb7276e9eceea8d2

PATCH /public/api/v1/typewells/{uuid}/lock

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Unlock typewell

Unlock typewell by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/4c54c8cd-a4cc-41fd-a802-402f82c9e288/unlock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/typewells/4c54c8cd-a4cc-41fd-a802-402f82c9e288/unlock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 836e600cb2b488615033b38867e4496e

PATCH /public/api/v1/typewells/{uuid}/unlock

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete typewell

Delete typewell by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/810bc655-b857-438e-b2ae-6f17a13912d1' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/typewells/810bc655-b857-438e-b2ae-6f17a13912d1 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 57cc667d4a1ae58bdceb68d45af86627

DELETE /public/api/v1/typewells/{uuid}

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

7. Topsets

Create lateral topset

Create topset by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/0116f3b5-00fc-4ef0-b8dc-f1ee025a4cae/topsets' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Topset name"
}'
POST /public/api/v1/wells/0116f3b5-00fc-4ef0-b8dc-f1ee025a4cae/topsets HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 28

{
  "name" : "Topset name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3bd87be566647d0d3103f1f9a7e938ab
Content-Type: application/json

{
  "uuid" : "04676147-00e2-431e-a3e4-34c326b2202f"
}

POST /public/api/v1/wells/{uuid}/topsets

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Topset name

Response body

Path Type Description
uuid String Created topset UUID

Create typewell topset

Create topset by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/bfa5048a-018f-4e24-9dd6-fa8940baa823/topsets' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Topset name"
}'
POST /public/api/v1/typewells/bfa5048a-018f-4e24-9dd6-fa8940baa823/topsets HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 28

{
  "name" : "Topset name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: d5c73f363ea7547b33813b8af9132298
Content-Type: application/json

{
  "uuid" : "9809bff2-8124-4e0c-af07-ae06aaa52ddf"
}

POST /public/api/v1/typewells/{uuid}/topsets

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Topset name

Response body

Path Type Description
uuid String Created topset UUID

Create nested well topset

Create topset by nested well UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/32c534f8-9ec8-4ff8-a79d-55771eb63554/topsets' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Topset name"
}'
POST /public/api/v1/nestedwells/32c534f8-9ec8-4ff8-a79d-55771eb63554/topsets HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 28

{
  "name" : "Topset name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 5c481f6fccbf771652898090e5eb0617
Content-Type: application/json

{
  "uuid" : "91bc6423-0ef8-4fc7-9540-2ccef6b71aef"
}

POST /public/api/v1/nestedwells/{uuid}/topsets

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Topset name

Response body

Path Type Description
uuid String Created topset UUID

Get topsets by lateral

Get a list of topsets by lateral UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/0116f3b5-00fc-4ef0-b8dc-f1ee025a4cae/topsets?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/0116f3b5-00fc-4ef0-b8dc-f1ee025a4cae/topsets?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 5c8f9d47100f80118dcb6d11621264ec
Content-Type: application/json

{
  "content" : [ {
    "name" : "C Log TopSet KQkvlylgjU",
    "uuid" : "22c49d70-cb7e-41b6-8bda-8da9e8e0a1e6"
  }, {
    "name" : "D Well angfWGrGwI",
    "uuid" : "c8e7be55-8560-4ef6-95a7-fe793621c8c2"
  }, {
    "name" : "Top Set",
    "uuid" : "cb917160-36d9-44d3-8a13-85f9e112d2bf"
  }, {
    "name" : "TopSetDmGnwAaOXw",
    "uuid" : "68b4c8c2-bea1-4c77-a378-0e14b7ad8c94"
  }, {
    "name" : "TopSet Log egHOETUgxZ",
    "uuid" : "95dfdda0-0b94-4755-8f1d-ce2f8d8e198b"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 5,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/topsets

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Topset name
content[].uuid String Topset UUID

Get topsets by typewell

Get a list of topsets by typewell UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/bfa5048a-018f-4e24-9dd6-fa8940baa823/topsets?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/bfa5048a-018f-4e24-9dd6-fa8940baa823/topsets?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c08eb3b8164e75399f289aaeb2cd01d6
Content-Type: application/json

{
  "content" : [ {
    "name" : "C Log TopSet WdzgFlfXgd",
    "uuid" : "6be278b6-91a5-4cf8-a150-0d7cb7ded004"
  }, {
    "name" : "D Well xKlPPKQyZy",
    "uuid" : "25bda8d2-ad92-4364-8323-cba01bade6d5"
  }, {
    "name" : "TopSet Log PwmnhFGSAV",
    "uuid" : "20d72b21-527f-41d5-8eb8-35df81f5b432"
  }, {
    "name" : "TopSetzndjqhqgkt",
    "uuid" : "54caf582-51a0-4b7a-8ed8-3343ba07c9f4"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 4,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/topsets

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Topset name
content[].uuid String Topset UUID

Get topsets by nested well

Get a list of topsets by nested well UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/32c534f8-9ec8-4ff8-a79d-55771eb63554/topsets?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/nestedwells/32c534f8-9ec8-4ff8-a79d-55771eb63554/topsets?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e838021b6cfb3d3a3e72b5260b03974e
Content-Type: application/json

{
  "content" : [ {
    "name" : "C Log TopSet HNwADGkIJA",
    "uuid" : "56645c18-ca5b-4206-8bc3-bbbb6c8e7164"
  }, {
    "name" : "D Well srYyhvTZxZ",
    "uuid" : "e7aaf84b-5dfb-4475-9280-c78694f7f08a"
  }, {
    "name" : "TopSet Log edJMnUPujs",
    "uuid" : "b310740d-aff7-4e07-bf2b-21cc061508ed"
  }, {
    "name" : "Topset name",
    "uuid" : "91bc6423-0ef8-4fc7-9540-2ccef6b71aef"
  }, {
    "name" : "TopSetsPRzCSRzkl",
    "uuid" : "5a2b04c5-5968-47a9-a50a-bd975a270793"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 5,
  "first" : true,
  "last" : true
}

GET /public/api/v1/nestedwells/{uuid}/topsets

Path parameter Description
uuid Nested well UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Topset name
content[].uuid String Topset UUID

Get zones by topset

Get zones by topset UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/zones?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/zones?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: fe4e7c72075a9f019b71904e46fc79e9
Content-Type: application/json

{
  "content" : [ {
    "name" : "zone1",
    "top_start" : "start",
    "top_end" : "end",
    "zone_id" : "b010dcd0-5661-4b58-b40a-4dfdb6835d26"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/topsets/{uuid}/zones

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].zone_id String Zone UUID
content[].name String Zone name
content[].top_start String Start top
content[].top_end String End top
content[].from_tvd_offset Number TVD offset (from)
content[].to_tvd_offset Number TVD offset (to)

Get starred objects

Get starred objects by topset UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/starred' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: a8ce293623c060546cc90c09f848eb75
Content-Type: application/json

{
  "top" : "511daf97-0a11-4686-b3cd-c730782e0c4f",
  "center" : "a41d7f7f-36ba-46e4-9861-d336dea74d83",
  "bottom" : "1a6fbe36-2030-47b0-a93e-bd87913a2907"
}

GET /public/api/v1/topsets/{uuid}/starred

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
top String Starred top top UUID
center String Starred center top UUID
bottom String Starred bottom top UUID

Set starred objects

Set starred objects by topset UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/starred' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "top" : "511daf97-0a11-4686-b3cd-c730782e0c4f",
  "center" : "a41d7f7f-36ba-46e4-9861-d336dea74d83",
  "bottom" : "1a6fbe36-2030-47b0-a93e-bd87913a2907"
}'
PUT /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 158

{
  "top" : "511daf97-0a11-4686-b3cd-c730782e0c4f",
  "center" : "a41d7f7f-36ba-46e4-9861-d336dea74d83",
  "bottom" : "1a6fbe36-2030-47b0-a93e-bd87913a2907"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4b4180aeca3f4ce1c3e770086799ab6d

PUT /public/api/v1/topsets/{uuid}/starred

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
top String Top UUID to be set as starred top (use "00000000-0000-0000-0000-000000000000" to reset)
center String Top UUID to be set as starred center (use "00000000-0000-0000-0000-000000000000" to reset)
bottom String Top UUID to be set as starred bottom (use "00000000-0000-0000-0000-000000000000" to reset)

Response body

Empty body

Update topset

Update topset by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "New topset name"
}'
PATCH /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 32

{
  "name" : "New topset name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 88d2ed18b6ce12e0a4ff239609c03ecf

PATCH /public/api/v1/topsets/{uuid}

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Topset name

Response body

Empty body

Lock topset

Lock topset by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/lock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/lock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 0644fbf3dfd714864e135b918f10fda5

PATCH /public/api/v1/topsets/{uuid}/lock

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Unlock topset

Unlock topset by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/unlock' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>'
PATCH /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf/unlock HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f95947f9fa07f538d3dbb0ef241a806b

PATCH /public/api/v1/topsets/{uuid}/unlock

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete topset

Delete topset by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/topsets/cb917160-36d9-44d3-8a13-85f9e112d2bf HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6e450f68b5f38b401b7366ceb51754b0

DELETE /public/api/v1/topsets/{uuid}

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

8. Tops

Create top

Create top by topset UUID

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/603f3597-55ab-4463-8a3a-22873e5f6aef/tops' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Top name",
  "md" : {
    "val" : 100.5
  },
  "dip" : {
    "val" : 45.0
  },
  "azimuth" : {
    "val" : 180.0
  },
  "dip_classification" : "bedding",
  "confidence" : {
    "val" : 0.95
  },
  "source" : "manual",
  "model_info" : "human"
}'
POST /public/api/v1/topsets/603f3597-55ab-4463-8a3a-22873e5f6aef/tops HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 258

{
  "name" : "Top name",
  "md" : {
    "val" : 100.5
  },
  "dip" : {
    "val" : 45.0
  },
  "azimuth" : {
    "val" : 180.0
  },
  "dip_classification" : "bedding",
  "confidence" : {
    "val" : 0.95
  },
  "source" : "manual",
  "model_info" : "human"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f2bdee48b7ea24c9e2af13250e48bc57
Content-Type: application/json

{
  "uuid" : "cf368e32-58d1-4027-b07f-63e7b8a94ab5"
}

POST /public/api/v1/topsets/{uuid}/tops

Path parameter Description
uuid Topset UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Top name
md Object Measured depth. If present val is set, otherwise undefined is true
md.val Number Measured depth value in project units (must be in [0;100000] range)
md.undefined Boolean Set to true if MD is undefined
dip Object Dip. If present val is set, otherwise undefined is true
dip.val Number Dip value in degrees (must be in [0;90] range)
dip.undefined Boolean Set to true if dip is undefined
azimuth Object Azimuth. If present val is set, otherwise undefined is true
azimuth.val Number Azimuth value in degrees (must be in [0;360) range)
azimuth.undefined Boolean Set to true if azimuth is undefined
dip_classification String Dip classification (must be null or one of: bedding, thin_bed, fault, fracture_open, fracture_healed, fracture_induced)
confidence Object Confidence. If present val is set, otherwise undefined is true
confidence.val Number Confidence value (must be in [0;1] range)
confidence.undefined Boolean Set to true if confidence is undefined
source String Top source (must be null or one of: manual, ai)
model_info String Model info

Response body

Path Type Description
uuid String Created top UUID

Get tops by topset

Get a list of tops by topset UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/topsets/3a5732a2-beab-4b43-8c0a-0282f00f3594/tops?offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/topsets/3a5732a2-beab-4b43-8c0a-0282f00f3594/tops?offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c0d2f39be62daf7e1c4f460cd3385853
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "142276cf-f61d-4d50-bd25-1e26628d9a6f",
    "name" : "Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 9.84251968503937
    },
    "dip" : {
      "val" : 114.59155902616465
    },
    "azimuth" : {
      "val" : 57.29577951308232
    },
    "dip_classification" : "dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "source",
    "model_info" : "model info"
  }, {
    "uuid" : "0b740167-9cd6-4113-832d-79d846210d5e",
    "name" : "Update Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 13.123359580052492
    },
    "dip" : {
      "val" : 171.88733853924697
    },
    "azimuth" : {
      "val" : 114.59155902616465
    },
    "dip_classification" : "update dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "update source",
    "model_info" : "update model info"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/topsets/{uuid}/tops

Path parameter Description
uuid Topset UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Top UUID
content[].name String Top name
content[].topset_name String Top name
content[].md.val Number Measured depth value in project units
content[].dip.val Number Dip value in project units
content[].azimuth.val Number Azimuth value in project units
content[].dip_classification String Dip classification
content[].confidence.val Number Confidence value
content[].source String Source
content[].model_info String Model info

Get tops by lateral

Get a list of tops by lateral UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/f9e6ac41-f8ac-46d2-8705-ad23a864d5d3/tops?offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/f9e6ac41-f8ac-46d2-8705-ad23a864d5d3/tops?offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4193fd9c6c3b2f5e358f40237f20bb27
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "a48ae2fc-52fe-44a0-9851-7cd8b84b74df",
    "name" : "Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 9.84251968503937
    },
    "dip" : {
      "val" : 114.59155902616465
    },
    "azimuth" : {
      "val" : 57.29577951308232
    },
    "dip_classification" : "dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "source",
    "model_info" : "model info"
  }, {
    "uuid" : "19c5fba6-8b0b-479a-96b5-3edc61f4ed1b",
    "name" : "Update Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 13.123359580052492
    },
    "dip" : {
      "val" : 171.88733853924697
    },
    "azimuth" : {
      "val" : 114.59155902616465
    },
    "dip_classification" : "update dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "update source",
    "model_info" : "update model info"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/tops

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Top UUID
content[].name String Top name
content[].topset_name String Top name
content[].md.val Number Measured depth value in project units
content[].dip.val Number Dip value in project units
content[].azimuth.val Number Azimuth value in project units
content[].dip_classification String Dip classification
content[].confidence.val Number Confidence value
content[].source String Source
content[].model_info String Model info

Get tops by typewell

Get a list of tops by typewell UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/daa9dd06-7ef1-4f14-9360-986829bda4ac/tops?offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/daa9dd06-7ef1-4f14-9360-986829bda4ac/tops?offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 1aace872afef183265ad85a100ea8b26
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "9ada6503-f9be-43dc-a677-eb0d4b303853",
    "name" : "Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 9.84251968503937
    },
    "dip" : {
      "val" : 114.59155902616465
    },
    "azimuth" : {
      "val" : 57.29577951308232
    },
    "dip_classification" : "dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "source",
    "model_info" : "model info"
  }, {
    "uuid" : "0aa5df08-61fa-4ba9-a4b3-3336c9333a2f",
    "name" : "Update Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 13.123359580052492
    },
    "dip" : {
      "val" : 171.88733853924697
    },
    "azimuth" : {
      "val" : 114.59155902616465
    },
    "dip_classification" : "update dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "update source",
    "model_info" : "update model info"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/tops

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Top UUID
content[].name String Top name
content[].topset_name String Top name
content[].md.val Number Measured depth value in project units
content[].dip.val Number Dip value in project units
content[].azimuth.val Number Azimuth value in project units
content[].dip_classification String Dip classification
content[].confidence.val Number Confidence value
content[].source String Source
content[].model_info String Model info

Get tops by nested well

Get a list of tops by nested well UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/5f6394ee-159f-4a47-aad7-f3713d4e73e1/tops?offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/nestedwells/5f6394ee-159f-4a47-aad7-f3713d4e73e1/tops?offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 77d5ce6860991ba42e958fc40fc90f30
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "fc9978a9-e686-4bfd-bd1b-eb74f9644090",
    "name" : "Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 9.84251968503937
    },
    "dip" : {
      "val" : 114.59155902616465
    },
    "azimuth" : {
      "val" : 57.29577951308232
    },
    "dip_classification" : "dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "source",
    "model_info" : "model info"
  }, {
    "uuid" : "c6f84e28-1a0f-4dda-99a4-27a0bc01a5d3",
    "name" : "Update Top",
    "topset_name" : "Top Set",
    "md" : {
      "val" : 13.123359580052492
    },
    "dip" : {
      "val" : 171.88733853924697
    },
    "azimuth" : {
      "val" : 114.59155902616465
    },
    "dip_classification" : "update dip classification",
    "confidence" : {
      "val" : 0.5
    },
    "source" : "update source",
    "model_info" : "update model info"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/nestedwells/{uuid}/tops

Path parameter Description
uuid Nested well UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Top UUID
content[].name String Top name
content[].topset_name String Top name
content[].md.val Number Measured depth value in project units
content[].dip.val Number Dip value in project units
content[].azimuth.val Number Azimuth value in project units
content[].dip_classification String Dip classification
content[].confidence.val Number Confidence value
content[].source String Source
content[].model_info String Model info

Update top

Update top by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/tops/19c5fba6-8b0b-479a-96b5-3edc61f4ed1b' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "New top name",
  "md" : {
    "val" : 999.5
  },
  "dip" : {
    "val" : 90.0
  },
  "azimuth" : {
    "val" : 359.999
  },
  "dip_classification" : "thin_bed",
  "confidence" : {
    "val" : 0.98
  },
  "source" : "ai",
  "model_info" : "model-v1"
}'
PATCH /public/api/v1/tops/19c5fba6-8b0b-479a-96b5-3edc61f4ed1b HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 264

{
  "name" : "New top name",
  "md" : {
    "val" : 999.5
  },
  "dip" : {
    "val" : 90.0
  },
  "azimuth" : {
    "val" : 359.999
  },
  "dip_classification" : "thin_bed",
  "confidence" : {
    "val" : 0.98
  },
  "source" : "ai",
  "model_info" : "model-v1"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 71258131d03a35a7141dc2dda2ac2703

PATCH /public/api/v1/tops/{uuid}

Path parameter Description
uuid Top UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Top name
md Object Measured depth. If present val is set, otherwise undefined is true
md.val Number Measured depth value in project units (must be in [0;100000] range)
md.undefined Boolean Set to true if MD is undefined
dip Object Dip. If present val is set, otherwise undefined is true
dip.val Number Dip value in degrees (must be in [0;90] range)
dip.undefined Boolean Set to true if dip is undefined
azimuth Object Azimuth. If present val is set, otherwise undefined is true
azimuth.val Number Azimuth value in degrees (must be in [0;360) range)
azimuth.undefined Boolean Set to true if azimuth is undefined
dip_classification String Dip classification (must be null or one of: bedding, thin_bed, fault, fracture_open, fracture_healed, fracture_induced)
confidence Object Confidence. If present val is set, otherwise undefined is true
confidence.val Number Confidence value (must be in [0;1] range)
confidence.undefined Boolean Set to true if confidence is undefined
source String Top source (must be null or one of: manual, ai)
model_info String Model info

Response body

Empty body

Delete top

Delete top by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/tops/19c5fba6-8b0b-479a-96b5-3edc61f4ed1b' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/tops/19c5fba6-8b0b-479a-96b5-3edc61f4ed1b HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 179c0529c6b8f1c3e847369552fa0142

DELETE /public/api/v1/tops/{uuid}

Path parameter Description
uuid Top UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

9. Target lines

Create target line

Create target line by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/0eb731e8-97f2-42cd-b365-fe79d070bee0/targetlines' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Target line name",
  "origin_x" : {
    "val" : 100.5
  },
  "origin_y" : {
    "val" : 200.5
  },
  "origin_z" : {
    "val" : 300.5
  },
  "target_x" : {
    "val" : 400.5
  },
  "target_y" : {
    "val" : 500.5
  },
  "target_z" : {
    "val" : 600.5
  }
}'
POST /public/api/v1/wells/0eb731e8-97f2-42cd-b365-fe79d070bee0/targetlines HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 273

{
  "name" : "Target line name",
  "origin_x" : {
    "val" : 100.5
  },
  "origin_y" : {
    "val" : 200.5
  },
  "origin_z" : {
    "val" : 300.5
  },
  "target_x" : {
    "val" : 400.5
  },
  "target_y" : {
    "val" : 500.5
  },
  "target_z" : {
    "val" : 600.5
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: bb82aee7e9c2fc0815725cb2a00624e0
Content-Type: application/json

{
  "uuid" : "5c2ebc13-0bf6-4cd9-b813-cdbb6518b0f7"
}

POST /public/api/v1/wells/{uuid}/targetlines

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Target line name
origin_x.val Number Origin point X coordinate (project units)
origin_y.val Number Origin point Y coordinate (project units)
origin_z.val Number Origin point Z coordinate (project units)
target_x.val Number Target point X coordinate (project units)
target_y.val Number Target point Y coordinate (project units)
target_z.val Number Target point Z coordinate (project units)

Response body

Path Type Description
uuid String Created target line UUID

Create target line from waypoints

Create target line from waypoints by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/fd42629b-c491-45d4-a83f-e20d77bcf429/targetlines/fromwaypoints' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Target line name",
  "waypoints" : [ {
    "name" : "Waypoint1",
    "break" : false,
    "order" : 2,
    "x" : {
      "val" : 30.0
    },
    "y" : {
      "val" : 10.0
    },
    "z" : {
      "val" : 40.0
    }
  }, {
    "name" : "Waypoint2",
    "break" : false,
    "order" : 3,
    "x" : {
      "val" : 70.0
    },
    "y" : {
      "val" : 80.0
    },
    "z" : {
      "val" : 90.0
    }
  } ]
}'
POST /public/api/v1/wells/fd42629b-c491-45d4-a83f-e20d77bcf429/targetlines/fromwaypoints HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 421

{
  "name" : "Target line name",
  "waypoints" : [ {
    "name" : "Waypoint1",
    "break" : false,
    "order" : 2,
    "x" : {
      "val" : 30.0
    },
    "y" : {
      "val" : 10.0
    },
    "z" : {
      "val" : 40.0
    }
  }, {
    "name" : "Waypoint2",
    "break" : false,
    "order" : 3,
    "x" : {
      "val" : 70.0
    },
    "y" : {
      "val" : 80.0
    },
    "z" : {
      "val" : 90.0
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 532ab3d9c68c187464557dde8ae24c20
Content-Type: application/json

{
  "uuid" : "408e6d3d-34a0-448a-a486-b3ad25aa7177"
}

POST /public/api/v1/wells/{uuid}/targetlines/fromwaypoints

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Target line name
waypoints Array Target line waypoints list
waypoints[].name String Waypoint name
waypoints[].order Number Order of the waypoint in the list
waypoints[].x.val Number Waypoint X coordinate (project units)
waypoints[].y.val Number Waypoint Y coordinate (project units)
waypoints[].z.val Number Waypoint Z coordinate (project units)
waypoints[].break Boolean Is the waypoint break point or not

Response body

Path Type Description
uuid String Created target line UUID

Get target lines by lateral

Get a list of target lines by lateral UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/c57ab763-1e7b-4050-ae5f-f89392c31a00/targetlines?offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/c57ab763-1e7b-4050-ae5f-f89392c31a00/targetlines?offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 818b6c8008c4bb248a29c1a0772d8589
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "6f6fb1a3-4995-4a70-a2d0-675ce8e7246a",
    "name" : "Target Line",
    "waypoints" : [ {
      "name" : "Origin",
      "order" : 0,
      "x" : {
        "val" : 3.280839895013123
      },
      "y" : {
        "val" : 6.561679790026246
      },
      "z" : {
        "val" : 9.84251968503937
      },
      "top_corridor_tvd" : {
        "undefined" : true
      },
      "base_corridor_tvd" : {
        "undefined" : true
      },
      "left_corridor" : {
        "undefined" : true
      },
      "right_corridor" : {
        "undefined" : true
      },
      "break" : false
    }, {
      "name" : "Target",
      "order" : 1,
      "x" : {
        "val" : 13.123359580052492
      },
      "y" : {
        "val" : 16.404199475065617
      },
      "z" : {
        "val" : 19.68503937007874
      },
      "top_corridor_tvd" : {
        "val" : 25.0
      },
      "base_corridor_tvd" : {
        "val" : 25.0
      },
      "left_corridor" : {
        "val" : 25.0
      },
      "right_corridor" : {
        "val" : 25.0
      },
      "break" : false
    } ]
  }, {
    "uuid" : "cb37fd94-8f2a-4768-9c24-2661ce0d3327",
    "name" : "Update Target Line",
    "waypoints" : [ {
      "name" : "Origin",
      "order" : 0,
      "x" : {
        "val" : 36.41732283464567
      },
      "y" : {
        "val" : 39.69816272965879
      },
      "z" : {
        "val" : 42.979002624671914
      },
      "top_corridor_tvd" : {
        "undefined" : true
      },
      "base_corridor_tvd" : {
        "undefined" : true
      },
      "left_corridor" : {
        "undefined" : true
      },
      "right_corridor" : {
        "undefined" : true
      },
      "break" : false
    }, {
      "name" : "Target",
      "order" : 1,
      "x" : {
        "val" : 46.25984251968504
      },
      "y" : {
        "val" : 49.54068241469816
      },
      "z" : {
        "val" : 52.82152230971129
      },
      "top_corridor_tvd" : {
        "val" : 28.608923884514432
      },
      "base_corridor_tvd" : {
        "val" : 28.608923884514432
      },
      "left_corridor" : {
        "val" : 25.0
      },
      "right_corridor" : {
        "val" : 25.0
      },
      "break" : false
    } ]
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/targetlines

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Target line UUID
content[].name String Target line name
content[].waypoints Array Target line waypoints list
content[].waypoints[].name String Waypoint name
content[].waypoints[].order Number Order of the waypoint in the list
content[].waypoints[].x.val Number Waypoint X coordinate (project units)
content[].waypoints[].y.val Number Waypoint Y coordinate (project units)
content[].waypoints[].z.val Number Waypoint Z coordinate (project units)
content[].waypoints[].top_corridor_tvd Object Waypoint top corridor TVD. If present val is set, otherwise undefined is true
content[].waypoints[].top_corridor_tvd.val Number Waypoint top corridor TVD value (project units)
content[].waypoints[].base_corridor_tvd Object Waypoint base corridor TVD. If present val is set, otherwise undefined is true
content[].waypoints[].base_corridor_tvd.val Number Waypoint base corridor TVD value (project units)
content[].waypoints[].left_corridor Object Waypoint left corridor. If present val is set, otherwise undefined is true
content[].waypoints[].left_corridor.val Number Waypoint left corridor value (project units)
content[].waypoints[].right_corridor Object Waypoint right corridor. If present val is set, otherwise undefined is true
content[].waypoints[].right_corridor.val Number Waypoint right corridor value (project units)
content[].waypoints[].break Boolean Is the waypoint break point or not

Get target line data

Get a list of target line data by target line UUID

Request

$ curl 'https://solo.cloud/public/api/v1/targetlines/1d2811b3-fec7-4be7-9827-52be137ba105/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/targetlines/1d2811b3-fec7-4be7-9827-52be137ba105/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: a14ac2149b49dbfd3034bbcdfc641127
Content-Type: application/json

{
  "content" : [ {
    "azimuth" : {
      "val" : 45
    },
    "delta_tvd" : {
      "val" : -9.842519685039372
    },
    "delta_vs" : {
      "val" : 9.842519685039374
    },
    "inclination" : {
      "val" : 125.26438968275465
    },
    "length" : {
      "val" : 17.047744168985016
    },
    "name" : "Target Line",
    "origin_base_corridor_tvd" : {
      "val" : 38.1233595800525
    },
    "origin_md" : {
      "val" : 1594.0953719875106
    },
    "origin_top_corridor_tvd" : {
      "val" : -11.876640419947508
    },
    "origin_tvd" : {
      "val" : 13.123359580052496
    },
    "origin_vs" : {
      "val" : -26.246719160104988
    },
    "origin_x" : {
      "val" : 3.280839895013124
    },
    "origin_y" : {
      "val" : 6.561679790026248
    },
    "origin_z" : {
      "val" : 9.842519685039372
    },
    "target_base_corridor_tvd" : {
      "val" : 28.280839895013127
    },
    "target_md" : {
      "val" : 1106.7125786029799
    },
    "target_top_corridor_tvd" : {
      "val" : -21.71916010498688
    },
    "target_tvd" : {
      "val" : 3.2808398950131235
    },
    "target_vs" : {
      "val" : -16.404199475065614
    },
    "target_x" : {
      "val" : 13.123359580052496
    },
    "target_y" : {
      "val" : 16.40419947506562
    },
    "target_z" : {
      "val" : 19.685039370078744
    },
    "tvd_vs" : {
      "val" : -13.123359580052487
    },
    "uuid" : "1d2811b3-fec7-4be7-9827-52be137ba105"
  } ]
}

GET /public/api/v1/targetlines/{uuid}/data

Path parameter Description
uuid Target line UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content[].name String Target line name
content[].uuid String Target line UUID
content[].azimuth.val Number Azimuth (degrees)
content[].inclination.val Number Inclination (degrees)
content[].length.val Number Length (project units)
content[].delta_tvd.val Number Difference between target and base TVD (project units)
content[].delta_vs.val Number Difference between target and base VS (project units)
content[].tvd_vs.val Number TVD@0VS
content[].origin_vs.val Number Origin point VS (project units)
content[].origin_tvd.val Number Origin point TVD (project units)
content[].origin_x.val Number Origin point X coordinate (project units)
content[].origin_y.val Number Origin point Y coordinate (project units)
content[].origin_z.val Number Origin point Z coordinate (project units)
content[].origin_md Object Origin MD value. If target line belongs to trajectory val is set, otherwise undefined is true
content[].origin_md.val Number Origin MD value (project units)
content[].origin_md.undefined Boolean true if origin MD undefined
content[].origin_base_corridor_tvd Object Base corridor origin TVD. If present val is set, otherwise undefined is true
content[].origin_base_corridor_tvd.val Number Base corridor origin TVD value (project units)
content[].origin_base_corridor_tvd.undefined Boolean true if base corridor origin is undefined
content[].origin_top_corridor_tvd Object Top corridor origin TVD. If present val is set, otherwise undefined is true
content[].origin_top_corridor_tvd.val Number Top corridor origin TVD (project units)
content[].origin_top_corridor_tvd.undefined Boolean true if top TVD corridor is undefined
content[].target_vs.val Number Target point VS (project units)
content[].target_tvd.val Number Target point TVD (project units)
content[].target_x.val Number Target point X coordinate (project units)
content[].target_y.val Number Target point Y coordinate (project units)
content[].target_z.val Number Target point Z coordinate (project units)
content[].target_md Object Target MD. If target line belongs to trajectory val is set, otherwise undefined is true
content[].target_md.val Number Target MD value (project units)
content[].target_md.undefined Boolean true if target MD is undefined
content[].target_base_corridor_tvd Object Base corridor target TVD. If present val is set, otherwise undefined is true
content[].target_base_corridor_tvd.val Number Base corridor target TVD (project units)
content[].target_base_corridor_tvd.undefined Boolean true if base corridor target TVD is undefined
content[].target_top_corridor_tvd Object Top corridor target TVD. If present val is set, otherwise undefined is true
content[].target_top_corridor_tvd.val Number Top corridor target TVD (project units)
content[].target_top_corridor_tvd.undefined Boolean true if top corridor target TVD is undefined

Get target lines data by lateral

Get a list of target lines data by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/ae11bec3-cc41-43ff-aeb7-c02df25e75c8/targetlines/data?offset=0&limit=20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/ae11bec3-cc41-43ff-aeb7-c02df25e75c8/targetlines/data?offset=0&limit=20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: da16a36c50f77dd3756950701fb18cc8
Content-Type: application/json

{
  "content" : [ {
    "azimuth" : {
      "val" : 45
    },
    "delta_tvd" : {
      "val" : -9.842519685039372
    },
    "delta_vs" : {
      "val" : 9.842519685039374
    },
    "inclination" : {
      "val" : 125.26438968275465
    },
    "length" : {
      "val" : 17.047744168985016
    },
    "name" : "Target Line",
    "origin_base_corridor_tvd" : {
      "val" : 38.1233595800525
    },
    "origin_md" : {
      "val" : 1594.0953719875106
    },
    "origin_top_corridor_tvd" : {
      "val" : -11.876640419947508
    },
    "origin_tvd" : {
      "val" : 13.123359580052496
    },
    "origin_vs" : {
      "val" : -26.246719160104988
    },
    "origin_x" : {
      "val" : 3.280839895013124
    },
    "origin_y" : {
      "val" : 6.561679790026248
    },
    "origin_z" : {
      "val" : 9.842519685039372
    },
    "target_base_corridor_tvd" : {
      "val" : 28.280839895013127
    },
    "target_md" : {
      "val" : 1106.7125786029799
    },
    "target_top_corridor_tvd" : {
      "val" : -21.71916010498688
    },
    "target_tvd" : {
      "val" : 3.2808398950131235
    },
    "target_vs" : {
      "val" : -16.404199475065614
    },
    "target_x" : {
      "val" : 13.123359580052496
    },
    "target_y" : {
      "val" : 16.40419947506562
    },
    "target_z" : {
      "val" : 19.685039370078744
    },
    "tvd_vs" : {
      "val" : -13.123359580052487
    },
    "uuid" : "02bc371d-fba5-4c5d-b3d2-a92178bc3228"
  } ],
  "offset" : 0,
  "limit" : 20,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/targetlines/data

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Target line name
content[].uuid String Target line UUID
content[].azimuth.val Number Azimuth (degrees)
content[].inclination.val Number Inclination (degrees)
content[].length.val Number Length (project units)
content[].delta_tvd.val Number Difference between target and base TVD (project units)
content[].delta_vs.val Number Difference between target and base VS (project units)
content[].tvd_vs.val Number TVD@0VS
content[].origin_vs.val Number Origin point VS (project units)
content[].origin_tvd.val Number Origin point TVD (project units)
content[].origin_x.val Number Origin point X coordinate (project units)
content[].origin_y.val Number Origin point Y coordinate (project units)
content[].origin_z.val Number Origin point Z coordinate (project units)
content[].origin_md Object Origin MD value. If target line belongs to trajectory val is set, otherwise undefined is true
content[].origin_md.val Number Origin MD value (project units)
content[].origin_md.undefined Boolean true if origin MD undefined
content[].origin_base_corridor_tvd Object Base corridor origin TVD. If present val is set, otherwise undefined is true
content[].origin_base_corridor_tvd.val Number Base corridor origin TVD value (project units)
content[].origin_base_corridor_tvd.undefined Boolean true if base corridor origin is undefined
content[].origin_top_corridor_tvd Object Top corridor origin TVD. If present val is set, otherwise undefined is true
content[].origin_top_corridor_tvd.val Number Top corridor origin TVD (project units)
content[].origin_top_corridor_tvd.undefined Boolean true if top TVD corridor is undefined
content[].target_vs.val Number Target point VS (project units)
content[].target_tvd.val Number Target point TVD (project units)
content[].target_x.val Number Target point X coordinate (project units)
content[].target_y.val Number Target point Y coordinate (project units)
content[].target_z.val Number Target point Z coordinate (project units)
content[].target_md Object Target MD. If target line belongs to trajectory val is set, otherwise undefined is true
content[].target_md.val Number Target MD value (project units)
content[].target_md.undefined Boolean true if target MD is undefined
content[].target_base_corridor_tvd Object Base corridor target TVD. If present val is set, otherwise undefined is true
content[].target_base_corridor_tvd.val Number Base corridor target TVD (project units)
content[].target_base_corridor_tvd.undefined Boolean true if base corridor target TVD is undefined
content[].target_top_corridor_tvd Object Top corridor target TVD. If present val is set, otherwise undefined is true
content[].target_top_corridor_tvd.val Number Top corridor target TVD (project units)
content[].target_top_corridor_tvd.undefined Boolean true if top corridor target TVD is undefined

Get starred target line by lateral

Get starred target line by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/4f8b1656-1b2d-42fe-a1b1-51b55d988a05/targetlines/starred' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/4f8b1656-1b2d-42fe-a1b1-51b55d988a05/targetlines/starred HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 0f18f17d2f9a96391bd6fc195dcf899e
Content-Type: application/json

{
  "name" : "Target Line",
  "uuid" : "f18efec3-0982-429b-a424-7fd79c7b53dd"
}

GET /public/api/v1/wells/{uuid}/targetlines/starred

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
uuid String Target line UUID
name String Target line name

Update target line

Update target line by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/targetlines/a6b69a8b-abaa-498b-9dad-b7b1028e10e3' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "New target line name",
  "origin_x" : {
    "val" : 1000.5
  },
  "origin_y" : {
    "val" : 2000.5
  },
  "origin_z" : {
    "val" : 3000.5
  },
  "target_x" : {
    "val" : 4000.5
  },
  "target_y" : {
    "val" : 5000.5
  },
  "target_z" : {
    "val" : 6000.5
  }
}'
PATCH /public/api/v1/targetlines/a6b69a8b-abaa-498b-9dad-b7b1028e10e3 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 283

{
  "name" : "New target line name",
  "origin_x" : {
    "val" : 1000.5
  },
  "origin_y" : {
    "val" : 2000.5
  },
  "origin_z" : {
    "val" : 3000.5
  },
  "target_x" : {
    "val" : 4000.5
  },
  "target_y" : {
    "val" : 5000.5
  },
  "target_z" : {
    "val" : 6000.5
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c283b29b45588b3ba65e9e84883688d5

PATCH /public/api/v1/targetlines/{uuid}

Path parameter Description
uuid Target line UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Target line name
origin_x.val Number Origin point X coordinate (project units)
origin_y.val Number Origin point Y coordinate (project units)
origin_z.val Number Origin point Z coordinate (project units)
target_x.val Number Target point X coordinate (project units)
target_y.val Number Target point Y coordinate (project units)
target_z.val Number Target point Z coordinate (project units)

Response body

Empty body

Update target line from waypoints

Update target line from waypoints by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/targetlines/9ec89688-4517-48c6-b8b6-38cbe540c475/fromwaypoints' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Target line updated name",
  "waypoints" : [ {
    "name" : "Waypoint100",
    "break" : false,
    "order" : 2,
    "x" : {
      "val" : 30.0
    },
    "y" : {
      "val" : 10.0
    },
    "z" : {
      "val" : 40.0
    }
  }, {
    "name" : "Waypoint500",
    "break" : false,
    "order" : 3,
    "x" : {
      "val" : 70.0
    },
    "y" : {
      "val" : 80.0
    },
    "z" : {
      "val" : 90.0
    }
  } ]
}'
PATCH /public/api/v1/targetlines/9ec89688-4517-48c6-b8b6-38cbe540c475/fromwaypoints HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 433

{
  "name" : "Target line updated name",
  "waypoints" : [ {
    "name" : "Waypoint100",
    "break" : false,
    "order" : 2,
    "x" : {
      "val" : 30.0
    },
    "y" : {
      "val" : 10.0
    },
    "z" : {
      "val" : 40.0
    }
  }, {
    "name" : "Waypoint500",
    "break" : false,
    "order" : 3,
    "x" : {
      "val" : 70.0
    },
    "y" : {
      "val" : 80.0
    },
    "z" : {
      "val" : 90.0
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4ed7e55610d193c7ed0f8d16fe56e406

PATCH /public/api/v1/targetlines/{uuid}/fromwaypoints

Path parameter Description
uuid Target line UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Target line name
waypoints Array Target line waypoints list
waypoints[].name String Waypoint name
waypoints[].order Number Order of the waypoint in the list
waypoints[].x.val Number Waypoint X coordinate (project units)
waypoints[].y.val Number Waypoint Y coordinate (project units)
waypoints[].z.val Number Waypoint Z coordinate (project units)
waypoints[].break Boolean Is the waypoint break point or not

Response body

Empty body

Delete target line

Delete target line by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/targetlines/20bc6ca0-14c5-4f53-9e2c-46dcbba0681c' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/targetlines/20bc6ca0-14c5-4f53-9e2c-46dcbba0681c HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 1c5da09ceffcfd899193e7d6d3a19fef

DELETE /public/api/v1/targetlines/{uuid}

Path parameter Description
uuid Target line UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

10. Logs

Create lateral log

Create log by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/1ae8678e-2ff9-4b65-8d6a-673b313e20b5/logs' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Log name"
}'
POST /public/api/v1/wells/1ae8678e-2ff9-4b65-8d6a-673b313e20b5/logs HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 25

{
  "name" : "Log name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 0a4dca28da22e6ed63a473b4665a579c
Content-Type: application/json

{
  "uuid" : "2e507c83-b6a6-4b20-8849-ce7f60238504"
}

POST /public/api/v1/wells/{uuid}/logs

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Log name

Response body

Path Type Description
uuid String Created log UUID

Create typewell log

Create log by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/d668b6d6-f9cd-4742-a1cf-85f0929e0d31/logs' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Log name"
}'
POST /public/api/v1/typewells/d668b6d6-f9cd-4742-a1cf-85f0929e0d31/logs HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 25

{
  "name" : "Log name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4058d790d5f8876404f8a1afc1e1c0d9
Content-Type: application/json

{
  "uuid" : "425cbeda-686f-406a-8755-65af8b7cf2af"
}

POST /public/api/v1/typewells/{uuid}/logs

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Log name

Response body

Path Type Description
uuid String Created log UUID

Get logs by lateral

Get a list of logs by lateral UUID with pagination. Logs that do not contain data will not be included in the response. After creating the log, you need to fill it with data using the commands Extend log data or Replace log data

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5e8fa31b-6464-42fc-975a-de4f8c7280da/logs?offset=0&limit=10&filter=mMa' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5e8fa31b-6464-42fc-975a-de4f8c7280da/logs?offset=0&limit=10&filter=mMa HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 9fc2206ab8d079aae1d5829062faae70
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "23e9d40c-daf9-42bf-8951-55c52add822a",
    "name" : "Gamma Ray",
    "is_discrete" : false
  }, {
    "uuid" : "fa8fd983-f063-440c-9600-696f99d71498",
    "name" : "Gamma Discrete",
    "is_discrete" : true,
    "discrete_log_palette" : {
      "palette_pairs" : [ {
        "palette" : {
          "name" : "Name 1",
          "color" : "#ffffff00"
        },
        "discrete_value" : 1
      }, {
        "palette" : {
          "name" : "Name 2",
          "color" : "#ff008000"
        },
        "discrete_value" : 2
      }, {
        "palette" : {
          "name" : "Name 3",
          "color" : "#ff000000"
        },
        "discrete_value" : 3
      }, {
        "palette" : {
          "name" : "Name 4",
          "color" : "#ff00bfff"
        },
        "discrete_value" : 4
      } ],
      "out_of_range_color" : "#ff8f9ac1"
    }
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/logs

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter logs by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Log name
content[].is_discrete Boolean true for discrete logs, otherwise false
content[].discrete_log_palette Object Discrete log palette settings
content[].discrete_log_palette.palette_pairs Array Palette mappings for discrete values
content[].discrete_log_palette.palette_pairs[].palette Object Palette description
content[].discrete_log_palette.palette_pairs[].palette.name String Palette item name
content[].discrete_log_palette.palette_pairs[].palette.color String Palette item color
content[].discrete_log_palette.palette_pairs[].discrete_value Number Discrete value mapped to the palette item
content[].discrete_log_palette.out_of_range_color String Out-of-range color for discrete log palette
content[].uuid String Log UUID

Get logs by typewell

Get a list of logs by typewell UUID with pagination. Logs that do not contain data will not be included in the response. After creating the log, you need to fill it with data using the commands Extend log data or Replace log data

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/34460491-681c-4d21-9f11-438f25cc2895/logs?offset=0&limit=10&filter=mMa' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/34460491-681c-4d21-9f11-438f25cc2895/logs?offset=0&limit=10&filter=mMa HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3df80d1a3617b4fcd0eba3dc801de7ad
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "e84bcdc6-662f-42ed-a434-eab9b9fc6744",
    "name" : "Gamma Ray",
    "is_discrete" : false
  }, {
    "uuid" : "19c18d20-d864-4f4b-aecc-90c271934932",
    "name" : "Gamma Discrete",
    "is_discrete" : true,
    "discrete_log_palette" : {
      "palette_pairs" : [ {
        "palette" : {
          "name" : "Name 1",
          "color" : "#ffffff00"
        },
        "discrete_value" : 1
      }, {
        "palette" : {
          "name" : "Name 2",
          "color" : "#ff008000"
        },
        "discrete_value" : 2
      }, {
        "palette" : {
          "name" : "Name 3",
          "color" : "#ff000000"
        },
        "discrete_value" : 3
      }, {
        "palette" : {
          "name" : "Name 4",
          "color" : "#ff00bfff"
        },
        "discrete_value" : 4
      } ],
      "out_of_range_color" : "#ff8f9ac1"
    }
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/logs

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter logs by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Log name
content[].is_discrete Boolean true for discrete logs, otherwise false
content[].discrete_log_palette Object Discrete log palette settings
content[].discrete_log_palette.palette_pairs Array Palette mappings for discrete values
content[].discrete_log_palette.palette_pairs[].palette Object Palette description
content[].discrete_log_palette.palette_pairs[].palette.name String Palette item name
content[].discrete_log_palette.palette_pairs[].palette.color String Palette item color
content[].discrete_log_palette.palette_pairs[].discrete_value Number Discrete value mapped to the palette item
content[].discrete_log_palette.out_of_range_color String Out-of-range color for discrete log palette
content[].uuid String Log UUID

Get log data

Get log data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/logs/f983506d-185b-4f7a-9e29-778776c29f24/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/logs/f983506d-185b-4f7a-9e29-778776c29f24/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: a857332fb67f580b90f3591676a865f4
Content-Type: application/json

{
  "log_points" : [ {
    "data" : {
      "val" : -3688.6927
    },
    "md" : {
      "val" : 744.6263999999999
    }
  }, {
    "data" : {
      "val" : 16.581
    },
    "md" : {
      "val" : 744.7787999999999
    }
  }, {
    "data" : {
      "val" : -11.85
    },
    "md" : {
      "val" : 744.9311999999999
    }
  }, {
    "data" : {
      "val" : 15.187
    },
    "md" : {
      "val" : 745.0835999999999
    }
  }, {
    "data" : {
      "val" : -4.363
    },
    "md" : {
      "val" : 745.2359999999999
    }
  }, {
    "data" : {
      "val" : -40.475
    },
    "md" : {
      "val" : 745.3883999999999
    }
  }, {
    "data" : {
      "val" : 61.463
    },
    "md" : {
      "val" : 745.5407999999999
    }
  }, {
    "data" : {
      "val" : 82.305
    },
    "md" : {
      "val" : 745.6931999999999
    }
  }, {
    "data" : {
      "val" : 114.139
    },
    "md" : {
      "val" : 745.8455999999999
    }
  }, {
    "data" : {
      "val" : 144.503
    },
    "md" : {
      "val" : 745.9979999999999
    }
  } ]
}

GET /public/api/v1/logs/{uuid}/data

Path parameter Description
uuid Log UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
log_points Array Points array
log_points[].data Object Point data
log_points[].data.val Number Point data value
log_points[].md Object Point MD
log_points[].md.val Number Point MD value

Update log metadata

Update log metadata by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/logs/b22aad03-98d0-4732-ab00-6ee34f6ca52a' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "New log name",
  "is_discrete" : true,
  "discrete_log_palette" : {
    "palette_pairs" : [ {
      "palette" : {
        "name" : "Name 1",
        "color" : "#ffffff00"
      },
      "discrete_value" : 1
    }, {
      "palette" : {
        "name" : "Name 2",
        "color" : "#ff008000"
      },
      "discrete_value" : 2
    }, {
      "palette" : {
        "name" : "Name 3",
        "color" : "#ff000000"
      },
      "discrete_value" : 3
    }, {
      "palette" : {
        "name" : "Name 4",
        "color" : "#ff00bfff"
      },
      "discrete_value" : 4
    } ],
    "out_of_range_color" : "#ff8f9ac1"
  }
}'
PATCH /public/api/v1/logs/b22aad03-98d0-4732-ab00-6ee34f6ca52a HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 640

{
  "name" : "New log name",
  "is_discrete" : true,
  "discrete_log_palette" : {
    "palette_pairs" : [ {
      "palette" : {
        "name" : "Name 1",
        "color" : "#ffffff00"
      },
      "discrete_value" : 1
    }, {
      "palette" : {
        "name" : "Name 2",
        "color" : "#ff008000"
      },
      "discrete_value" : 2
    }, {
      "palette" : {
        "name" : "Name 3",
        "color" : "#ff000000"
      },
      "discrete_value" : 3
    }, {
      "palette" : {
        "name" : "Name 4",
        "color" : "#ff00bfff"
      },
      "discrete_value" : 4
    } ],
    "out_of_range_color" : "#ff8f9ac1"
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: dace8a3657edca23c56073efa62d2541

PATCH /public/api/v1/logs/{uuid}

Path parameter Description
uuid Log UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Log name
unit String Measure unit of point data values related to the log
is_discrete Boolean true for discrete logs, otherwise false
discrete_log_palette Object Discrete log palette settings
discrete_log_palette.palette_pairs Array Palette mappings for discrete values
discrete_log_palette.palette_pairs[].palette Object Palette description
discrete_log_palette.palette_pairs[].palette.name String Palette item name
discrete_log_palette.palette_pairs[].palette.color String Palette item color
discrete_log_palette.palette_pairs[].discrete_value Number Discrete value mapped to the palette item
discrete_log_palette.out_of_range_color String Out-of-range color for discrete log palette

Response body

Empty body

Extend log data

Extend log data

Request

$ curl 'https://solo.cloud/public/api/v1/logs/13d69135-62f5-4e49-b45c-afd373dd0238/data' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "log_points" : [ {
    "value" : {
      "val" : 96.36
    },
    "index" : {
      "val" : 6494.5
    }
  }, {
    "value" : {
      "val" : 16.36
    },
    "index" : {
      "val" : -999.25
    }
  } ],
  "value_unit" : "ft",
  "index_unit" : "ft"
}'
PATCH /public/api/v1/logs/13d69135-62f5-4e49-b45c-afd373dd0238/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 256

{
  "log_points" : [ {
    "value" : {
      "val" : 96.36
    },
    "index" : {
      "val" : 6494.5
    }
  }, {
    "value" : {
      "val" : 16.36
    },
    "index" : {
      "val" : -999.25
    }
  } ],
  "value_unit" : "ft",
  "index_unit" : "ft"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8c92b8a398330603c3b935fc1131ed19

PATCH /public/api/v1/logs/{uuid}/data

Path parameter Description
uuid Log UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
index_unit String Measure unit of point MD values related to the log. Accepted values: m, ft
value_unit String Measure unit of point data values related to the log
log_points Array Log points array
log_points[].value.val Number Point data value
log_points[].index.val Number Point MD value

Response body

Empty body

Replace log data

Replace log data

Request

$ curl 'https://solo.cloud/public/api/v1/logs/f983506d-185b-4f7a-9e29-778776c29f24/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "log_points" : [ {
    "value" : {
      "val" : 96.36
    },
    "index" : {
      "val" : 6494.5
    }
  }, {
    "value" : {
      "val" : 16.36
    },
    "index" : {
      "val" : -999.25
    }
  } ],
  "value_unit" : "ft",
  "index_unit" : "ft"
}'
PUT /public/api/v1/logs/f983506d-185b-4f7a-9e29-778776c29f24/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 256

{
  "log_points" : [ {
    "value" : {
      "val" : 96.36
    },
    "index" : {
      "val" : 6494.5
    }
  }, {
    "value" : {
      "val" : 16.36
    },
    "index" : {
      "val" : -999.25
    }
  } ],
  "value_unit" : "ft",
  "index_unit" : "ft"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 75317a1f866ecb8fc18611b38b1db9bb

PUT /public/api/v1/logs/{uuid}/data

Path parameter Description
uuid Log UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
index_unit String Measure unit of point MD values related to the log. Accepted values: m, ft
value_unit String Measure unit of point data values related to the log
log_points Array Log points array
log_points[].value.val Number Point data value
log_points[].index.val Number Point MD value

Response body

Empty body

Move log to well folder

Move log to well folder

Request

$ curl 'https://solo.cloud/public/api/v1/logs/381d11da-b312-46df-8ffb-40cffe33cc96/folder' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "folder" : "27c1377a-5d40-4429-9be8-42e36f43247c"
}'
PUT /public/api/v1/logs/381d11da-b312-46df-8ffb-40cffe33cc96/folder HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 55

{
  "folder" : "27c1377a-5d40-4429-9be8-42e36f43247c"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: bec9f4bdfe531b367e434c3f824a938e

PUT /public/api/v1/logs/{uuid}/folder

Path parameter Description
uuid Log UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
folder String Well folder UUID. Pass null to move the log to the well root

Response body

Empty body

Delete log

Delete log by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/logs/381d11da-b312-46df-8ffb-40cffe33cc96' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/logs/381d11da-b312-46df-8ffb-40cffe33cc96 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ff828476903076665111f3279b2fc826

DELETE /public/api/v1/logs/{uuid}

Path parameter Description
uuid Log UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

11. Images

Create image

Request

$ curl 'https://solo.cloud/public/api/v1/wells/3ab7dc13-8fc0-4c78-b896-3e833c9a1409/images' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "image name",
  "azimuth" : {
    "val" : 0.0
  },
  "bottom_left" : {
    "vs" : {
      "val" : -30.0
    },
    "tvdss" : {
      "val" : -67.0
    }
  },
  "top_right" : {
    "vs" : {
      "val" : 50.0
    },
    "tvdss" : {
      "val" : -50.0
    }
  }
}'
POST /public/api/v1/wells/3ab7dc13-8fc0-4c78-b896-3e833c9a1409/images HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 275

{
  "name" : "image name",
  "azimuth" : {
    "val" : 0.0
  },
  "bottom_left" : {
    "vs" : {
      "val" : -30.0
    },
    "tvdss" : {
      "val" : -67.0
    }
  },
  "top_right" : {
    "vs" : {
      "val" : 50.0
    },
    "tvdss" : {
      "val" : -50.0
    }
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2fea2b541794ff9d28306ef57ae73dbb
Content-Type: application/json

{
  "uuid" : "9deaf200-3982-436a-afaa-3ddffe74a0e5"
}

POST /public/api/v1/wells/{uuid}/images

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Image name
azimuth.val Number Azimuth in degrees image is applicable to. If missed azimuth from lateral will be applied
bottom_left Object Bottom left image anchor point
top_right Object Top right image anchor point
bottom_left.vs.val Number VS point coordinate value in project units
bottom_left.tvdss.val Number TVDSS point coordinate value in project units
top_right.vs.val Number VS point coordinate value in project units
top_right.tvdss.val Number TVDSS point coordinate value in project units

Response body

Path Type Description
uuid String Created image UUID

Update image

Request

$ curl 'https://solo.cloud/public/api/v1/images/9dbdc05c-12fa-4749-8e1e-a2fe2b13059b' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "new image name",
  "azimuth" : {
    "val" : 0.0
  },
  "bottom_left" : {
    "vs" : {
      "val" : -100.0
    },
    "tvdss" : {
      "val" : -50.0
    }
  },
  "top_right" : {
    "vs" : {
      "val" : -50.0
    },
    "tvdss" : {
      "val" : -40.0
    }
  }
}'
PUT /public/api/v1/images/9dbdc05c-12fa-4749-8e1e-a2fe2b13059b HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 281

{
  "name" : "new image name",
  "azimuth" : {
    "val" : 0.0
  },
  "bottom_left" : {
    "vs" : {
      "val" : -100.0
    },
    "tvdss" : {
      "val" : -50.0
    }
  },
  "top_right" : {
    "vs" : {
      "val" : -50.0
    },
    "tvdss" : {
      "val" : -40.0
    }
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 9aa472568768026d7272e22383d91113

PUT /public/api/v1/images/{uuid}

Path parameter Description
uuid Updated image UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Image name
azimuth.val Number Azimuth in degrees image is applicable to. If missed azimuth from lateral will be applied
bottom_left Object Bottom left image anchor point
top_right Object Top right image anchor point
bottom_left.vs.val Number VS point coordinate value in project units
bottom_left.tvdss.val Number TVDSS point coordinate value in project units
top_right.vs.val Number VS point coordinate value in project units
top_right.tvdss.val Number TVDSS point coordinate value in project units

Response body

Empty body

Upload image

Request

$ curl 'https://solo.cloud/public/api/v1/images/d18a4585-f881-42b9-9f20-b692fdc2cc7f/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: image/png; charset=ISO-8859-1' \
    -d '<binary image data>'
PUT /public/api/v1/images/d18a4585-f881-42b9-9f20-b692fdc2cc7f/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: image/png; charset=ISO-8859-1
Host: solo.cloud
Content-Length: 19

<binary image data>

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2e03a207a45d1f9b8f93a5615ec24ecf

PUT /public/api/v1/images/{uuid}/data

Path parameter Description
uuid Image UUID
Header Description
Authorization OAuth2 authorization header
Content-Type Image type. Only 'image/png' is supported at the moment

Response body

Empty body

Upload image (multipart)

Request

$ curl 'https://solo.cloud/public/api/v1/images/b4f31a1e-b5d8-471c-9801-7f5c35735e01/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: multipart/form-data; boundary="5Qyb3RoRo8GKUzKpNituZCi2q0cBnXwcw6o"' \
    -F 'image=<binary image data>;type=image/png'
PUT /public/api/v1/images/b4f31a1e-b5d8-471c-9801-7f5c35735e01/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: multipart/form-data; boundary="5Qyb3RoRo8GKUzKpNituZCi2q0cBnXwcw6o"; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: solo.cloud

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image
Content-Type: image/png

<binary image data>
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8e5ee48bd4b8c0fc42980b9386d258b2

PUT /public/api/v1/images/{uuid}/data

Path parameter Description
uuid Image UUID
Part Description
image Request part containing PNG image
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

12. Mudlogs

Create lateral mudlog

Create mudlog by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/c66a5c25-74ee-49a9-a0f3-ba534afaae94/mudlogs' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Mudlog name"
}'
POST /public/api/v1/wells/c66a5c25-74ee-49a9-a0f3-ba534afaae94/mudlogs HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 28

{
  "name" : "Mudlog name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 7f80000741f2bfb88c4a5914ab110550
Content-Type: application/json

{
  "uuid" : "add37d42-297a-45f1-aedf-1e24c2cedb70"
}

POST /public/api/v1/wells/{uuid}/mudlogs

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Mudlog name

Response body

Path Type Description
uuid String Created mudlog UUID

Create typewell mudlog

Create mudlog by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/6e0990ab-4d47-4d11-9419-610710f5b3af/mudlogs' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Mudlog name"
}'
POST /public/api/v1/typewells/6e0990ab-4d47-4d11-9419-610710f5b3af/mudlogs HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 28

{
  "name" : "Mudlog name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 31a07bb33e2a1fae524891f4152dedb7
Content-Type: application/json

{
  "uuid" : "d6632f38-4c11-4599-9754-5ce9785c82d4"
}

POST /public/api/v1/typewells/{uuid}/mudlogs

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Mudlog name

Response body

Path Type Description
uuid String Created mudlog UUID

Get mudlogs by lateral

Get a list of mudlogs by lateral UUID with pagination. Mudlogs that do not contain data will not be included in the response

Request

$ curl 'https://solo.cloud/public/api/v1/wells/c66a5c25-74ee-49a9-a0f3-ba534afaae94/mudlogs?offset=0&limit=10&filter=mMa' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/c66a5c25-74ee-49a9-a0f3-ba534afaae94/mudlogs?offset=0&limit=10&filter=mMa HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 69b66d7d3768e572b99c06f3e7ee1ca4
Content-Type: application/json

{
  "content" : [ {
    "name" : "Gamma Ray",
    "uuid" : "3d693e06-53fe-47ca-989b-683c7470ee38"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/mudlogs

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter mudlogs by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Mudlog name
content[].uuid String Mudlog UUID

Get mudlogs by typewell

Get a list of mudlogs by typewell UUID with pagination. Mudlogs that do not contain data will not be included in the response

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/6e0990ab-4d47-4d11-9419-610710f5b3af/mudlogs?offset=0&limit=10&filter=mMa' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/6e0990ab-4d47-4d11-9419-610710f5b3af/mudlogs?offset=0&limit=10&filter=mMa HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 21b465d082652879009e6f23c3000a69
Content-Type: application/json

{
  "content" : [ {
    "name" : "Gamma Ray",
    "uuid" : "c430b6ce-f0df-4dcb-a698-7c2a761642b3"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/mudlogs

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter mudlogs by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].name String Mudlog name
content[].uuid String Mudlog UUID

Get mudlog data

Get mudlog data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: a772b3733c4b8d66454ed8bb1374090b
Content-Type: application/json

{
  "logs" : [ {
    "uuid" : "ecac502b-545f-49d9-9fd8-f9f2edb79cc2",
    "name" : "Mudlog channel1",
    "unit" : "Mudlog channel1 unit",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "undefined" : true
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "val" : 2.0
      }
    } ]
  }, {
    "uuid" : "7c953674-7cbb-4252-938f-d334077fc34d",
    "name" : "Mudlog channel2",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "val" : 178.0
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "undefined" : true
      }
    } ]
  }, {
    "uuid" : "b4e7c095-fab7-4744-9706-874ade42799f",
    "name" : "Mudlog channel1",
    "unit" : "Mudlog channel1 unit",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "undefined" : true
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "val" : 2.0
      }
    } ]
  }, {
    "uuid" : "e3766f70-75e2-4736-a950-fa6a0fa60822",
    "name" : "Mudlog channel2",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "val" : 178.0
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "undefined" : true
      }
    } ]
  } ]
}

GET /public/api/v1/mudlogs/{uuid}/data

Path parameter Description
uuid Mudlog UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
logs[].uuid String Log UUID
logs[].name String Log name
logs[].unit String Log unit
logs[].log_points Array Log points array
logs[].log_points[].md.val Number Point MD value (project units)
logs[].log_points[].data.val Number Point data value
logs[].log_points[].data.undefined Boolean true if point data value is undefined"

Update mudlog metadata

Update mudlog metadata by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated mudlog name"
}'
PATCH /public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 36

{
  "name" : "Updated mudlog name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 333dc8cef46c26d0d2bc1fa3ae5a9282

PATCH /public/api/v1/mudlogs/{uuid}

Path parameter Description
uuid Mudlog UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Mudlog name

Response body

Empty body

Upload\replace mudlog data

Upload\replace mudlog data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a/data?visual_bound_max=100.5' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "logs" : [ {
    "name" : "Mudlog channel1",
    "unit" : "Mudlog channel1 unit",
    "lithology_type" : "HALITE",
    "solid_color" : "BLUE",
    "pattern_color" : "GREEN",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "undefined" : true
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "val" : 2.0
      }
    } ]
  }, {
    "name" : "Mudlog channel2",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "val" : 178.0
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "undefined" : true
      }
    } ]
  } ]
}'
PUT /public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a/data?visual_bound_max=100.5 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 684

{
  "logs" : [ {
    "name" : "Mudlog channel1",
    "unit" : "Mudlog channel1 unit",
    "lithology_type" : "HALITE",
    "solid_color" : "BLUE",
    "pattern_color" : "GREEN",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "undefined" : true
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "val" : 2.0
      }
    } ]
  }, {
    "name" : "Mudlog channel2",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "val" : 178.0
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "undefined" : true
      }
    } ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6ff420ca43e59c5c7bedd390968bc5a5

PUT /public/api/v1/mudlogs/{uuid}/data

Path parameter Description
uuid Mudlog UUID
Parameter Description
visual_bound_max Max value of mudlog visual bound (optional)
Header Description
Authorization OAuth2 authorization header
Body field Type Description
logs Array Array of mudlog channels. Each channel is an object with the following fields:
logs[].name String Log name
logs[].unit String Log unit
logs[].lithology_type String Log lithology type, allowed values are 'EMPTY', 'CLAY_SHALE', 'SAND_SANDSTONE', 'ARGILLACEOUS_OR_SHALY_SAND', 'LIMESTONE', 'SANDY_LIMESTONE', 'DOLOMITE', 'GYPSUM', 'SALT', 'CHALK', 'HALITE', 'BRECCIA', 'OPEN_UPWARD_TRIANGLES', 'SANDY_OR_SILTY_SHALE', 'SILTY_LIMESTONE', 'ARGILLACEOUS_SHALY_LIMESTONE', 'DOLOMITIC_LIMESTONE_LIMY_DOLOMITE', 'SANDY_DOLOMITE', 'SILTY_DOLOMITE', 'ARGILLACEOUS_SHALY_DOLOMITE', 'SILT_SILTSTONE', 'DOLOMITIC_SILTSTONE', 'ANHYDRITE', 'IGNEOUS', 'METAMORPHIC', 'CALCARENITE', 'CALCARENITE_DOLOMITE', 'CALCARENITIC_LIMESTONE', 'MARL', 'COARSE_CLASTIC_CARBONATE', 'DOLOMITIC_SAND', 'SILTSTONE', 'INGE', 'HAL', 'TILL', 'CEMENT', 'MARLSTONE', 'CLAY', 'SHALE', 'SCHOL', 'SHGY', 'IGNVOLC', 'CHERT', 'CONGLOMERATE', 'CGL', 'META', 'BENT', 'ANHY', 'GYP', 'SANDSTONE', 'CONGLOMERATIC_SANDSTONE', 'BENTONITE', 'BRECCIAS', 'MARLS', 'PACKSTONE', 'WACKESTONE'
logs[].solid_color String Log solid color, allowed values are 'CYAN_BLUE', 'BLUE', 'INDIGO', 'GREEN', 'TEAL_GREEN', 'TEAL', 'OLIVE_YELLOW', 'GOLD', 'ORANGE', 'RED_ORANGE', 'RED', 'PINK', 'MAGENTA', 'DARK_BLUE_GRAY', 'GRAY'
logs[].pattern_color String Log pattern color, allowed values are 'CYAN_BLUE', 'BLUE', 'INDIGO', 'GREEN', 'TEAL_GREEN', 'TEAL', 'OLIVE_YELLOW', 'GOLD', 'ORANGE', 'RED_ORANGE', 'RED', 'PINK', 'MAGENTA', 'DARK_BLUE_GRAY', 'GRAY'
logs[].log_points Array Log points array
logs[].log_points[].md.val Number Point MD value (project units)
logs[].log_points[].data.val Number Point data value
logs[].log_points[].data.undefined Boolean true if point data value is undefined

Response body

Empty body

Append mudlog data

Append mudlog data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a/data?visual_bound_max=100.5' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "logs" : [ {
    "name" : "Mudlog channel1",
    "unit" : "Mudlog channel1 unit",
    "lithology_type" : "HALITE",
    "solid_color" : "BLUE",
    "pattern_color" : "GREEN",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "undefined" : true
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "val" : 2.0
      }
    } ]
  }, {
    "name" : "Mudlog channel2",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "val" : 178.0
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "undefined" : true
      }
    } ]
  } ]
}'
PATCH /public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a/data?visual_bound_max=100.5 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 684

{
  "logs" : [ {
    "name" : "Mudlog channel1",
    "unit" : "Mudlog channel1 unit",
    "lithology_type" : "HALITE",
    "solid_color" : "BLUE",
    "pattern_color" : "GREEN",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "undefined" : true
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "val" : 2.0
      }
    } ]
  }, {
    "name" : "Mudlog channel2",
    "log_points" : [ {
      "md" : {
        "val" : 100.0
      },
      "data" : {
        "val" : 178.0
      }
    }, {
      "md" : {
        "val" : 200.0
      },
      "data" : {
        "undefined" : true
      }
    } ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 454729b0a10191a0476bbec2bcefffa4

PATCH /public/api/v1/mudlogs/{uuid}/data

Path parameter Description
uuid Mudlog UUID
Parameter Description
visual_bound_max Max value of mudlog visual bound (optional)
Header Description
Authorization OAuth2 authorization header
Body field Type Description
logs Array Array of mudlog channels to append. Each channel is an object with the following fields:
logs[].name String Log name
logs[].unit String Log unit
logs[].lithology_type String Log lithology type, allowed values are 'EMPTY', 'CLAY_SHALE', 'SAND_SANDSTONE', 'ARGILLACEOUS_OR_SHALY_SAND', 'LIMESTONE', 'SANDY_LIMESTONE', 'DOLOMITE', 'GYPSUM', 'SALT', 'CHALK', 'HALITE', 'BRECCIA', 'OPEN_UPWARD_TRIANGLES', 'SANDY_OR_SILTY_SHALE', 'SILTY_LIMESTONE', 'ARGILLACEOUS_SHALY_LIMESTONE', 'DOLOMITIC_LIMESTONE_LIMY_DOLOMITE', 'SANDY_DOLOMITE', 'SILTY_DOLOMITE', 'ARGILLACEOUS_SHALY_DOLOMITE', 'SILT_SILTSTONE', 'DOLOMITIC_SILTSTONE', 'ANHYDRITE', 'IGNEOUS', 'METAMORPHIC', 'CALCARENITE', 'CALCARENITE_DOLOMITE', 'CALCARENITIC_LIMESTONE', 'MARL', 'COARSE_CLASTIC_CARBONATE', 'DOLOMITIC_SAND', 'SILTSTONE', 'INGE', 'HAL', 'TILL', 'CEMENT', 'MARLSTONE', 'CLAY', 'SHALE', 'SCHOL', 'SHGY', 'IGNVOLC', 'CHERT', 'CONGLOMERATE', 'CGL', 'META', 'BENT', 'ANHY', 'GYP', 'SANDSTONE', 'CONGLOMERATIC_SANDSTONE', 'BENTONITE', 'BRECCIAS', 'MARLS', 'PACKSTONE', 'WACKESTONE'
logs[].solid_color String Log solid color, allowed values are 'CYAN_BLUE', 'BLUE', 'INDIGO', 'GREEN', 'TEAL_GREEN', 'TEAL', 'OLIVE_YELLOW', 'GOLD', 'ORANGE', 'RED_ORANGE', 'RED', 'PINK', 'MAGENTA', 'DARK_BLUE_GRAY', 'GRAY'
logs[].pattern_color String Log pattern color, allowed values are 'CYAN_BLUE', 'BLUE', 'INDIGO', 'GREEN', 'TEAL_GREEN', 'TEAL', 'OLIVE_YELLOW', 'GOLD', 'ORANGE', 'RED_ORANGE', 'RED', 'PINK', 'MAGENTA', 'DARK_BLUE_GRAY', 'GRAY'
logs[].log_points Array Log points array
logs[].log_points[].md.val Number Point MD value (project units)
logs[].log_points[].data.val Number Point data value
logs[].log_points[].data.undefined Boolean true if point data value is undefined

Response body

Empty body

Delete mudlog

Delete mudlog by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/mudlogs/21203872-78b9-42f5-870f-ddaf91537f2a HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8c6d5f177c29ca876f4a930742a62569

DELETE /public/api/v1/mudlogs/{uuid}

Path parameter Description
uuid Mudlog UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

13. Drilling traces

Get traces collection

Get the list of predefined traces

Request

$ curl 'https://solo.cloud/public/api/v1/traces' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/traces HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 205344dc3550ae2feecbb27b205214a4
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "f18afa65-7b06-4f6a-9494-746b3f10272f",
    "name" : "Axial Shock"
  }, {
    "uuid" : "97e29152-c59d-4055-b7e3-7d823e3eb122",
    "name" : "Axial Vibration"
  }, {
    "uuid" : "a415fee9-3992-4915-9ba2-262b084500f9",
    "name" : "Azimuth"
  }, {
    "uuid" : "f93bf5a7-9755-4163-9c44-6d107967db4b",
    "name" : "Bit depth"
  }, {
    "uuid" : "508ac83a-8d7e-45e6-b8c7-be7aa5dccbec",
    "name" : "Bit Depth Vertical"
  }, {
    "uuid" : "6a300b55-f00c-49ff-926a-7654a18731b2",
    "name" : "Bit on Bottom"
  }, {
    "uuid" : "cbfc47a9-4bb0-4a69-9747-136b5b5fa453",
    "name" : "Block position"
  }, {
    "uuid" : "1690e9e7-3c19-4053-8788-6935a0b2d034",
    "name" : "Block Velocity"
  }, {
    "uuid" : "a3fcfa5d-8881-499d-91e8-48a7b3dc2215",
    "name" : "MWD Continuous Inclination"
  }, {
    "uuid" : "512cf80d-8872-435f-8e88-bed593b12670",
    "name" : "MWD Continuous Azimuth"
  }, {
    "uuid" : "19d0f8f5-fd1c-41f8-86c4-939a5dada63e",
    "name" : "Caliper"
  }, {
    "uuid" : "e5145f9f-e946-432c-ab0b-6bf0fbe9188c",
    "name" : "Casing Pressure"
  }, {
    "uuid" : "cc9ad146-13ae-4127-801c-4a689be7487d",
    "name" : "Choke Pressure"
  }, {
    "uuid" : "274c2682-91d7-4a31-b0e3-8928ef561f0a",
    "name" : "Circulation hours"
  }, {
    "uuid" : "b7f8a98c-e6b5-46cf-ac77-fcb2a52588f8",
    "name" : "Collar RPM"
  }, {
    "uuid" : "e1f88165-de61-4da0-be1a-ce2d9d788cf3",
    "name" : "D-exponent"
  }, {
    "uuid" : "fd5fdd95-2cd8-4879-8403-2509ee3f66ee",
    "name" : "Density"
  }, {
    "uuid" : "544e3dd7-1464-4196-825b-b4da1085e4ff",
    "name" : "Depth of Cut"
  }, {
    "uuid" : "5e3a4999-9c76-4857-8cbf-eccf51539bbf",
    "name" : "Differential Pressure"
  }, {
    "uuid" : "2fd13e54-cfb7-477a-9c56-55c20b2cadb8",
    "name" : "Dip Angle"
  }, {
    "uuid" : "15be30d7-5ade-4595-ba27-e5ce9d1bf83e",
    "name" : "Downhole MSE"
  }, {
    "uuid" : "1e96aa39-75b9-4990-8042-a02a61a08646",
    "name" : "Downhole TQ"
  }, {
    "uuid" : "627bb479-067b-4e60-b4de-7679c48c6d0f",
    "name" : "Downhole WOB"
  }, {
    "uuid" : "78b342b0-ec47-4d9b-ae3a-0df49448c1ec",
    "name" : "PWD ECD"
  }, {
    "uuid" : "992a7d4e-f854-424d-911a-c674ef8e87f4",
    "name" : "Flow Out %"
  }, {
    "uuid" : "bda8a0dd-ced2-46bd-a82a-1db75b62653c",
    "name" : "Gamma Ray"
  }, {
    "uuid" : "cf0042b1-9c10-4eca-8aa6-3954147f4fad",
    "name" : "Total Gas"
  }, {
    "uuid" : "45fbab1e-efb3-420d-9786-6f3d6f2214ed",
    "name" : "Gas C1"
  }, {
    "uuid" : "fb2bceaf-d7c6-4921-b20b-1f6152f57060",
    "name" : "Gas C2"
  }, {
    "uuid" : "643fbb3b-fe7f-4fda-a276-295fc65ceb67",
    "name" : "Gas C3"
  }, {
    "uuid" : "cb23ab73-57c3-4344-af71-4a1c60cc024c",
    "name" : "Gas C4"
  }, {
    "uuid" : "20853910-11ea-46fb-b3a7-582e63625085",
    "name" : "Gas C5"
  }, {
    "uuid" : "5525d952-8db1-4641-b2fa-18fd185b7c9d",
    "name" : "Gas CO2"
  }, {
    "uuid" : "3ed2dacd-93ac-4e38-95ed-0a7b8b82c60e",
    "name" : "Gas H2S"
  }, {
    "uuid" : "27784730-2602-4442-ac2a-9ec9822baa6c",
    "name" : "Gas iso-C4"
  }, {
    "uuid" : "4b2627a3-6a3d-4751-b818-ce1f95cb3d6a",
    "name" : "Gas iso-C5"
  }, {
    "uuid" : "ecec68ec-9a33-44c6-bedb-609b69c7f022",
    "name" : "Gas nor-C4"
  }, {
    "uuid" : "3f85640e-889e-456e-93bc-3a2a567cd5f9",
    "name" : "Gas nor-C5"
  }, {
    "uuid" : "6a5faaf0-a756-4065-99a9-d84d1fe0bfd2",
    "name" : "Gravity Total"
  }, {
    "uuid" : "f86e140e-b5d0-4b5f-98de-951200fd8038",
    "name" : "GTF"
  }, {
    "uuid" : "d635c218-3d17-4f5d-98b4-026085c4f584",
    "name" : "Hole Depth"
  }, {
    "uuid" : "2d9cbed5-4d21-4243-89e6-586f1bb961ff",
    "name" : "Hole Depth Vertical"
  }, {
    "uuid" : "dfdf09da-5be0-495f-b802-15840ce93066",
    "name" : "Hookload"
  }, {
    "uuid" : "3a655e25-ff42-4c56-b083-9d6cc77a7a8c",
    "name" : "In Slips"
  }, {
    "uuid" : "624e443b-6a3b-4247-a648-53db39d19f1b",
    "name" : "Inclination"
  }, {
    "uuid" : "b2a12c8b-dc98-4b9d-96d6-6e020736ca1b",
    "name" : "Lateral Vibration"
  }, {
    "uuid" : "b6c70cd5-aff7-4bd7-bef6-dfb663c12da9",
    "name" : "Magnetic Field"
  }, {
    "uuid" : "03c53157-8443-40d8-8ef4-087f3205da5f",
    "name" : "Motor RPM"
  }, {
    "uuid" : "805070d4-e80a-4d0d-83d6-430ba7ab00bf",
    "name" : "MTF"
  }, {
    "uuid" : "702c9494-7666-435f-ad46-9c6a3f24faa3",
    "name" : "Flow In Rate"
  }, {
    "uuid" : "65c71407-9a65-484d-aeed-b4ef14b91582",
    "name" : "Flow Out Rate"
  }, {
    "uuid" : "4457de71-ae74-4fd6-ad87-c0f19275806e",
    "name" : "Mud Weight In"
  }, {
    "uuid" : "999d98fd-b761-488f-9af8-dca909ec7bd8",
    "name" : "Mud Weight Out"
  }, {
    "uuid" : "101c98d0-2643-4b75-8012-738faa9025f7",
    "name" : "MWD Turbine RPM"
  }, {
    "uuid" : "92e27c5f-3277-4a5c-a478-b9a989944671",
    "name" : "On bottom hours"
  }, {
    "uuid" : "5f527ef9-c86b-4e55-84c0-2b8df74de1c1",
    "name" : "Oscillate status"
  }, {
    "uuid" : "b7f3fdd3-ad94-4aa4-8e94-50f5ad4dee29",
    "name" : "Pit 1 Volume"
  }, {
    "uuid" : "f1b5479f-4488-47fe-9338-12591f2d48f9",
    "name" : "Pit 2 Volume"
  }, {
    "uuid" : "e5568169-182c-466e-99e0-6957159fe08c",
    "name" : "Pit 3 Volume"
  }, {
    "uuid" : "2f03c515-d6ff-41be-b7d4-83a77c13e6c3",
    "name" : "Pit 4 Volume"
  }, {
    "uuid" : "18accea3-a188-4189-bec9-3e78a207591e",
    "name" : "Pit 5 Volume"
  }, {
    "uuid" : "cce31e79-5444-4e8d-bcae-774314ac6958",
    "name" : "Pit 6 Volume"
  }, {
    "uuid" : "278c87fd-7b22-4118-8b12-84d6474cff5d",
    "name" : "Pit 7 Volume"
  }, {
    "uuid" : "45b1afbb-6d6c-4db5-93ff-0ffa94b802da",
    "name" : "Pit 8 Volume"
  }, {
    "uuid" : "ce850617-0391-4346-8834-1449a32722df",
    "name" : "Pump 1 Cumulative Strokes"
  }, {
    "uuid" : "27a591db-8db8-4148-9115-49d5df10ac7e",
    "name" : "Pump 1 Mud Flow In"
  }, {
    "uuid" : "328949d9-a0db-41fa-9c84-4064137315c7",
    "name" : "Pump 2 Cumulative Strokes"
  }, {
    "uuid" : "5286505c-c31c-4bb8-b3c7-f0900cce9fba",
    "name" : "Pump 2 Mud Flow In"
  }, {
    "uuid" : "a3ddb237-cd23-4f5d-999f-2a3e9f6821ee",
    "name" : "Pump 3 Cumulative Strokes"
  }, {
    "uuid" : "1e15c542-3673-4140-8165-1ad534e2b3dc",
    "name" : "Pump 3 Mud Flow In"
  }, {
    "uuid" : "30ad129a-4854-4bb5-8e1d-3c9065605fe2",
    "name" : "Pump Stroke Count"
  }, {
    "uuid" : "8f46e726-06b1-4c71-b638-203868bc4451",
    "name" : "PWD Annular Pressure"
  }, {
    "uuid" : "4265ba32-99d0-490b-a1a1-b8798206a82a",
    "name" : "Rate of Penetration Instantaneous"
  }, {
    "uuid" : "c4d4b89e-5e6c-404f-9d8d-5ca8b2c26885",
    "name" : "Resistivity"
  }, {
    "uuid" : "78334ca1-783e-4dc3-9f86-c86c391d6bac",
    "name" : "Rig State"
  }, {
    "uuid" : "b68b2510-7858-4dcb-b242-57fcd584e0aa",
    "name" : "ROP"
  }, {
    "uuid" : "f4b9e8ea-ada1-4aaf-b638-064916ece1d3",
    "name" : "RSS Toolface"
  }, {
    "uuid" : "f49024eb-cdf9-42a4-beca-974dc8348281",
    "name" : "Lateral Shock"
  }, {
    "uuid" : "98e64813-b867-400a-be7c-a8f31cb56047",
    "name" : "SPM1"
  }, {
    "uuid" : "9f50ec96-0d33-46c2-8b11-c1628fe39658",
    "name" : "SPM2"
  }, {
    "uuid" : "52a79823-4947-4796-b423-545ccd8194b6",
    "name" : "SPM3"
  }, {
    "uuid" : "0f936580-1edd-449c-b760-9142097dfec6",
    "name" : "SPM Total"
  }, {
    "uuid" : "f764306b-302e-4500-8518-4f149f839a85",
    "name" : "Standpipe Pressure"
  }, {
    "uuid" : "3d1105fa-a8de-4e54-981f-105b75142937",
    "name" : "StickSlip"
  }, {
    "uuid" : "30652f8a-15d2-4a10-9e86-2943a7bd5687",
    "name" : "Surface RPM"
  }, {
    "uuid" : "de8ce461-cf26-4e38-ac68-e2e228c331ab",
    "name" : "Surface Torque"
  }, {
    "uuid" : "8b6023ce-d4d7-46be-b9e1-d9ebc92b2711",
    "name" : "Surface Torque Max"
  }, {
    "uuid" : "354dbda4-8dc0-40e8-9723-8b63b794a003",
    "name" : "Survey MD"
  }, {
    "uuid" : "7a76ccd8-e64f-4155-9184-d5f66ac3a58a",
    "name" : "Temperature In"
  }, {
    "uuid" : "9d444b75-4c6b-496c-a945-f75f003e7a0a",
    "name" : "Temperature Out"
  }, {
    "uuid" : "ac3cc40c-6055-4efa-a4fa-6a9f787bcd9d",
    "name" : "Tool Temperature"
  }, {
    "uuid" : "957a4437-2806-43d6-9b2e-2fdb612be1de",
    "name" : "Torsional Vibration"
  }, {
    "uuid" : "f0ad751b-5c66-4961-b6b9-965b282d38d8",
    "name" : "Total MSE"
  }, {
    "uuid" : "5a89a54f-3c8e-40c9-8fae-fdb7437b8adb",
    "name" : "Bit RPM"
  }, {
    "uuid" : "6565f21c-0d1e-4ce6-bbcf-da4b7900f2f4",
    "name" : "Total Tank Volume"
  }, {
    "uuid" : "86e72bb4-8f89-405b-855b-117e6fdf5f24",
    "name" : "Total Volume Active"
  }, {
    "uuid" : "92e712cc-2fe4-4ebe-967c-603828f1bea5",
    "name" : "Trip Speed"
  }, {
    "uuid" : "107b71c0-ebe1-484f-91c3-c5f57a5ee2ba",
    "name" : "Trip Tank Volume"
  }, {
    "uuid" : "7392915c-10e3-4bd0-8717-3efd4eb2943f",
    "name" : "Time of Penetration"
  }, {
    "uuid" : "5ab9a650-9ccc-4709-a76e-10d5d3ede25a",
    "name" : "RSS Steering Ratio"
  }, {
    "uuid" : "44596b6b-f833-4299-aaf7-519c7b27e8e1",
    "name" : "WOB"
  }, {
    "uuid" : "8595db67-37e0-4389-8f29-6753c9a9e2f7",
    "name" : "WOB Max"
  }, {
    "uuid" : "c1ca14ae-6d00-48cb-9c6f-f0d9840c76b1",
    "name" : "X Accelerometer"
  }, {
    "uuid" : "05c50fad-d7e0-4752-be56-9c610c86e246",
    "name" : "X Magnetometer"
  }, {
    "uuid" : "1ceca6eb-2b67-4015-8930-8f4f64578bba",
    "name" : "Y Accelerometer"
  }, {
    "uuid" : "87cbf376-966b-4252-8368-0428bbeccf7a",
    "name" : "Y Magnetometer"
  }, {
    "uuid" : "8d4a8cb5-80cc-46fa-83c6-783c21598014",
    "name" : "Z Accelerometer"
  }, {
    "uuid" : "4fbd96a1-8606-4067-8b7f-c92a4f8d777d",
    "name" : "Z Magnetometer"
  }, {
    "uuid" : "c6e1722b-2a02-4470-b2d7-bf00f5506719",
    "name" : "Depth of Cut"
  }, {
    "uuid" : "89e07b1a-d50e-4b99-ada9-023f784767d8",
    "name" : "Downhole MSE"
  }, {
    "uuid" : "a1a0e98e-9e28-438e-9c7e-254e68d0c636",
    "name" : "Total MSE"
  }, {
    "uuid" : "5d4acff6-85ea-4dd7-aac1-bbe982f7bdfc",
    "name" : "Recommended WOB"
  }, {
    "uuid" : "3ffc495e-0d17-46a5-b688-e3242884bf67",
    "name" : "Recommended RPM"
  }, {
    "uuid" : "0eef088a-ce96-4670-8b21-4b090f76d177",
    "name" : "Recommended MFI"
  }, {
    "uuid" : "68a640b5-f885-4bea-a07e-49536fa2b93d",
    "name" : "Predicted WOB"
  }, {
    "uuid" : "2d348260-372a-4e87-a8b3-82d66d95196e",
    "name" : "Predicted RPM"
  }, {
    "uuid" : "8be6cd16-906a-465c-a04d-f1fd9459458e",
    "name" : "Predicted MFI"
  }, {
    "uuid" : "027be8e3-7fcb-4fd3-b064-1f50f5c4749b",
    "name" : "Predicted ROP"
  }, {
    "uuid" : "5fe2a454-86ad-4fdc-abbf-686e4f67a4fa",
    "name" : "Trip Out: Connection"
  }, {
    "uuid" : "f65f24d3-a306-4a1c-9765-5b8359aed7c3",
    "name" : "Trip Out: Running"
  }, {
    "uuid" : "43b1d9c6-4420-4866-9c1f-c3f9d1d5f543",
    "name" : "Weight to Weight"
  }, {
    "uuid" : "e3c996b6-9cdb-4876-ac99-0aab694b801a",
    "name" : "Rig Activity"
  }, {
    "uuid" : "6906b6ba-5ad3-4df7-8176-dbc844d02d54",
    "name" : "Slide Sheet"
  }, {
    "uuid" : "0cc5b768-8a11-4e11-9ef2-135344f7b1a2",
    "name" : "RSS DLink"
  }, {
    "uuid" : "07700dd6-bdaf-477a-8b79-c48631b653d6",
    "name" : "RSS Desired TF"
  }, {
    "uuid" : "36f79b61-728b-4524-bc87-b2d97f558be2",
    "name" : "RSS Target Inclination"
  }, {
    "uuid" : "89211184-204e-4f3d-a655-bc742743ccf4",
    "name" : "RSS Target Azimuth"
  }, {
    "uuid" : "6ea4cf91-c576-4941-9515-25fec2014f6d",
    "name" : "RSS Status Word 1"
  }, {
    "uuid" : "3677c17f-bad2-44ca-95bb-6265b9898965",
    "name" : "RSS Status Word 2"
  }, {
    "uuid" : "d2271377-87d2-49b3-b40c-c4fb91d55c37",
    "name" : "RSS Status Word 3"
  }, {
    "uuid" : "b673ea0c-eee0-49b4-99ce-8bb8843365f2",
    "name" : "Zeroed WOB"
  }, {
    "uuid" : "d181ddaf-7921-476a-a45c-fc3206a07198",
    "name" : "Zeroed Differential Pressure"
  }, {
    "uuid" : "2adc5cd8-a1de-48ca-916a-3236ed6ece9a",
    "name" : "Trip Out: Reaming"
  }, {
    "uuid" : "2326a7a3-bb68-4924-a9e5-a16b7b87d192",
    "name" : "Trip In: Reaming"
  }, {
    "uuid" : "ab7e5866-a3da-4e6c-b584-523799719b34",
    "name" : "Slip to slip"
  }, {
    "uuid" : "eb85cf68-047e-43b0-bbbb-75548c8e700e",
    "name" : "Trip In: Connection"
  }, {
    "uuid" : "fed6681e-1f21-466c-bf91-55fed528a07d",
    "name" : "Trip In: Running"
  }, {
    "uuid" : "db16f0ac-2c69-4237-933d-7f6ce24fa1dc",
    "name" : "Trip In: Washing"
  }, {
    "uuid" : "08e28406-7ade-4fb2-8dca-1628936f2b36",
    "name" : "Trip Out: Washing"
  }, {
    "uuid" : "4545b4f1-4f71-41aa-86c3-b87961459f5f",
    "name" : "Rotary Build Rate"
  }, {
    "uuid" : "1f0a45f4-1b62-11f0-902e-77c4b3b98667",
    "name" : "Rotary Turn Rate"
  }, {
    "uuid" : "f09337a9-ca89-411d-a2e6-aad17746b4ee",
    "name" : "Slack off & Drag"
  }, {
    "uuid" : "bf7c700d-de08-41c5-b20b-cb32d649d8e8",
    "name" : "Erratic Torque"
  }, {
    "uuid" : "f0519265-7a47-488a-978a-24997705844e",
    "name" : "Time from Last Connection"
  }, {
    "uuid" : "7136da25-7a78-4558-864e-8dd21623fbe9",
    "name" : "Time From Last Survey"
  }, {
    "uuid" : "b9e0a067-ab3a-4e59-8ec6-c14f33346df4",
    "name" : "Time On Bottom"
  }, {
    "uuid" : "69471b8a-c20a-449e-abc9-0147adaf6d14",
    "name" : "Static Time"
  }, {
    "uuid" : "265d885d-567d-4d27-843e-c9fa39800c1d",
    "name" : "Time to top"
  }, {
    "uuid" : "ef5b8413-dcec-4c4c-b607-6b4200142f7d",
    "name" : "Forecast Confidence"
  }, {
    "uuid" : "11b703b5-b0d2-43c5-a370-d509a9d4604b",
    "name" : "Drill Zone"
  }, {
    "uuid" : "44161596-6117-47bc-ae86-05561b38c773",
    "name" : "Recommended ROP"
  }, {
    "uuid" : "261cea68-1b62-11f0-8a2e-cbc9b8e5e876",
    "name" : "Motor Yield"
  }, {
    "uuid" : "11584aba-59fb-4a81-a12e-cf52e1d819c5",
    "name" : "KPI: Pumps On to Bottom"
  }, {
    "uuid" : "4e2f64a1-eaf9-4d7f-9e3f-616c68084bfd",
    "name" : "KPI: On Bottom to Slips"
  }, {
    "uuid" : "3084fd0c-0ea0-42b6-8024-768c8c26566d",
    "name" : "KPI: Slips to On Bottom"
  }, {
    "uuid" : "9a81e86b-2e78-4d23-87bb-b76232df40f2",
    "name" : "Motor Stall"
  }, {
    "uuid" : "01851a5a-9071-43df-86fc-673655c8f211",
    "name" : "RSS Continuous Azimuth"
  }, {
    "uuid" : "c7d0f834-b1cf-437f-94a6-ca8f07a1f8c9",
    "name" : "RSS Continious Inclination"
  }, {
    "uuid" : "5b30ffb3-2cbe-46ed-a9ec-87c5582ae1eb",
    "name" : "Rig State"
  } ]
}

GET /public/api/v1/traces

Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Traces collection
content[].uuid String Trace UUID
content[].name String Trace name

Get mapped time traces by lateral

Get the list of mapped time traces by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/mapped?type=TIME' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/mapped?type=TIME HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 564ca8186c62a5736a8ffdfa6c1cccd2
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "30652f8a-15d2-4a10-9e86-2943a7bd5687",
    "name" : "Surface RPM",
    "hash" : "4159068187a8e4b27748b6664f19895e",
    "unit" : "1/s",
    "null_value" : "-999.25",
    "start_date_time_index" : "2020-12-29T08:00:00Z",
    "last_date_time_index" : "2020-12-29T08:50:00Z"
  }, {
    "uuid" : "702c9494-7666-435f-ad46-9c6a3f24faa3",
    "name" : "Flow In Rate",
    "hash" : "06389310da2d5596eb7024db35f15408",
    "unit" : "m3/s",
    "null_value" : "-999.25",
    "start_date_time_index" : "2020-12-29T08:00:00Z",
    "last_date_time_index" : "2020-12-29T08:50:00Z"
  }, {
    "uuid" : "d635c218-3d17-4f5d-98b4-026085c4f584",
    "name" : "Hole Depth",
    "hash" : "2e51394ff0a32d9c2d1c0f4f8bf6da6f",
    "unit" : "m",
    "null_value" : "-999.25",
    "start_date_time_index" : "2020-12-29T08:00:00Z",
    "last_date_time_index" : "2020-12-29T08:50:00Z"
  }, {
    "uuid" : "dfdf09da-5be0-495f-b802-15840ce93066",
    "name" : "Hookload",
    "hash" : "ac629b8b69cd68feef0d51f32e8a34f0",
    "unit" : "N",
    "null_value" : "-999.25",
    "start_date_time_index" : "2020-12-29T08:00:00Z",
    "last_date_time_index" : "2020-12-29T08:50:00Z"
  }, {
    "uuid" : "f93bf5a7-9755-4163-9c44-6d107967db4b",
    "name" : "Bit depth",
    "hash" : "4c0e8aca2213a09c79d00dfdfdc4a857",
    "unit" : "m",
    "null_value" : "-999.25",
    "start_date_time_index" : "2020-12-29T08:00:00Z",
    "last_date_time_index" : "2020-12-29T08:50:00Z"
  } ]
}

GET /public/api/v1/wells/{uuid}/traces/mapped

Path parameter Description
uuid Lateral UUID
Parameter Description
type Trace type: TIME/CALC
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Mapped traces
content[].uuid String Trace UUID
content[].name String Trace name
content[].hash String Trace hash
content[].unit String Curve UOM related to Trace
content[].null_value String Null value
content[].start_date_time_index String Start date time index
content[].last_date_time_index String Last date time index

Get mapped depth traces by lateral

Get the list of mapped depth traces by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/mapped?type=DEPTH' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/mapped?type=DEPTH HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3f3afd08cdde9d1e0590d97f7aebe664
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "d635c218-3d17-4f5d-98b4-026085c4f584",
    "name" : "Hole Depth",
    "hash" : "e77ff6e11bb12505892d8b316be2411d",
    "unit" : "m",
    "index_unit" : "m",
    "null_value" : "-999.25",
    "start_depth_index" : 1.0,
    "last_depth_index" : 4.0
  } ]
}

GET /public/api/v1/wells/{uuid}/traces/mapped

Path parameter Description
uuid Lateral UUID
Parameter Description
type Trace type: DEPTH
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Mapped traces
content[].uuid String Trace UUID
content[].name String Trace name
content[].hash String Trace hash
content[].unit String Curve UOM related to Trace
content[].index_unit String Index curve UOM of a Log related to Trace
content[].null_value String Null value
content[].start_depth_index Number Start depth index
content[].last_depth_index Number Last depth index

Get time series data by lateral and trace

Get time series data by lateral UUID and mapped trace UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/d635c218-3d17-4f5d-98b4-026085c4f584/data/time?from=2020-12-29T08%3A00%3A00Z&to=2020-12-29T08%3A50%3A00Z' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/d635c218-3d17-4f5d-98b4-026085c4f584/data/time?from=2020-12-29T08%3A00%3A00Z&to=2020-12-29T08%3A50%3A00Z HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 64a031e0b68303e1878053f86a59c9d0
Content-Type: application/json

{
  "content" : [ {
    "index" : "2020-12-29T08:00:00.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:01.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:02.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:03.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:04.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:05.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:06.000Z",
    "value" : "20341.2"
  }, {
    "index" : "2020-12-29T08:00:07.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:08.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:09.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:10.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:11.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:12.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:13.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:14.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:15.000Z",
    "value" : "20341.3"
  }, {
    "index" : "2020-12-29T08:00:16.000Z",
    "value" : "20341.4"
  }, {
    "index" : "2020-12-29T08:00:17.000Z",
    "value" : "20341.4"
  }, {
    "index" : "2020-12-29T08:00:18.000Z",
    "value" : "20341.4"
  }, {
    "index" : "2020-12-29T08:00:19.000Z",
    "value" : "20341.4"
  }, {
    "index" : "2020-12-29T08:00:20.000Z",
    "value" : "20341.4"
  }, {
    "index" : "2020-12-29T08:00:21.000Z",
    "value" : "20341.4"
  }, {
    "index" : "2020-12-29T08:00:22.000Z",
    "value" : "20341.5"
  }, {
    "index" : "2020-12-29T08:00:23.000Z",
    "value" : "20341.5"
  }, {
    "index" : "2020-12-29T08:00:24.000Z",
    "value" : "20341.5"
  }, {
    "index" : "2020-12-29T08:00:25.000Z",
    "value" : "20341.5"
  }, {
    "index" : "2020-12-29T08:00:26.000Z",
    "value" : "20341.5"
  }, {
    "index" : "2020-12-29T08:00:27.000Z",
    "value" : "20341.5"
  }, {
    "index" : "2020-12-29T08:00:28.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:29.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:30.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:31.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:32.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:33.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:34.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:35.000Z",
    "value" : "20341.6"
  }, {
    "index" : "2020-12-29T08:00:36.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:37.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:38.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:39.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:40.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:41.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:42.000Z",
    "value" : "20341.7"
  }, {
    "index" : "2020-12-29T08:00:43.000Z",
    "value" : "20341.8"
  }, {
    "index" : "2020-12-29T08:00:44.000Z",
    "value" : "20341.8"
  }, {
    "index" : "2020-12-29T08:00:45.000Z",
    "value" : "20341.8"
  }, {
    "index" : "2020-12-29T08:00:46.000Z",
    "value" : "20341.8"
  }, {
    "index" : "2020-12-29T08:00:47.000Z",
    "value" : "20341.8"
  }, {
    "index" : "2020-12-29T08:00:48.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:49.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:50.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:51.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:52.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:53.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:54.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:55.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:56.000Z",
    "value" : "20341.9"
  }, {
    "index" : "2020-12-29T08:00:57.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:00:58.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:00:59.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:01:00.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:01:01.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:01:02.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:01:03.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:01:04.000Z",
    "value" : "20342"
  }, {
    "index" : "2020-12-29T08:01:05.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:06.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:07.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:08.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:09.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:10.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:11.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:12.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:13.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:14.000Z",
    "value" : "20342.1"
  }, {
    "index" : "2020-12-29T08:01:15.000Z",
    "value" : "20342.2"
  }, {
    "index" : "2020-12-29T08:01:16.000Z",
    "value" : "20342.2"
  }, {
    "index" : "2020-12-29T08:01:17.000Z",
    "value" : "20342.2"
  }, {
    "index" : "2020-12-29T08:01:18.000Z",
    "value" : "20342.2"
  }, {
    "index" : "2020-12-29T08:01:19.000Z",
    "value" : "20342.2"
  }, {
    "index" : "2020-12-29T08:01:20.000Z",
    "value" : "20342.2"
  }, {
    "index" : "2020-12-29T08:01:21.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:22.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:23.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:24.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:25.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:26.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:27.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:28.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:29.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:30.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:31.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:32.000Z",
    "value" : "20342.3"
  }, {
    "index" : "2020-12-29T08:01:33.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:34.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:35.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:36.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:37.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:38.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:39.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:40.000Z",
    "value" : "20342.4"
  }, {
    "index" : "2020-12-29T08:01:41.000Z",
    "value" : "20342.5"
  }, {
    "index" : "2020-12-29T08:01:42.000Z",
    "value" : "20342.5"
  }, {
    "index" : "2020-12-29T08:01:43.000Z",
    "value" : "20342.5"
  }, {
    "index" : "2020-12-29T08:01:44.000Z",
    "value" : "20342.5"
  }, {
    "index" : "2020-12-29T08:01:45.000Z",
    "value" : "20342.5"
  }, {
    "index" : "2020-12-29T08:01:46.000Z",
    "value" : "20342.5"
  }, {
    "index" : "2020-12-29T08:01:47.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:48.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:49.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:50.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:51.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:52.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:53.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:54.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:55.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:56.000Z",
    "value" : "20342.6"
  }, {
    "index" : "2020-12-29T08:01:57.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:01:58.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:01:59.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:00.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:01.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:02.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:03.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:04.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:05.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:06.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:07.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:08.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:09.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:10.000Z",
    "value" : "20342.7"
  }, {
    "index" : "2020-12-29T08:02:11.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:12.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:13.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:14.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:15.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:16.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:17.000Z",
    "value" : "20342.8"
  }, {
    "index" : "2020-12-29T08:02:18.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:19.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:20.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:21.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:22.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:23.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:24.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:25.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:26.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:27.000Z",
    "value" : "20342.9"
  }, {
    "index" : "2020-12-29T08:02:28.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:29.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:30.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:31.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:32.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:33.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:34.000Z",
    "value" : "20343"
  }, {
    "index" : "2020-12-29T08:02:35.000Z",
    "value" : "20343.1"
  }, {
    "index" : "2020-12-29T08:02:36.000Z",
    "value" : "20343.1"
  }, {
    "index" : "2020-12-29T08:02:37.000Z",
    "value" : "20343.1"
  }, {
    "index" : "2020-12-29T08:02:38.000Z",
    "value" : "20343.1"
  }, {
    "index" : "2020-12-29T08:02:39.000Z",
    "value" : "20343.1"
  }, {
    "index" : "2020-12-29T08:02:40.000Z",
    "value" : "20343.1"
  }, {
    "index" : "2020-12-29T08:02:41.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:42.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:43.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:44.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:45.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:46.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:47.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:48.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:49.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:50.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:51.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:52.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:53.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:54.000Z",
    "value" : "20343.2"
  }, {
    "index" : "2020-12-29T08:02:55.000Z",
    "value" : "20343.3"
  }, {
    "index" : "2020-12-29T08:02:56.000Z",
    "value" : "20343.3"
  }, {
    "index" : "2020-12-29T08:02:57.000Z",
    "value" : "20343.3"
  }, {
    "index" : "2020-12-29T08:02:58.000Z",
    "value" : "20343.3"
  }, {
    "index" : "2020-12-29T08:02:59.000Z",
    "value" : "20343.4"
  }, {
    "index" : "2020-12-29T08:03:00.000Z",
    "value" : "20343.4"
  }, {
    "index" : "2020-12-29T08:03:01.000Z",
    "value" : "20343.5"
  }, {
    "index" : "2020-12-29T08:03:02.000Z",
    "value" : "20343.5"
  }, {
    "index" : "2020-12-29T08:03:03.000Z",
    "value" : "20343.5"
  }, {
    "index" : "2020-12-29T08:03:04.000Z",
    "value" : "20343.6"
  }, {
    "index" : "2020-12-29T08:03:05.000Z",
    "value" : "20343.6"
  }, {
    "index" : "2020-12-29T08:03:06.000Z",
    "value" : "20343.6"
  }, {
    "index" : "2020-12-29T08:03:07.000Z",
    "value" : "20343.7"
  }, {
    "index" : "2020-12-29T08:03:08.000Z",
    "value" : "20343.7"
  }, {
    "index" : "2020-12-29T08:03:09.000Z",
    "value" : "20343.7"
  }, {
    "index" : "2020-12-29T08:03:10.000Z",
    "value" : "20343.7"
  }, {
    "index" : "2020-12-29T08:03:11.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:12.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:13.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:14.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:15.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:16.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:17.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:18.000Z",
    "value" : "20343.8"
  }, {
    "index" : "2020-12-29T08:03:19.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:20.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:21.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:22.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:23.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:24.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:25.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:26.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:27.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:28.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:29.000Z",
    "value" : "20343.9"
  }, {
    "index" : "2020-12-29T08:03:30.000Z",
    "value" : "20344"
  }, {
    "index" : "2020-12-29T08:03:31.000Z",
    "value" : "20344"
  }, {
    "index" : "2020-12-29T08:03:32.000Z",
    "value" : "20344"
  }, {
    "index" : "2020-12-29T08:03:33.000Z",
    "value" : "20344"
  }, {
    "index" : "2020-12-29T08:03:34.000Z",
    "value" : "20344"
  }, {
    "index" : "2020-12-29T08:03:35.000Z",
    "value" : "20344"
  }, {
    "index" : "2020-12-29T08:03:36.000Z",
    "value" : "20344.1"
  }, {
    "index" : "2020-12-29T08:03:37.000Z",
    "value" : "20344.1"
  }, {
    "index" : "2020-12-29T08:03:38.000Z",
    "value" : "20344.1"
  }, {
    "index" : "2020-12-29T08:03:39.000Z",
    "value" : "20344.1"
  }, {
    "index" : "2020-12-29T08:03:40.000Z",
    "value" : "20344.1"
  }, {
    "index" : "2020-12-29T08:03:41.000Z",
    "value" : "20344.1"
  }, {
    "index" : "2020-12-29T08:03:42.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:43.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:44.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:45.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:46.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:47.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:48.000Z",
    "value" : "20344.2"
  }, {
    "index" : "2020-12-29T08:03:49.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:50.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:51.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:52.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:53.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:54.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:55.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:56.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:57.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:58.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:03:59.000Z",
    "value" : "20344.3"
  }, {
    "index" : "2020-12-29T08:04:00.000Z",
    "value" : "20344.4"
  }, {
    "index" : "2020-12-29T08:04:01.000Z",
    "value" : "20344.4"
  }, {
    "index" : "2020-12-29T08:04:02.000Z",
    "value" : "20344.4"
  }, {
    "index" : "2020-12-29T08:04:03.000Z",
    "value" : "20344.4"
  }, {
    "index" : "2020-12-29T08:04:04.000Z",
    "value" : "20344.4"
  }, {
    "index" : "2020-12-29T08:04:05.000Z",
    "value" : "20344.5"
  }, {
    "index" : "2020-12-29T08:04:06.000Z",
    "value" : "20344.5"
  }, {
    "index" : "2020-12-29T08:04:07.000Z",
    "value" : "20344.5"
  }, {
    "index" : "2020-12-29T08:04:08.000Z",
    "value" : "20344.5"
  }, {
    "index" : "2020-12-29T08:04:09.000Z",
    "value" : "20344.5"
  }, {
    "index" : "2020-12-29T08:04:10.000Z",
    "value" : "20344.5"
  }, {
    "index" : "2020-12-29T08:04:11.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:12.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:13.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:14.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:15.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:16.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:17.000Z",
    "value" : "20344.6"
  }, {
    "index" : "2020-12-29T08:04:18.000Z",
    "value" : "20344.7"
  }, {
    "index" : "2020-12-29T08:04:19.000Z",
    "value" : "20344.7"
  }, {
    "index" : "2020-12-29T08:04:20.000Z",
    "value" : "20344.7"
  }, {
    "index" : "2020-12-29T08:04:21.000Z",
    "value" : "20344.7"
  }, {
    "index" : "2020-12-29T08:04:22.000Z",
    "value" : "20344.7"
  }, {
    "index" : "2020-12-29T08:04:23.000Z",
    "value" : "20344.7"
  }, {
    "index" : "2020-12-29T08:04:24.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:25.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:26.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:27.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:28.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:29.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:30.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:31.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:32.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:33.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:34.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:35.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:36.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:37.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:38.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:39.000Z",
    "value" : "20344.8"
  }, {
    "index" : "2020-12-29T08:04:40.000Z",
    "value" : "20344.9"
  }, {
    "index" : "2020-12-29T08:04:41.000Z",
    "value" : "20344.9"
  }, {
    "index" : "2020-12-29T08:04:42.000Z",
    "value" : "20344.9"
  }, {
    "index" : "2020-12-29T08:04:43.000Z",
    "value" : "20344.9"
  }, {
    "index" : "2020-12-29T08:04:44.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:45.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:46.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:47.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:48.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:49.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:50.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:51.000Z",
    "value" : "20345"
  }, {
    "index" : "2020-12-29T08:04:52.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:53.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:54.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:55.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:56.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:57.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:58.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:04:59.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:05:00.000Z",
    "value" : "20345.1"
  }, {
    "index" : "2020-12-29T08:05:01.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:02.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:03.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:04.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:05.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:06.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:07.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:08.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:09.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:10.000Z",
    "value" : "20345.2"
  }, {
    "index" : "2020-12-29T08:05:11.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:12.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:13.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:14.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:15.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:16.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:17.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:18.000Z",
    "value" : "20345.3"
  }, {
    "index" : "2020-12-29T08:05:19.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:20.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:21.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:22.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:23.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:24.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:25.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:26.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:27.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:28.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:29.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:30.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:31.000Z",
    "value" : "20345.4"
  }, {
    "index" : "2020-12-29T08:05:32.000Z",
    "value" : "20345.5"
  }, {
    "index" : "2020-12-29T08:05:33.000Z",
    "value" : "20345.5"
  }, {
    "index" : "2020-12-29T08:05:34.000Z",
    "value" : "20345.5"
  }, {
    "index" : "2020-12-29T08:05:35.000Z",
    "value" : "20345.5"
  }, {
    "index" : "2020-12-29T08:05:36.000Z",
    "value" : "20345.5"
  }, {
    "index" : "2020-12-29T08:05:37.000Z",
    "value" : "20345.5"
  }, {
    "index" : "2020-12-29T08:05:38.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:39.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:40.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:41.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:42.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:43.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:44.000Z",
    "value" : "20345.6"
  }, {
    "index" : "2020-12-29T08:05:45.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:46.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:47.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:48.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:49.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:50.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:51.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:52.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:53.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:54.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:55.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:56.000Z",
    "value" : "20345.7"
  }, {
    "index" : "2020-12-29T08:05:57.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:05:58.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:05:59.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:00.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:01.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:02.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:03.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:04.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:05.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:06.000Z",
    "value" : "20345.8"
  }, {
    "index" : "2020-12-29T08:06:07.000Z",
    "value" : "20345.9"
  }, {
    "index" : "2020-12-29T08:06:08.000Z",
    "value" : "20345.9"
  }, {
    "index" : "2020-12-29T08:06:09.000Z",
    "value" : "20345.9"
  }, {
    "index" : "2020-12-29T08:06:10.000Z",
    "value" : "20345.9"
  }, {
    "index" : "2020-12-29T08:06:11.000Z",
    "value" : "20345.9"
  }, {
    "index" : "2020-12-29T08:06:12.000Z",
    "value" : "20345.9"
  }, {
    "index" : "2020-12-29T08:06:13.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:14.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:15.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:16.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:17.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:18.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:19.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:20.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:21.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:22.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:23.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:24.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:25.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:26.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:27.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:28.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:29.000Z",
    "value" : "20346"
  }, {
    "index" : "2020-12-29T08:06:30.000Z",
    "value" : "20346.1"
  }, {
    "index" : "2020-12-29T08:06:31.000Z",
    "value" : "20346.1"
  }, {
    "index" : "2020-12-29T08:06:32.000Z",
    "value" : "20346.1"
  }, {
    "index" : "2020-12-29T08:06:33.000Z",
    "value" : "20346.1"
  }, {
    "index" : "2020-12-29T08:06:34.000Z",
    "value" : "20346.1"
  }, {
    "index" : "2020-12-29T08:06:35.000Z",
    "value" : "20346.1"
  }, {
    "index" : "2020-12-29T08:06:36.000Z",
    "value" : "20346.2"
  }, {
    "index" : "2020-12-29T08:06:37.000Z",
    "value" : "20346.2"
  }, {
    "index" : "2020-12-29T08:06:38.000Z",
    "value" : "20346.2"
  }, {
    "index" : "2020-12-29T08:06:39.000Z",
    "value" : "20346.2"
  }, {
    "index" : "2020-12-29T08:06:40.000Z",
    "value" : "20346.2"
  }, {
    "index" : "2020-12-29T08:06:41.000Z",
    "value" : "20346.2"
  }, {
    "index" : "2020-12-29T08:06:42.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:43.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:44.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:45.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:46.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:47.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:48.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:49.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:50.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:51.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:52.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:53.000Z",
    "value" : "20346.3"
  }, {
    "index" : "2020-12-29T08:06:54.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:06:55.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:06:56.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:06:57.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:06:58.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:06:59.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:00.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:01.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:02.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:03.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:04.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:05.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:06.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:07.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:08.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:09.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:10.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:11.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:12.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:13.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:14.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:15.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:16.000Z",
    "value" : "20346.4"
  }, {
    "index" : "2020-12-29T08:07:17.000Z",
    "value" : "20346.5"
  }, {
    "index" : "2020-12-29T08:07:18.000Z",
    "value" : "20346.5"
  }, {
    "index" : "2020-12-29T08:07:19.000Z",
    "value" : "20346.5"
  }, {
    "index" : "2020-12-29T08:07:20.000Z",
    "value" : "20346.6"
  }, {
    "index" : "2020-12-29T08:07:21.000Z",
    "value" : "20346.6"
  }, {
    "index" : "2020-12-29T08:07:22.000Z",
    "value" : "20346.6"
  }, {
    "index" : "2020-12-29T08:07:23.000Z",
    "value" : "20346.6"
  }, {
    "index" : "2020-12-29T08:07:24.000Z",
    "value" : "20346.6"
  }, {
    "index" : "2020-12-29T08:07:25.000Z",
    "value" : "20346.6"
  }, {
    "index" : "2020-12-29T08:07:26.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:27.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:28.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:29.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:30.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:31.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:32.000Z",
    "value" : "20346.7"
  }, {
    "index" : "2020-12-29T08:07:33.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:34.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:35.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:36.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:37.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:38.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:39.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:40.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:41.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:42.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:43.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:44.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:45.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:46.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:47.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:48.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:49.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:50.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:51.000Z",
    "value" : "20346.8"
  }, {
    "index" : "2020-12-29T08:07:52.000Z",
    "value" : "20346.9"
  }, {
    "index" : "2020-12-29T08:07:53.000Z",
    "value" : "20346.9"
  }, {
    "index" : "2020-12-29T08:07:54.000Z",
    "value" : "20346.9"
  }, {
    "index" : "2020-12-29T08:07:55.000Z",
    "value" : "20346.9"
  }, {
    "index" : "2020-12-29T08:07:56.000Z",
    "value" : "20347"
  }, {
    "index" : "2020-12-29T08:07:57.000Z",
    "value" : "20347"
  }, {
    "index" : "2020-12-29T08:07:58.000Z",
    "value" : "20347"
  }, {
    "index" : "2020-12-29T08:07:59.000Z",
    "value" : "20347"
  }, {
    "index" : "2020-12-29T08:08:00.000Z",
    "value" : "20347"
  }, {
    "index" : "2020-12-29T08:08:01.000Z",
    "value" : "20347.1"
  }, {
    "index" : "2020-12-29T08:08:02.000Z",
    "value" : "20347.1"
  }, {
    "index" : "2020-12-29T08:08:03.000Z",
    "value" : "20347.1"
  }, {
    "index" : "2020-12-29T08:08:04.000Z",
    "value" : "20347.1"
  }, {
    "index" : "2020-12-29T08:08:05.000Z",
    "value" : "20347.1"
  }, {
    "index" : "2020-12-29T08:08:06.000Z",
    "value" : "20347.1"
  }, {
    "index" : "2020-12-29T08:08:07.000Z",
    "value" : "20347.2"
  }, {
    "index" : "2020-12-29T08:08:08.000Z",
    "value" : "20347.2"
  }, {
    "index" : "2020-12-29T08:08:09.000Z",
    "value" : "20347.2"
  }, {
    "index" : "2020-12-29T08:08:30.000Z",
    "value" : "20347.4"
  }, {
    "index" : "2020-12-29T08:08:31.000Z",
    "value" : "20347.5"
  }, {
    "index" : "2020-12-29T08:08:32.000Z",
    "value" : "20347.5"
  }, {
    "index" : "2020-12-29T08:08:33.000Z",
    "value" : "20347.5"
  }, {
    "index" : "2020-12-29T08:08:34.000Z",
    "value" : "20347.5"
  }, {
    "index" : "2020-12-29T08:08:35.000Z",
    "value" : "20347.5"
  }, {
    "index" : "2020-12-29T08:08:36.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:37.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:38.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:39.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:40.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:41.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:42.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:43.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:44.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:45.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:46.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:47.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:48.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:49.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:50.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:51.000Z",
    "value" : "20347.6"
  }, {
    "index" : "2020-12-29T08:08:52.000Z",
    "value" : "20347.7"
  }, {
    "index" : "2020-12-29T08:08:53.000Z",
    "value" : "20347.7"
  }, {
    "index" : "2020-12-29T08:08:54.000Z",
    "value" : "20347.7"
  }, {
    "index" : "2020-12-29T08:08:55.000Z",
    "value" : "20347.7"
  }, {
    "index" : "2020-12-29T08:08:56.000Z",
    "value" : "20347.7"
  }, {
    "index" : "2020-12-29T08:08:57.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:08:58.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:08:59.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:00.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:01.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:02.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:03.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:04.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:05.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:06.000Z",
    "value" : "20347.8"
  }, {
    "index" : "2020-12-29T08:09:07.000Z",
    "value" : "20347.9"
  }, {
    "index" : "2020-12-29T08:09:08.000Z",
    "value" : "20347.9"
  }, {
    "index" : "2020-12-29T08:09:09.000Z",
    "value" : "20347.9"
  }, {
    "index" : "2020-12-29T08:09:10.000Z",
    "value" : "20347.9"
  }, {
    "index" : "2020-12-29T08:09:11.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:12.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:13.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:14.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:15.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:16.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:17.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:18.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:19.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:20.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:21.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:22.000Z",
    "value" : "20348"
  }, {
    "index" : "2020-12-29T08:09:23.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:24.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:25.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:26.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:27.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:28.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:29.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:30.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:31.000Z",
    "value" : "20348.1"
  }, {
    "index" : "2020-12-29T08:09:32.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:33.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:34.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:35.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:36.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:37.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:38.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:39.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:40.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:41.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:42.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:43.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:44.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:45.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:46.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:47.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:48.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:49.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:50.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:51.000Z",
    "value" : "20348.2"
  }, {
    "index" : "2020-12-29T08:09:52.000Z",
    "value" : "20348.3"
  }, {
    "index" : "2020-12-29T08:09:53.000Z",
    "value" : "20348.3"
  }, {
    "index" : "2020-12-29T08:09:54.000Z",
    "value" : "20348.3"
  }, {
    "index" : "2020-12-29T08:09:55.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:09:56.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:09:57.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:09:58.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:09:59.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:10:00.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:10:01.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:10:02.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:10:03.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:10:04.000Z",
    "value" : "20348.4"
  }, {
    "index" : "2020-12-29T08:10:05.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:06.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:07.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:08.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:09.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:10.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:11.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:12.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:13.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:14.000Z",
    "value" : "20348.5"
  }, {
    "index" : "2020-12-29T08:10:15.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:16.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:17.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:18.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:19.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:20.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:21.000Z",
    "value" : "20348.6"
  }, {
    "index" : "2020-12-29T08:10:22.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:23.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:24.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:25.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:26.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:27.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:28.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:29.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:30.000Z",
    "value" : "20348.7"
  }, {
    "index" : "2020-12-29T08:10:31.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:32.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:33.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:34.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:35.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:36.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:37.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:38.000Z",
    "value" : "20348.8"
  }, {
    "index" : "2020-12-29T08:10:39.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:40.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:41.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:42.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:43.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:44.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:45.000Z",
    "value" : "20348.9"
  }, {
    "index" : "2020-12-29T08:10:46.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:47.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:48.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:49.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:50.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:51.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:52.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:53.000Z",
    "value" : "20349"
  }, {
    "index" : "2020-12-29T08:10:54.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:10:55.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:10:56.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:10:57.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:10:58.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:10:59.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:00.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:01.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:02.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:03.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:04.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:05.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:06.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:07.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:08.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:09.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:10.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:11.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:12.000Z",
    "value" : "20349.1"
  }, {
    "index" : "2020-12-29T08:11:13.000Z",
    "value" : "20349.2"
  }, {
    "index" : "2020-12-29T08:11:14.000Z",
    "value" : "20349.2"
  }, {
    "index" : "2020-12-29T08:11:15.000Z",
    "value" : "20349.2"
  }, {
    "index" : "2020-12-29T08:11:16.000Z",
    "value" : "20349.2"
  }, {
    "index" : "2020-12-29T08:11:17.000Z",
    "value" : "20349.2"
  }, {
    "index" : "2020-12-29T08:11:18.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:19.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:20.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:21.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:22.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:23.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:24.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:25.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:26.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:27.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:28.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:29.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:30.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:31.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:32.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:33.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:34.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:35.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:36.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:37.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:38.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:39.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:40.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:41.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:42.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:43.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:44.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:45.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:46.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:47.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:48.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:49.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:50.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:51.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:52.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:53.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:54.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:55.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:56.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:57.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:58.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:11:59.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:00.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:01.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:02.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:03.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:04.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:05.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:06.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:07.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:08.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:09.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:10.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:11.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:12.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:13.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:14.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:15.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:16.000Z",
    "value" : "20349.3"
  }, {
    "index" : "2020-12-29T08:12:17.000Z",
    "value" : "20349.4"
  }, {
    "index" : "2020-12-29T08:12:18.000Z",
    "value" : "20349.4"
  }, {
    "index" : "2020-12-29T08:12:19.000Z",
    "value" : "20349.4"
  }, {
    "index" : "2020-12-29T08:12:20.000Z",
    "value" : "20349.5"
  }, {
    "index" : "2020-12-29T08:12:21.000Z",
    "value" : "20349.5"
  }, {
    "index" : "2020-12-29T08:12:22.000Z",
    "value" : "20349.5"
  }, {
    "index" : "2020-12-29T08:12:23.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:24.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:25.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:26.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:27.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:28.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:29.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:30.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:31.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:32.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:33.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:34.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:35.000Z",
    "value" : "20349.6"
  }, {
    "index" : "2020-12-29T08:12:36.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:37.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:38.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:39.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:40.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:41.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:42.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:43.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:44.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:45.000Z",
    "value" : "20349.7"
  }, {
    "index" : "2020-12-29T08:12:46.000Z",
    "value" : "20349.8"
  }, {
    "index" : "2020-12-29T08:12:47.000Z",
    "value" : "20349.8"
  }, {
    "index" : "2020-12-29T08:12:48.000Z",
    "value" : "20349.8"
  }, {
    "index" : "2020-12-29T08:12:49.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:50.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:51.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:52.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:53.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:54.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:55.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:56.000Z",
    "value" : "20349.9"
  }, {
    "index" : "2020-12-29T08:12:57.000Z",
    "value" : "20350"
  }, {
    "index" : "2020-12-29T08:12:58.000Z",
    "value" : "20350"
  }, {
    "index" : "2020-12-29T08:12:59.000Z",
    "value" : "20350"
  }, {
    "index" : "2020-12-29T08:13:00.000Z",
    "value" : "20350"
  }, {
    "index" : "2020-12-29T08:13:01.000Z",
    "value" : "20350"
  }, {
    "index" : "2020-12-29T08:13:02.000Z",
    "value" : "20350"
  }, {
    "index" : "2020-12-29T08:13:03.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:04.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:05.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:06.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:07.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:08.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:09.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:10.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:11.000Z",
    "value" : "20350.1"
  }, {
    "index" : "2020-12-29T08:13:12.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:13.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:14.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:15.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:16.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:17.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:18.000Z",
    "value" : "20350.2"
  }, {
    "index" : "2020-12-29T08:13:19.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:20.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:21.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:22.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:23.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:24.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:25.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:26.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:27.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:28.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:29.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:30.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:31.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:32.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:33.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:34.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:35.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:36.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:37.000Z",
    "value" : "20350.3"
  }, {
    "index" : "2020-12-29T08:13:38.000Z",
    "value" : "20350.4"
  }, {
    "index" : "2020-12-29T08:13:39.000Z",
    "value" : "20350.4"
  }, {
    "index" : "2020-12-29T08:13:40.000Z",
    "value" : "20350.4"
  }, {
    "index" : "2020-12-29T08:13:41.000Z",
    "value" : "20350.4"
  }, {
    "index" : "2020-12-29T08:13:42.000Z",
    "value" : "20350.5"
  }, {
    "index" : "2020-12-29T08:13:43.000Z",
    "value" : "20350.5"
  }, {
    "index" : "2020-12-29T08:13:44.000Z",
    "value" : "20350.5"
  }, {
    "index" : "2020-12-29T08:13:45.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:46.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:47.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:48.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:49.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:50.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:51.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:52.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:53.000Z",
    "value" : "20350.6"
  }, {
    "index" : "2020-12-29T08:13:54.000Z",
    "value" : "20350.7"
  }, {
    "index" : "2020-12-29T08:13:55.000Z",
    "value" : "20350.7"
  }, {
    "index" : "2020-12-29T08:13:56.000Z",
    "value" : "20350.7"
  }, {
    "index" : "2020-12-29T08:13:57.000Z",
    "value" : "20350.7"
  }, {
    "index" : "2020-12-29T08:13:58.000Z",
    "value" : "20350.7"
  }, {
    "index" : "2020-12-29T08:13:59.000Z",
    "value" : "20350.7"
  }, {
    "index" : "2020-12-29T08:14:00.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:01.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:02.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:03.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:04.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:05.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:06.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:07.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:08.000Z",
    "value" : "20350.8"
  }, {
    "index" : "2020-12-29T08:14:09.000Z",
    "value" : "20350.9"
  }, {
    "index" : "2020-12-29T08:14:10.000Z",
    "value" : "20350.9"
  }, {
    "index" : "2020-12-29T08:14:11.000Z",
    "value" : "20350.9"
  }, {
    "index" : "2020-12-29T08:14:12.000Z",
    "value" : "20350.9"
  }, {
    "index" : "2020-12-29T08:14:13.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:14.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:15.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:16.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:17.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:18.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:19.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:20.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:21.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:22.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:23.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:24.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:25.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:26.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:27.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:28.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:29.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:30.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:31.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:32.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:33.000Z",
    "value" : "20351"
  }, {
    "index" : "2020-12-29T08:14:34.000Z",
    "value" : "20351.1"
  }, {
    "index" : "2020-12-29T08:14:35.000Z",
    "value" : "20351.1"
  }, {
    "index" : "2020-12-29T08:14:36.000Z",
    "value" : "20351.1"
  }, {
    "index" : "2020-12-29T08:14:37.000Z",
    "value" : "20351.1"
  }, {
    "index" : "2020-12-29T08:14:38.000Z",
    "value" : "20351.1"
  }, {
    "index" : "2020-12-29T08:14:39.000Z",
    "value" : "20351.2"
  }, {
    "index" : "2020-12-29T08:14:40.000Z",
    "value" : "20351.2"
  }, {
    "index" : "2020-12-29T08:14:41.000Z",
    "value" : "20351.2"
  }, {
    "index" : "2020-12-29T08:14:42.000Z",
    "value" : "20351.3"
  }, {
    "index" : "2020-12-29T08:14:43.000Z",
    "value" : "20351.3"
  }, {
    "index" : "2020-12-29T08:14:44.000Z",
    "value" : "20351.3"
  }, {
    "index" : "2020-12-29T08:14:45.000Z",
    "value" : "20351.4"
  }, {
    "index" : "2020-12-29T08:14:46.000Z",
    "value" : "20351.4"
  }, {
    "index" : "2020-12-29T08:14:47.000Z",
    "value" : "20351.4"
  }, {
    "index" : "2020-12-29T08:14:48.000Z",
    "value" : "20351.5"
  }, {
    "index" : "2020-12-29T08:14:49.000Z",
    "value" : "20351.5"
  }, {
    "index" : "2020-12-29T08:14:50.000Z",
    "value" : "20351.5"
  }, {
    "index" : "2020-12-29T08:14:51.000Z",
    "value" : "20351.6"
  }, {
    "index" : "2020-12-29T08:14:52.000Z",
    "value" : "20351.6"
  }, {
    "index" : "2020-12-29T08:14:53.000Z",
    "value" : "20351.7"
  }, {
    "index" : "2020-12-29T08:14:54.000Z",
    "value" : "20351.7"
  }, {
    "index" : "2020-12-29T08:14:55.000Z",
    "value" : "20351.7"
  }, {
    "index" : "2020-12-29T08:14:56.000Z",
    "value" : "20351.7"
  }, {
    "index" : "2020-12-29T08:14:57.000Z",
    "value" : "20351.8"
  }, {
    "index" : "2020-12-29T08:14:58.000Z",
    "value" : "20351.8"
  }, {
    "index" : "2020-12-29T08:14:59.000Z",
    "value" : "20351.9"
  }, {
    "index" : "2020-12-29T08:15:00.000Z",
    "value" : "20351.9"
  }, {
    "index" : "2020-12-29T08:15:01.000Z",
    "value" : "20351.9"
  }, {
    "index" : "2020-12-29T08:15:02.000Z",
    "value" : "20352"
  }, {
    "index" : "2020-12-29T08:15:03.000Z",
    "value" : "20352"
  }, {
    "index" : "2020-12-29T08:15:04.000Z",
    "value" : "20352"
  }, {
    "index" : "2020-12-29T08:15:05.000Z",
    "value" : "20352"
  }, {
    "index" : "2020-12-29T08:15:06.000Z",
    "value" : "20352.1"
  }, {
    "index" : "2020-12-29T08:15:07.000Z",
    "value" : "20352.1"
  }, {
    "index" : "2020-12-29T08:15:08.000Z",
    "value" : "20352.1"
  }, {
    "index" : "2020-12-29T08:15:09.000Z",
    "value" : "20352.2"
  }, {
    "index" : "2020-12-29T08:15:10.000Z",
    "value" : "20352.2"
  }, {
    "index" : "2020-12-29T08:15:11.000Z",
    "value" : "20352.2"
  }, {
    "index" : "2020-12-29T08:15:12.000Z",
    "value" : "20352.2"
  }, {
    "index" : "2020-12-29T08:15:13.000Z",
    "value" : "20352.2"
  }, {
    "index" : "2020-12-29T08:15:14.000Z",
    "value" : "20352.3"
  }, {
    "index" : "2020-12-29T08:15:15.000Z",
    "value" : "20352.3"
  }, {
    "index" : "2020-12-29T08:15:16.000Z",
    "value" : "20352.3"
  }, {
    "index" : "2020-12-29T08:15:17.000Z",
    "value" : "20352.3"
  }, {
    "index" : "2020-12-29T08:15:18.000Z",
    "value" : "20352.4"
  }, {
    "index" : "2020-12-29T08:15:19.000Z",
    "value" : "20352.4"
  }, {
    "index" : "2020-12-29T08:15:20.000Z",
    "value" : "20352.4"
  }, {
    "index" : "2020-12-29T08:15:21.000Z",
    "value" : "20352.4"
  }, {
    "index" : "2020-12-29T08:15:22.000Z",
    "value" : "20352.4"
  }, {
    "index" : "2020-12-29T08:15:23.000Z",
    "value" : "20352.5"
  }, {
    "index" : "2020-12-29T08:15:24.000Z",
    "value" : "20352.5"
  }, {
    "index" : "2020-12-29T08:15:25.000Z",
    "value" : "20352.5"
  }, {
    "index" : "2020-12-29T08:15:26.000Z",
    "value" : "20352.5"
  }, {
    "index" : "2020-12-29T08:15:27.000Z",
    "value" : "20352.5"
  }, {
    "index" : "2020-12-29T08:15:28.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:29.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:30.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:31.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:32.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:33.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:34.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:35.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:36.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:37.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:38.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:39.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:40.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:41.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:42.000Z",
    "value" : "20352.6"
  }, {
    "index" : "2020-12-29T08:15:43.000Z",
    "value" : "20352.7"
  }, {
    "index" : "2020-12-29T08:15:44.000Z",
    "value" : "20352.7"
  }, {
    "index" : "2020-12-29T08:15:45.000Z",
    "value" : "20352.7"
  }, {
    "index" : "2020-12-29T08:15:46.000Z",
    "value" : "20352.7"
  }, {
    "index" : "2020-12-29T08:15:47.000Z",
    "value" : "20352.8"
  }, {
    "index" : "2020-12-29T08:15:48.000Z",
    "value" : "20352.8"
  }, {
    "index" : "2020-12-29T08:15:49.000Z",
    "value" : "20352.8"
  }, {
    "index" : "2020-12-29T08:15:50.000Z",
    "value" : "20352.8"
  }, {
    "index" : "2020-12-29T08:15:51.000Z",
    "value" : "20352.8"
  }, {
    "index" : "2020-12-29T08:15:52.000Z",
    "value" : "20352.9"
  }, {
    "index" : "2020-12-29T08:15:53.000Z",
    "value" : "20352.9"
  }, {
    "index" : "2020-12-29T08:15:54.000Z",
    "value" : "20352.9"
  }, {
    "index" : "2020-12-29T08:15:55.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:15:56.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:15:57.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:15:58.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:15:59.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:00.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:01.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:02.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:03.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:04.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:05.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:06.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:07.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:08.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:09.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:10.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:11.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:12.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:13.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:14.000Z",
    "value" : "20353"
  }, {
    "index" : "2020-12-29T08:16:15.000Z",
    "value" : "20353.1"
  }, {
    "index" : "2020-12-29T08:16:16.000Z",
    "value" : "20353.1"
  }, {
    "index" : "2020-12-29T08:16:17.000Z",
    "value" : "20353.1"
  }, {
    "index" : "2020-12-29T08:16:18.000Z",
    "value" : "20353.2"
  }, {
    "index" : "2020-12-29T08:16:19.000Z",
    "value" : "20353.2"
  }, {
    "index" : "2020-12-29T08:16:20.000Z",
    "value" : "20353.2"
  }, {
    "index" : "2020-12-29T08:16:21.000Z",
    "value" : "20353.2"
  }, {
    "index" : "2020-12-29T08:16:22.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:23.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:24.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:25.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:26.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:27.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:28.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:29.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:30.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:31.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:32.000Z",
    "value" : "20353.3"
  }, {
    "index" : "2020-12-29T08:16:33.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:34.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:35.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:36.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:37.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:38.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:39.000Z",
    "value" : "20353.4"
  }, {
    "index" : "2020-12-29T08:16:40.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:41.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:42.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:43.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:44.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:45.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:46.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:47.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:48.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:49.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:50.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:51.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:52.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:53.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:54.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:55.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:56.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:57.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:58.000Z",
    "value" : "20353.5"
  }, {
    "index" : "2020-12-29T08:16:59.000Z",
    "value" : "20353.6"
  } ]
}

GET /public/api/v1/wells/{lateralUuid}/traces/{traceUuid}/data/time

Path parameter Description
lateralUuid Lateral UUID
traceUuid Trace UUID
Parameter Description
from (Optional) Start date, for example: 2020-11-01T00:00:00.000Z
to (Optional) End date, for example: 2020-11-01T00:02:00.000Z
hash (Optional) Trace hash
limit (Optional) Limit of returning rows. Default 1000, max 1_000_000
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Log data array
content[].index String an index value
content[].value String a value of the requested trace

Get depth series data by lateral and trace

Get depth series data by lateral UUID and mapped trace UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/d635c218-3d17-4f5d-98b4-026085c4f584/data/depth?from=1.0&to=4.0' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/d635c218-3d17-4f5d-98b4-026085c4f584/data/depth?from=1.0&to=4.0 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 5c2b93d7a3028f7b0d88f6998c645f8c
Content-Type: application/json

{
  "content" : [ {
    "index" : "1",
    "value" : "10"
  }, {
    "index" : "2",
    "value" : "20"
  }, {
    "index" : "3",
    "value" : "30"
  }, {
    "index" : "4",
    "value" : "40"
  } ]
}

GET /public/api/v1/wells/{lateralUuid}/traces/{traceUuid}/data/depth

Path parameter Description
lateralUuid Lateral UUID
traceUuid Trace UUID
Parameter Description
from (Optional) Start md, for example: 0.0
to (Optional) End md, for example: 2300
hash (Optional) Trace hash
limit (Optional) Limit of returning rows. Default 1000, max 1_000_000
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Log data array
content[].index String an index value
content[].value String a value of the requested trace

Get Rig Activity and KPIs (by time) by lateral and trace

Get Rig Activity and KPIs by lateral (by time) UUID and trace UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/e3c996b6-9cdb-4876-ac99-0aab694b801a/data/calculated/time' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/e3c996b6-9cdb-4876-ac99-0aab694b801a/data/calculated/time HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ab33b6beec1d22eda306b582a89ecd6f
Content-Type: application/json

{
  "content" : [ {
    "start" : "2020-11-01T00:00:00Z",
    "end" : "2020-11-01T01:00:02Z",
    "value" : "21"
  }, {
    "start" : "2020-12-29T08:00:00Z",
    "end" : "2020-12-29T08:50:00Z",
    "value" : "21"
  } ]
}

GET /public/api/v1/wells/{lateralUuid}/traces/{traceUuid}/data/calculated/time

Path parameter Description
lateralUuid Lateral UUID
traceUuid Trace UUID
Parameter Description
from (Optional) Start date, for example: 2020-11-01T00:00:00.000Z
to (Optional) End date, for example: 2020-11-01T00:02:00.000Z
hash (Optional) Trace hash
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Data array
content[].start String interval start date
content[].end String interval end date
content[].value String a value

Get Rig Activity and KPIs (by depth) by lateral and trace

Get Rig Activity and KPIs (by depth) by lateral UUID and trace UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/e3c996b6-9cdb-4876-ac99-0aab694b801a/data/calculated/depth?from=1.0&to=10.0' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5284e686-031b-478f-9965-e6ce9b815559/traces/e3c996b6-9cdb-4876-ac99-0aab694b801a/data/calculated/depth?from=1.0&to=10.0 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2c58e6d3b6e373080e43410dd06d2034
Content-Type: application/json

{
  "content" : [ {
    "start" : 1.0,
    "end" : 10.0,
    "value" : "21"
  } ]
}

GET /public/api/v1/wells/{lateralUuid}/traces/{traceUuid}/data/calculated/depth

Path parameter Description
lateralUuid Lateral UUID
traceUuid Trace UUID
Parameter Description
from Start depth
to End depth
hash (Optional) Trace hash
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Data array
content[].start Number interval start value
content[].end Number interval end value
content[].value String a value

14. Directional Drilling

Get slide sheet intervals

Get slide sheet intervals by lateral UUID. Returns all intervals with attribute values converted to project units. Intervals with empty values (value: "0") are filtered out.

Request

$ curl 'https://solo.cloud/public/api/v1/wells/4df38dd6-9422-4a27-8539-ee3198973cfa/intervals/slide-sheet?from=200.0&to=500.0' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/4df38dd6-9422-4a27-8539-ee3198973cfa/intervals/slide-sheet?from=200.0&to=500.0 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f9b3809acc42cda4719ba9a495c518e7
Content-Type: application/json

{
  "content" : [ {
    "depth_from" : 407.8224,
    "depth_to" : 421.15130400000004,
    "from" : "2023-04-25T03:00:15Z",
    "to" : "2023-04-25T03:12:37Z",
    "mode" : "ROTARY",
    "distance" : 13.328904000000023,
    "rop_avg" : 64.66853692722383,
    "mfi_avg" : 37.97616657081958,
    "diff_pressure_avg" : 28.50240282152303,
    "rpm_avg" : 40.55567116396066
  }, {
    "depth_from" : 421.15130400000004,
    "depth_to" : 426.579792,
    "from" : "2023-04-25T03:18:17Z",
    "to" : "2023-04-25T03:22:35Z",
    "mode" : "ROTARY",
    "distance" : 5.428487999999959,
    "rop_avg" : 75.74634418604595,
    "mfi_avg" : 44.301426562745654,
    "diff_pressure_avg" : 27.84057092289668,
    "rpm_avg" : 40.826889387984245
  }, {
    "depth_from" : 426.579792,
    "depth_to" : 433.09946400000007,
    "from" : "2023-04-25T03:31:29Z",
    "to" : "2023-04-25T03:40:34Z",
    "mode" : "SLIDE",
    "distance" : 6.519672000000071,
    "rop_avg" : 43.065723302752765,
    "mfi_avg" : 44.29881991412529,
    "diff_pressure_avg" : 18.090786997094895,
    "rpm_avg" : 0.11454885460497963,
    "gtf_avg" : -4188.322087125122,
    "mtf_avg" : 12844.874388918157
  }, {
    "depth_from" : 433.09946400000007,
    "depth_to" : 449.61962400000004,
    "from" : "2023-04-25T03:41:42Z",
    "to" : "2023-04-25T03:53:30Z",
    "mode" : "ROTARY",
    "distance" : 16.520159999999976,
    "rop_avg" : 84.00081355932191,
    "mfi_avg" : 44.29301571640074,
    "diff_pressure_avg" : 36.554082604907975,
    "rpm_avg" : 40.80610147601478
  }, {
    "depth_from" : 449.61962400000004,
    "depth_to" : 454.758552,
    "from" : "2023-04-25T03:59:48Z",
    "to" : "2023-04-25T04:02:40Z",
    "mode" : "ROTARY",
    "distance" : 5.138927999999964,
    "rop_avg" : 107.55895813953414,
    "mfi_avg" : 56.44465664867975,
    "diff_pressure_avg" : 34.757457553000386,
    "rpm_avg" : 60.42781138790041
  }, {
    "depth_from" : 454.758552,
    "depth_to" : 455.983848,
    "from" : "2023-04-25T04:04:08Z",
    "to" : "2023-04-25T04:06:15Z",
    "mode" : "SLIDE",
    "distance" : 1.2252960000000144,
    "rop_avg" : 34.73280000000041,
    "mfi_avg" : 56.48777290420894,
    "diff_pressure_avg" : 13.452906542095633,
    "rpm_avg" : 0.1718407960196003,
    "gtf_avg" : -4188.322087125122,
    "mtf_avg" : 12177.835638050661,
    "rotary_build_rate" : -33.10848744832925,
    "rotary_turn_rate" : -17.52802276676857,
    "motor_yield" : 212205.26330565757
  }, {
    "depth_from" : 455.99604,
    "depth_to" : 460.711296,
    "from" : "2023-04-25T04:06:15Z",
    "to" : "2023-04-25T04:11:22Z",
    "mode" : "OSCILLATION_SLIDE",
    "distance" : 4.715256000000011,
    "rop_avg" : 55.29290423452781,
    "mfi_avg" : 56.677411506534895,
    "diff_pressure_avg" : 21.57243815705851,
    "rpm_avg" : 6.967925016160347,
    "gtf_avg" : -4188.322087125122,
    "mtf_avg" : 14358.09873929123,
    "tf_control" : 7850.0,
    "burned_distance" : 3.4,
    "survey_md" : 1274.8155148800001,
    "incl" : 5193.290204884008,
    "azimuth" : 20604.1382455686
  } ]
}

GET /public/api/v1/wells/{lateralUuid}/intervals/slide-sheet

Path parameter Description
lateralUuid Lateral UUID
Parameter Description
from (Optional) Start depth in project units
to (Optional) End depth in project units
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Slide sheet intervals array
content[].depth_from Number Interval start depth in project units
content[].depth_to Number Interval end depth in project units
content[].from String Interval start time
content[].to String Interval end time
content[].mode String Drilling mode: SLIDE, ROTATE, or RSS
content[].distance Number Distance drilled in project units
content[].rop_avg Number Average rate of penetration
content[].wob_avg Number Average weight on bit
content[].mfi_avg Number Average mud flow in
content[].diff_pressure_avg Number Average differential pressure
content[].rpm_avg Number Average rotations per minute
content[].gtf_avg Number Average gravity tool face
content[].mtf_avg Number Average magnetic tool face
content[].gtf_effective Number Effective gravity tool face
content[].tf_control Number Tool face control
content[].burned_distance Number Burned distance
content[].survey_md Number Survey measured depth
content[].incl Number Inclination
content[].azimuth Number Azimuth
content[].tvd Number True vertical depth
content[].dls Number Dog leg severity
content[].rotary_build_rate Number Rotary build rate
content[].rotary_turn_rate Number Rotary turn rate
content[].motor_yield Number Motor yield
content[].rss_dlink String RSS D-link
content[].rss_dtf Number RSS DTF
content[].rss_sr Number RSS steering ratio
content[].rss_tinc Number RSS target inclination
content[].rss_taz Number RSS target azimuth

15. Well attributes

Create custom well attribute

Create a custom well attribute by project UUID. For a LIST-type attribute initial options can be passed in the options field. An IDENTIFIER-type attribute holds a string value that must be unique within the project (see the update value endpoints for the conflict behavior)

Request

$ curl 'https://solo.cloud/public/api/v1/projects/f689f164-5d45-49d5-a43b-a107c402be20/wellattributes' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Custom attribute name",
  "group_uuid" : "caeb5bb2-18ea-4191-9c36-f2e252259371",
  "type" : "VARCHAR",
  "unit" : "DISTANCE"
}'
POST /public/api/v1/projects/f689f164-5d45-49d5-a43b-a107c402be20/wellattributes HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 140

{
  "name" : "Custom attribute name",
  "group_uuid" : "caeb5bb2-18ea-4191-9c36-f2e252259371",
  "type" : "VARCHAR",
  "unit" : "DISTANCE"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 753dbfd94b39e0b0db93b2c021786ab9
Content-Type: application/json

{
  "id" : 10005,
  "uuid" : "871f38c0-2a4b-4b18-b5cb-cb3642ce2ca2",
  "name" : "Custom attribute name"
}

POST /public/api/v1/projects/{projectUuid}/wellattributes

Path parameter Description
projectUuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Well attribute name
type String Well attribute type (VARCHAR, INTEGER, FLOAT, ENUM, DATE, IDENTIFIER, LIST); an IDENTIFIER attribute holds a string value that must be unique within the project
unit String Well attribute domain (POSITION, DISTANCE, DEPTH, ANGLE, VOLUME)
range Varies Well attribute range (for enums)
group_uuid String Well attribute group UUID
options Array Initial list option names for a LIST attribute; request order becomes the display order. Rejected for other types

Response body

Empty body

Create well attribute list option

Create a new option of a LIST-type well attribute by well attribute UUID. sort_order is an ordering weight, not a strict position: duplicates are allowed, options with equal weight are ordered by name (case-insensitive)

Request

$ curl 'https://solo.cloud/public/api/v1/wellattributes/01916d28-f425-4715-93f1-a77b38160db7/listoptions' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Crew C",
  "sort_order" : 2
}'
POST /public/api/v1/wellattributes/01916d28-f425-4715-93f1-a77b38160db7/listoptions HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 43

{
  "name" : "Crew C",
  "sort_order" : 2
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: b6a628d03528b197c032b413a1e4313b
Content-Type: application/json

{
  "id" : 4,
  "uuid" : "82b3c8a9-ccd4-4c17-8665-cb5a35baf1fd",
  "sort_order" : 2
}

POST /public/api/v1/wellattributes/{wellAttributeUuid}/listoptions

Path parameter Description
wellAttributeUuid LIST-type well attribute UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String List option name, unique within the attribute (case-insensitive)
sort_order Number Ordering weight, not a strict position: duplicates are allowed, options with equal weight are ordered by name (case-insensitive). Appended after the last option when omitted

Response body

Path Type Description
id Number List option Id
uuid String List option UUID
sort_order Number Ordering weight of the created option

Get well attribute groups

Get a list of well attribute groups

Request

$ curl 'https://solo.cloud/public/api/v1/attributegroups' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/attributegroups HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 64dc8133f6a1d67ef275fb61e65e15c3
Content-Type: application/json

[ {
  "name" : "General",
  "uuid" : "caeb5bb2-18ea-4191-9c36-f2e252259371"
}, {
  "name" : "Location",
  "uuid" : "b7ef6059-d428-4f35-9d4a-a786ffff1d83"
}, {
  "name" : "Well Status",
  "uuid" : "47f0b746-16e4-4959-a722-91a03c9d3aaf"
}, {
  "name" : "Dates",
  "uuid" : "a7bf5d85-6294-403e-8909-1ab9fda006f4"
}, {
  "name" : "Production",
  "uuid" : "a5b4f651-1212-4bf2-9ec5-f279480ffdad"
}, {
  "name" : "Completion",
  "uuid" : "d2bde9e4-2042-48b4-a3a2-eb49146c8145"
}, {
  "name" : "Development characteristics",
  "uuid" : "b995079d-7f89-4054-9276-93c69b70a6f5"
} ]

GET /public/api/v1/attributegroups

Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].name String Well attribute group name
[].uuid String Well attribute group UUID

Get predefined well attributes by group

Get a list of predefined well attributes by group UUID. When the optional project_uuid query parameter is passed, options of predefined LIST-type attributes (list_options) are resolved from that project's dictionaries and included in display order

Request

$ curl 'https://solo.cloud/public/api/v1/attributegroups/caeb5bb2-18ea-4191-9c36-f2e252259371/wellattributes?project_uuid=f689f164-5d45-49d5-a43b-a107c402be20' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/attributegroups/caeb5bb2-18ea-4191-9c36-f2e252259371/wellattributes?project_uuid=f689f164-5d45-49d5-a43b-a107c402be20 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 0400a18a68d9544a1864cadb0632449d
Content-Type: application/json

[ {
  "id" : 1,
  "uuid" : "00000000-0000-0000-0000-000000000001",
  "name" : "Name",
  "name_short" : "Name",
  "type" : "VARCHAR"
}, {
  "id" : 2,
  "uuid" : "00000000-0000-0000-0000-000000000002",
  "name" : "API",
  "name_short" : "API",
  "type" : "VARCHAR"
}, {
  "id" : 3,
  "uuid" : "00000000-0000-0000-0000-000000000003",
  "name" : "Well Type",
  "name_short" : "Type",
  "type" : "ENUM",
  "range" : [ "Horizontal", "Deviated", "Vertical", "Directional" ]
}, {
  "id" : 4,
  "uuid" : "00000000-0000-0000-0000-000000000004",
  "name" : "Operator",
  "name_short" : "OP",
  "type" : "VARCHAR"
}, {
  "id" : 5,
  "uuid" : "00000000-0000-0000-0000-000000000005",
  "name" : "Field",
  "name_short" : "Field",
  "type" : "VARCHAR"
}, {
  "id" : 6,
  "uuid" : "00000000-0000-0000-0000-000000000006",
  "name" : "Basin",
  "name_short" : "Basin",
  "type" : "VARCHAR"
}, {
  "id" : 8,
  "uuid" : "00000000-0000-0000-0000-000000000008",
  "name" : "Azimuth VS",
  "name_short" : "Az",
  "type" : "FLOAT",
  "unit" : "ANGLE",
  "range" : {
    "client" : {
      "max" : 360,
      "min" : 0
    }
  }
}, {
  "id" : 9,
  "uuid" : "00000000-0000-0000-0000-000000000009",
  "name" : "Convergence",
  "name_short" : "Conv",
  "type" : "FLOAT",
  "unit" : "ANGLE",
  "range" : {
    "client" : {
      "max" : 180,
      "min" : -180
    },
    "server" : {
      "max" : 360,
      "min" : 0
    }
  }
}, {
  "id" : 7,
  "uuid" : "00000000-0000-0000-0000-000000000007",
  "name" : "KB",
  "name_short" : "KB",
  "type" : "FLOAT",
  "unit" : "DEPTH"
}, {
  "id" : 58,
  "uuid" : "00000000-0000-0000-0000-000000000058",
  "name" : "Well System",
  "name_short" : "System",
  "type" : "VARCHAR"
}, {
  "id" : 59,
  "uuid" : "00000000-0000-0000-0000-000000000059",
  "name" : "Pad",
  "name_short" : "Pad",
  "type" : "VARCHAR"
}, {
  "id" : 60,
  "uuid" : "00000000-0000-0000-0000-000000000060",
  "name" : "Source",
  "name_short" : "Source",
  "type" : "ENUM",
  "range" : [ "PN", "TGS" ]
}, {
  "id" : 65,
  "uuid" : "00000000-0000-0000-0000-000000000065",
  "name" : "Rig Type",
  "name_short" : "Rig Type",
  "type" : "ENUM",
  "range" : [ "LAND", "OFFSHORE" ]
}, {
  "id" : 66,
  "uuid" : "00000000-0000-0000-0000-000000000066",
  "name" : "Air gap",
  "name_short" : "Air gap",
  "type" : "FLOAT"
}, {
  "id" : 67,
  "uuid" : "00000000-0000-0000-0000-000000000067",
  "name" : "Ground level",
  "name_short" : "Ground level",
  "type" : "FLOAT"
}, {
  "id" : 68,
  "uuid" : "00000000-0000-0000-0000-000000000068",
  "name" : "Water depth",
  "name_short" : "Water depth",
  "type" : "FLOAT"
}, {
  "id" : 69,
  "uuid" : "00000000-0000-0000-0000-000000000069",
  "name" : "Magnetic sample date",
  "name_short" : "Magnetic sample date",
  "type" : "DATE"
}, {
  "id" : 70,
  "uuid" : "00000000-0000-0000-0000-000000000070",
  "name" : "Magnetic model name",
  "name_short" : "Magnetic model name",
  "type" : "VARCHAR"
}, {
  "id" : 71,
  "uuid" : "00000000-0000-0000-0000-000000000071",
  "name" : "Magnetic field strength",
  "name_short" : "Magnetic field strength",
  "type" : "FLOAT"
}, {
  "id" : 72,
  "uuid" : "00000000-0000-0000-0000-000000000072",
  "name" : "Magnetic dip angle",
  "name_short" : "Magnetic dip angle",
  "type" : "FLOAT"
}, {
  "id" : 73,
  "uuid" : "00000000-0000-0000-0000-000000000073",
  "name" : "Magnetic declination",
  "name_short" : "Magnetic declination",
  "type" : "FLOAT"
}, {
  "id" : 74,
  "uuid" : "00000000-0000-0000-0000-000000000074",
  "name" : "Survey program",
  "name_short" : "Survey program",
  "type" : "VARCHAR"
}, {
  "id" : 77,
  "uuid" : "00000000-0000-0000-0000-000000000077",
  "name" : "Rig",
  "name_short" : "Rig",
  "type" : "VARCHAR"
} ]

GET /public/api/v1/attributegroups/{uuid}/wellattributes

Path parameter Description
uuid Well attribute group UUID
Parameter Description
project_uuid Project UUID; when passed, options of predefined LIST-type attributes (list_options) are resolved from this project's dictionaries and included
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].name String Well attribute name
[].name_short String Well attribute short name
[].id Number Well attribute Id
[].uuid String Well attribute UUID
[].type String Well attribute type (VARCHAR, INTEGER, FLOAT, ENUM, DATE, IDENTIFIER, LIST); an IDENTIFIER attribute carries a string value unique within the project
[].unit String Well attribute domain (POSITION, DISTANCE, DEPTH, ANGLE, VOLUME)
[].range Varies Well attribute range
[].range.client Object Well attribute client validation
[].range.client.min Number Minimum value
[].range.client.max Number Maximum value
[].list_options Array Options of a LIST attribute in display order; present only when the project_uuid query parameter is passed
[].list_options[].id Number List option Id
[].list_options[].name String List option name
[].list_options[].sort_order Number List option ordering weight (display order: by weight, then by name)

Get custom well attributes by group and project

Get a list of custom well attributes by group UUID and project UUID. A LIST-type attribute is returned together with its options (list_options) in display order

Request

$ curl 'https://solo.cloud/public/api/v1/attributegroups/caeb5bb2-18ea-4191-9c36-f2e252259371/projects/f689f164-5d45-49d5-a43b-a107c402be20/wellattributes' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/attributegroups/caeb5bb2-18ea-4191-9c36-f2e252259371/projects/f689f164-5d45-49d5-a43b-a107c402be20/wellattributes HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3ffd9d7caba3d46e54bc46117f9b7bf5
Content-Type: application/json

[ {
  "id" : 10000,
  "uuid" : "b4bbadcb-57f1-4b9d-a73e-12788c9bb634",
  "name" : "Well attribute name",
  "type" : "ENUM",
  "unit" : "POSITION",
  "range" : [ "Top", "Middle", "Bottom" ]
}, {
  "id" : 10001,
  "uuid" : "01916d28-f425-4715-93f1-a77b38160db7",
  "name" : "Frac Crew",
  "type" : "LIST",
  "list_options" : [ {
    "id" : 1,
    "name" : "Crew A",
    "sort_order" : 0
  }, {
    "id" : 2,
    "name" : "Crew B",
    "sort_order" : 1
  }, {
    "id" : 4,
    "name" : "Crew C",
    "sort_order" : 2
  }, {
    "id" : 5,
    "name" : "Crew D updated",
    "sort_order" : 10
  } ]
}, {
  "id" : 10002,
  "uuid" : "2af7512b-3380-4d05-9a07-8831dafcc14a",
  "name" : "UWI",
  "type" : "IDENTIFIER"
}, {
  "id" : 10005,
  "uuid" : "871f38c0-2a4b-4b18-b5cb-cb3642ce2ca2",
  "name" : "Custom attribute name",
  "name_short" : "Custom attribute name",
  "type" : "VARCHAR",
  "unit" : "DISTANCE"
} ]

GET /public/api/v1/attributegroups/{uuid}/projects/{projectUuid}/wellattributes

Path parameter Description
uuid Well attribute group UUID
projectUuid Project UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].name String Well attribute name
[].name_short String Well attribute short name
[].id Number Well attribute Id
[].uuid String Well attribute uuid
[].type String Well attribute type (VARCHAR, INTEGER, FLOAT, ENUM, DATE, IDENTIFIER, LIST); an IDENTIFIER attribute carries a string value unique within the project
[].unit String Well attribute domain (POSITION, DISTANCE, DEPTH, ANGLE, VOLUME)
[].range Varies Well attribute range
[].range.client Object Well attribute client validation
[].range.client.min Number Minimum value
[].range.client.max Number Maximum value
[].list_options Array Options of a LIST attribute in display order; absent for other types
[].list_options[].id Number List option Id
[].list_options[].name String List option name
[].list_options[].sort_order Number List option ordering weight (display order: by weight, then by name)

Get well attribute values by lateral

Get a list of well attribute values by lateral UUID. A value of a LIST-type attribute is returned as the resolved list option object; null if the option no longer exists

Request

$ curl 'https://solo.cloud/public/api/v1/wells/0a169790-1581-44bf-83f0-b93cafcdd4d8/attributevalues/v2' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/0a169790-1581-44bf-83f0-b93cafcdd4d8/attributevalues/v2 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: bf85825c3a8881b37d6f2504de841623
Content-Type: application/json

{
  "Name" : {
    "value" : "nameWell",
    "attribute_id" : 1
  },
  "API" : {
    "value" : "api",
    "attribute_id" : 2
  },
  "Well Type" : {
    "value" : "Deviated",
    "attribute_id" : 3
  },
  "Operator" : {
    "value" : "operator",
    "attribute_id" : 4
  },
  "KB" : {
    "value" : {
      "val" : 3445.211614173228
    },
    "attribute_id" : 7
  },
  "Azimuth VS" : {
    "value" : {
      "val" : 114.59155902616465
    },
    "attribute_id" : 8
  },
  "Convergence" : {
    "value" : {
      "val" : 171.88733853924697
    },
    "attribute_id" : 9
  },
  "State (Province)" : {
    "value" : "Penguin State ",
    "attribute_id" : 10
  },
  "X-srf" : {
    "value" : {
      "val" : 13.123359580052492
    },
    "attribute_id" : 12
  },
  "Y-srf" : {
    "value" : {
      "val" : 16.404199475065617
    },
    "attribute_id" : 13
  },
  "Spud date" : {
    "value" : "2023-12-18T14:16:32.001+00:00",
    "attribute_id" : 17
  },
  "# of Stages" : {
    "value" : 20,
    "attribute_id" : 43
  },
  "Frac Fluid" : {
    "value" : "X-link",
    "attribute_id" : 46
  },
  "Final TVD" : {
    "value" : {
      "val" : 1.6076115485564304
    },
    "attribute_id" : 49
  },
  "Final TVDSS" : {
    "value" : {
      "val" : -1.6404199475065615
    },
    "attribute_id" : 50
  },
  "Formation" : {
    "value" : "test51",
    "attribute_id" : 51
  },
  "Net pay" : {
    "value" : {
      "val" : 52.0
    },
    "attribute_id" : 52
  },
  "Frac Crew" : {
    "value" : {
      "id" : 1,
      "name" : "Crew A",
      "sort_order" : 0
    },
    "attribute_id" : 10001
  },
  "UWI" : {
    "value" : "UWI-0001",
    "attribute_id" : 10002
  }
}

GET /public/api/v1/wells/{uuid}/attributevalues/v2

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
.value Object Well attribute value; a plain string for VARCHAR, ENUM, DATE and IDENTIFIER types (an IDENTIFIER value is unique within the project)
.value.val Number Well attribute value for numeric type
.value.id Number Resolved list option Id (for LIST type)
.value.name String Resolved list option name (for LIST type)
.value.sort_order Number Resolved list option ordering weight (for LIST type)
.attribute_id Number Well attribute Id

Get well attribute values by nestedwell

Get a list of well attribute values by nested well UUID. A value of a LIST-type attribute is returned as the resolved list option object; null if the option no longer exists

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/6d990ee7-90ac-49f5-8d24-f9e09f56e79d/attributevalues/v2' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/nestedwells/6d990ee7-90ac-49f5-8d24-f9e09f56e79d/attributevalues/v2 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c3326453a88178ed2dc08b2610daee63
Content-Type: application/json

{
  "Name" : {
    "value" : "nestedName",
    "attribute_id" : 1
  },
  "API" : {
    "value" : "nestedApi",
    "attribute_id" : 2
  },
  "Operator" : {
    "value" : "nestedOperator",
    "attribute_id" : 4
  },
  "KB" : {
    "value" : {
      "val" : 328.4120734908136
    },
    "attribute_id" : 7
  },
  "Azimuth VS" : {
    "value" : {
      "val" : 5.729577951308232
    },
    "attribute_id" : 8
  },
  "Convergence" : {
    "value" : {
      "val" : 11.459155902616464
    },
    "attribute_id" : 9
  },
  "X-srf" : {
    "value" : {
      "val" : 103.1
    },
    "attribute_id" : 12
  },
  "Y-srf" : {
    "value" : {
      "val" : 104.1
    },
    "attribute_id" : 13
  }
}

GET /public/api/v1/nestedwells/{uuid}/attributevalues/v2

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
.value Object Well attribute value; a plain string for VARCHAR, ENUM, DATE and IDENTIFIER types (an IDENTIFIER value is unique within the project)
.value.val Number Well attribute value for numeric type
.value.id Number Resolved list option Id (for LIST type)
.value.name String Resolved list option name (for LIST type)
.value.sort_order Number Resolved list option ordering weight (for LIST type)
.attribute_id Number Well attribute Id

Get well attribute values by typewell

Get a list of well attribute values by typewell UUID. A value of a LIST-type attribute is returned as the resolved list option object; null if the option no longer exists

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/cedd7f92-428b-486b-80b4-c3959b04eda8/attributevalues/v2' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/cedd7f92-428b-486b-80b4-c3959b04eda8/attributevalues/v2 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8dffe7ccbefdbae5fc19b83c46554b58
Content-Type: application/json

{
  "Name" : {
    "value" : "nameWell",
    "attribute_id" : 1
  },
  "API" : {
    "value" : "api",
    "attribute_id" : 2
  },
  "Well Type" : {
    "value" : "Deviated",
    "attribute_id" : 3
  },
  "Operator" : {
    "value" : "operator",
    "attribute_id" : 4
  },
  "KB" : {
    "value" : {
      "val" : 3.280839895013123
    },
    "attribute_id" : 7
  },
  "Azimuth VS" : {
    "value" : {
      "val" : 114.59155902616465
    },
    "attribute_id" : 8
  },
  "Convergence" : {
    "value" : {
      "val" : 171.88733853924697
    },
    "attribute_id" : 9
  },
  "X-srf" : {
    "value" : {
      "val" : 13.123359580052492
    },
    "attribute_id" : 12
  },
  "Y-srf" : {
    "value" : {
      "val" : 16.404199475065617
    },
    "attribute_id" : 13
  },
  "Spud date" : {
    "value" : "2022-11-17T13:15:31.000+00:00",
    "attribute_id" : 17
  },
  "# of Stages" : {
    "value" : 43,
    "attribute_id" : 43
  },
  "Final TVD" : {
    "value" : {
      "val" : 1.6076115485564304
    },
    "attribute_id" : 49
  },
  "Final TVDSS" : {
    "value" : {
      "val" : -1.6404199475065615
    },
    "attribute_id" : 50
  },
  "Formation" : {
    "value" : "test51",
    "attribute_id" : 51
  },
  "Net pay" : {
    "value" : {
      "val" : 52.0
    },
    "attribute_id" : 52
  }
}

GET /public/api/v1/typewells/{uuid}/attributevalues/v2

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
.value Object Well attribute value; a plain string for VARCHAR, ENUM, DATE and IDENTIFIER types (an IDENTIFIER value is unique within the project)
.value.val Number Well attribute value for numeric type
.value.id Number Resolved list option Id (for LIST type)
.value.name String Resolved list option name (for LIST type)
.value.sort_order Number Resolved list option ordering weight (for LIST type)
.attribute_id Number Well attribute Id

Update custom well attribute

Update custom well attribute by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wellattributes/9567c4bd-521c-4e37-ac41-cde088ec8009' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated well attribute name",
  "name_short" : "New short name",
  "group_uuid" : "b7ef6059-d428-4f35-9d4a-a786ffff1d83"
}'
PATCH /public/api/v1/wellattributes/9567c4bd-521c-4e37-ac41-cde088ec8009 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 136

{
  "name" : "Updated well attribute name",
  "name_short" : "New short name",
  "group_uuid" : "b7ef6059-d428-4f35-9d4a-a786ffff1d83"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 10fe3f6e9bc7b6676c270a55793a429a

PATCH /public/api/v1/wellattributes/{wellAttributeUuid}

Path parameter Description
wellAttributeUuid Well attribute UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String New well attribute name
name_short String New well attribute short name
group_uuid String Well attribute group UUID to place the attribute in

Response body

Empty body

Update well attribute list option

Update a list option of a LIST-type well attribute by well attribute UUID and option Id. Both fields are optional, but at least one must be present; an absent field keeps its current value. sort_order is an ordering weight, not a strict position: duplicates are allowed, options with equal weight are ordered by name (case-insensitive)

Request

$ curl 'https://solo.cloud/public/api/v1/wellattributes/01916d28-f425-4715-93f1-a77b38160db7/listoptions/5' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Crew D updated",
  "sort_order" : 10
}'
PATCH /public/api/v1/wellattributes/01916d28-f425-4715-93f1-a77b38160db7/listoptions/5 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 52

{
  "name" : "Crew D updated",
  "sort_order" : 10
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ef340f03e0ac2372434631c8cf166f74

PATCH /public/api/v1/wellattributes/{wellAttributeUuid}/listoptions/{optionId}

Path parameter Description
wellAttributeUuid LIST-type well attribute UUID
optionId List option Id
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String New list option name, unique within the attribute (case-insensitive)
sort_order Number New ordering weight: duplicates are allowed, options with equal weight are ordered by name (case-insensitive)

Response body

Empty body

Update well attribute values by lateral

Update well attribute values by lateral UUID. The values to be changed must be pre-checked for validity using the range fields constraints returned by Get a list of well attributes by group UUID method (if applicable). For a LIST-type attribute pass the Id of one of the attribute's list options as the value; null clears the value. For an IDENTIFIER-type attribute the value must be unique within the project (case-insensitive, leading/trailing spaces ignored; laterals and typewells share one uniqueness scope): a duplicate is rejected with a NOT_ACCEPTED error, null clears the value and releases it

Request

$ curl 'https://solo.cloud/public/api/v1/wells/0a169790-1581-44bf-83f0-b93cafcdd4d8/attributevalues' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '[ {
  "value" : "Penguin State ",
  "attribute_id" : 10
}, {
  "value" : {
    "val" : 1050.1005
  },
  "attribute_id" : 7
}, {
  "value" : 20,
  "attribute_id" : 43
}, {
  "value" : "2023-12-18T14:16:32.001+00:00",
  "attribute_id" : 17
}, {
  "value" : "X-link",
  "attribute_id" : 46
} ]'
PATCH /public/api/v1/wells/0a169790-1581-44bf-83f0-b93cafcdd4d8/attributevalues HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 290

[ {
  "value" : "Penguin State ",
  "attribute_id" : 10
}, {
  "value" : {
    "val" : 1050.1005
  },
  "attribute_id" : 7
}, {
  "value" : 20,
  "attribute_id" : 43
}, {
  "value" : "2023-12-18T14:16:32.001+00:00",
  "attribute_id" : 17
}, {
  "value" : "X-link",
  "attribute_id" : 46
} ]

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 25a007bb9fbf7b92e81815e4691511c7

PATCH /public/api/v1/wells/{uuid}/attributevalues

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Update well attribute values by typewell

Update well attribute values by typewell UUID. The values to be changed must be pre-checked for validity using the range fields constraints returned by Get a list of well attributes by group UUID method (if applicable). For a LIST-type attribute pass the Id of one of the attribute's list options as the value; null clears the value. For an IDENTIFIER-type attribute the value must be unique within the project (case-insensitive, leading/trailing spaces ignored; laterals and typewells share one uniqueness scope): a duplicate is rejected with a NOT_ACCEPTED error, null clears the value and releases it

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/cedd7f92-428b-486b-80b4-c3959b04eda8/attributevalues' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '[ {
  "value" : "Penguin State ",
  "attribute_id" : 10
}, {
  "value" : {
    "val" : 1050.1005
  },
  "attribute_id" : 7
}, {
  "value" : 20,
  "attribute_id" : 43
}, {
  "value" : "2023-12-18T14:16:32.001+00:00",
  "attribute_id" : 17
}, {
  "value" : "X-link",
  "attribute_id" : 46
} ]'
PATCH /public/api/v1/typewells/cedd7f92-428b-486b-80b4-c3959b04eda8/attributevalues HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 290

[ {
  "value" : "Penguin State ",
  "attribute_id" : 10
}, {
  "value" : {
    "val" : 1050.1005
  },
  "attribute_id" : 7
}, {
  "value" : 20,
  "attribute_id" : 43
}, {
  "value" : "2023-12-18T14:16:32.001+00:00",
  "attribute_id" : 17
}, {
  "value" : "X-link",
  "attribute_id" : 46
} ]

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ba0f83d88933ef081c0da76eeafb35e2

PATCH /public/api/v1/typewells/{uuid}/attributevalues

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete custom well attribute

Delete custom well attribute by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wellattributes/4d5add36-e305-42b7-a2c2-0000ec0fe42d' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/wellattributes/4d5add36-e305-42b7-a2c2-0000ec0fe42d HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e66ac8d3c76d5f2aee09bc6fd2f29c89

DELETE /public/api/v1/wellattributes/{wellAttributeUuid}

Path parameter Description
wellAttributeUuid Well attribute UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete well attribute list option

Delete a list option of a LIST-type well attribute by well attribute UUID and option Id. Well attribute values that reference the deleted option are returned as null

Request

$ curl 'https://solo.cloud/public/api/v1/wellattributes/01916d28-f425-4715-93f1-a77b38160db7/listoptions/3' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/wellattributes/01916d28-f425-4715-93f1-a77b38160db7/listoptions/3 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 0666b38d911363f24696099b82b51f56

DELETE /public/api/v1/wellattributes/{wellAttributeUuid}/listoptions/{optionId}

Path parameter Description
wellAttributeUuid LIST-type well attribute UUID
optionId List option Id
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

16. Grids

Create grid

Create grid by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/0448b2cf-a07f-4751-be1f-57bd47e67e3c/grids' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Grid name"
}'
POST /public/api/v1/projects/0448b2cf-a07f-4751-be1f-57bd47e67e3c/grids HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 26

{
  "name" : "Grid name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 5071844f341643f51eb20ba601345259
Content-Type: application/json

{
  "uuid" : "a6ea0149-a9f4-48b5-b4c0-9e16bb72e32f"
}

POST /public/api/v1/projects/{uuid}/grids

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Grid name

Response body

Path Type Description
uuid String Created grid UUID

Get grids by project

Get a list of grids by project UUID with pagination. Grids that do not contain data will not be included in the response

Request

$ curl 'https://solo.cloud/public/api/v1/projects/0448b2cf-a07f-4751-be1f-57bd47e67e3c/grids?offset=0&limit=10&filter=oNe' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/0448b2cf-a07f-4751-be1f-57bd47e67e3c/grids?offset=0&limit=10&filter=oNe HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6666ae6e06047b8a5bcb2ff552d5348b
Content-Type: application/json

{
  "content" : [ {
    "name" : "Grid one",
    "uuid" : "723d2e31-7198-498f-9072-e66498967eeb"
  }, {
    "name" : "One more grid",
    "uuid" : "87596bd3-ed87-4bd9-af30-b54380bfccd0"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/grids

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter grids by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Grid UUID
content[].name String Grid name

Get grid metadata

Get grid metadata by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/grids/18d95f38-4852-4903-8942-32ef302e2af3/metadata' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/grids/18d95f38-4852-4903-8942-32ef302e2af3/metadata HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c844785d92ceaef5b68328eb2a77159b
Content-Type: application/json

{
  "start_x" : 1761026.4432000222,
  "start_y" : 508018.38319997117,
  "step_x" : 50.00000000089999,
  "step_y" : 50.000899999999994,
  "angle" : 3.4377511537473244E-4,
  "columns" : 10,
  "rows" : 5
}

GET /public/api/v1/grids/{uuid}/metadata

Path parameter Description
uuid Grid UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
start_x Number Grid start X surface coordinate
start_y Number Grid start Y surface coordinate
step_x Number Grid X-axis step in project units
step_y Number Grid Y-axis step in project units
angle Number Grid rotation angle (degrees)
columns Number Number of grid columns
rows Number Number of grid rows

Get grid data

Get grid data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/grids/18d95f38-4852-4903-8942-32ef302e2af3/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/grids/18d95f38-4852-4903-8942-32ef302e2af3/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8ceffa9c64dda468859b27f096ff6e8a
Content-Type: application/json

{
  "metadata" : {
    "start_x" : 1761026.4432000222,
    "start_y" : 508018.38319997117,
    "step_x" : 50.00000000089999,
    "step_y" : 50.000899999999994,
    "angle" : 3.4377511537473244E-4,
    "columns" : 10,
    "rows" : 5
  },
  "data" : [ {
    "row_number" : 1,
    "values" : [ -4004.1541, -4005.4883, -4006.1639, -4004.9126, -4003.3309, -4001.4009, -3998.938, -3996.5938, -3994.3135, -3991.4742 ]
  }, {
    "row_number" : 2,
    "values" : [ -4006.5755, -4007.4856, -4008.077, -4006.9102, -4005.2642, -4002.824, -4000.285, -3998.0855, -3996.1604, -3993.5733 ]
  }, {
    "row_number" : 3,
    "values" : [ -4009.1927, -4010.4065, -4011.1248, -4009.6104, -4007.5018, -4004.8636, -4002.7835, -4000.7776, -3998.6927, -3994.7417 ]
  }, {
    "row_number" : 4,
    "values" : [ -4012.2437, -4013.699, -4014.2129, -4012.1336, -4009.8895, -4007.2583, -4005.5298, -4003.5118, -3999.9412, -3995.8165 ]
  }, {
    "row_number" : 5,
    "values" : [ -4016.2227, -4016.9622, -4016.6907, -4014.7264, -4012.2242, -4009.7496, -4008.4166, -4005.1592, -4001.252, -3996.7496 ]
  } ]
}

GET /public/api/v1/grids/{uuid}/data

Path parameter Description
uuid Grid UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
metadata.start_x Number Grid start X surface coordinate
metadata.start_y Number Grid start Y surface coordinate
metadata.step_x Number Grid X-axis step in project units
metadata.step_y Number Grid Y-axis step in project units
metadata.angle Number Grid rotation angle (degrees)
metadata.columns Number Number of grid columns
metadata.rows Number Number of grid rows
data Array Data array
data[].row_number Number Number of row
data[].values Array Values array

Upload grid data to GP

Upload grid data to global project by grid UUID

Request

$ curl 'https://solo.cloud/public/api/v1/grids/18d95f38-4852-4903-8942-32ef302e2af3/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "metadata" : {
    "start_x" : 111.5,
    "start_y" : 555.1,
    "step_x" : 10,
    "step_y" : 20,
    "angle" : 120,
    "columns" : 10,
    "rows" : 5
  },
  "data" : [ {
    "row_number" : 1,
    "values" : [ -4004.1541, -4005.4883, -4006.1639, -4004.9126, -4003.3309, -4001.4009, -3998.938, -3996.5938, -3994.3135, -3991.4742 ]
  }, {
    "row_number" : 2,
    "values" : [ -4006.5755, -4007.4856, -4008.077, -4006.9102, -4005.2642, -4002.824, -4000.285, -3998.0855, -3996.1604, -3993.5733 ]
  }, {
    "row_number" : 3,
    "values" : [ -4009.1927, -4010.4065, -4011.1248, -4009.6104, -4007.5018, -4004.8636, -4002.7835, -4000.7776, -3998.6927, -3994.7417 ]
  }, {
    "row_number" : 4,
    "values" : [ -4012.2437, -4013.699, -4014.2129, -4012.1336, -4009.8895, -4007.2583, -4005.5298, -4003.5118, -3999.9412, -3995.8165 ]
  }, {
    "row_number" : 5,
    "values" : [ -4016.2227, -4016.9622, -4016.6907, -4014.7264, -4012.2242, -4009.7496, -4008.4166, -4005.1592, -4001.252, -3996.7496 ]
  } ]
}'
PUT /public/api/v1/grids/18d95f38-4852-4903-8942-32ef302e2af3/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 1006

{
  "metadata" : {
    "start_x" : 111.5,
    "start_y" : 555.1,
    "step_x" : 10,
    "step_y" : 20,
    "angle" : 120,
    "columns" : 10,
    "rows" : 5
  },
  "data" : [ {
    "row_number" : 1,
    "values" : [ -4004.1541, -4005.4883, -4006.1639, -4004.9126, -4003.3309, -4001.4009, -3998.938, -3996.5938, -3994.3135, -3991.4742 ]
  }, {
    "row_number" : 2,
    "values" : [ -4006.5755, -4007.4856, -4008.077, -4006.9102, -4005.2642, -4002.824, -4000.285, -3998.0855, -3996.1604, -3993.5733 ]
  }, {
    "row_number" : 3,
    "values" : [ -4009.1927, -4010.4065, -4011.1248, -4009.6104, -4007.5018, -4004.8636, -4002.7835, -4000.7776, -3998.6927, -3994.7417 ]
  }, {
    "row_number" : 4,
    "values" : [ -4012.2437, -4013.699, -4014.2129, -4012.1336, -4009.8895, -4007.2583, -4005.5298, -4003.5118, -3999.9412, -3995.8165 ]
  }, {
    "row_number" : 5,
    "values" : [ -4016.2227, -4016.9622, -4016.6907, -4014.7264, -4012.2242, -4009.7496, -4008.4166, -4005.1592, -4001.252, -3996.7496 ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3167ab09c60dce91ba588973991f719c

PUT /public/api/v1/grids/{uuid}/data

Path parameter Description
uuid Grid UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
metadata.start_x Number Grid start X surface coordinate
metadata.start_y Number Grid start Y surface coordinate
metadata.step_x Number Grid X-axis step in project units
metadata.step_y Number Grid Y-axis step in project units
metadata.angle Number Grid rotation angle (range [-180; 180])
metadata.columns Number Number of grid columns
metadata.rows Number Number of grid rows
data Array Data array
data[].row_number Number Number of row
data[].values Array Values array

Response body

Empty body

Upload grid data to VP

Upload grid data to virtual project by grid UUID and virtual project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/786eede4-3c69-4f76-944a-0fa99843dbb0/grids/87596bd3-ed87-4bd9-af30-b54380bfccd0/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "metadata" : {
    "start_x" : 111.5,
    "start_y" : 555.1,
    "step_x" : 10,
    "step_y" : 20,
    "angle" : 120,
    "columns" : 10,
    "rows" : 5
  },
  "data" : [ {
    "row_number" : 1,
    "values" : [ -4004.1541, -4005.4883, -4006.1639, -4004.9126, -4003.3309, -4001.4009, -3998.938, -3996.5938, -3994.3135, -3991.4742 ]
  }, {
    "row_number" : 2,
    "values" : [ -4006.5755, -4007.4856, -4008.077, -4006.9102, -4005.2642, -4002.824, -4000.285, -3998.0855, -3996.1604, -3993.5733 ]
  }, {
    "row_number" : 3,
    "values" : [ -4009.1927, -4010.4065, -4011.1248, -4009.6104, -4007.5018, -4004.8636, -4002.7835, -4000.7776, -3998.6927, -3994.7417 ]
  }, {
    "row_number" : 4,
    "values" : [ -4012.2437, -4013.699, -4014.2129, -4012.1336, -4009.8895, -4007.2583, -4005.5298, -4003.5118, -3999.9412, -3995.8165 ]
  }, {
    "row_number" : 5,
    "values" : [ -4016.2227, -4016.9622, -4016.6907, -4014.7264, -4012.2242, -4009.7496, -4008.4166, -4005.1592, -4001.252, -3996.7496 ]
  } ]
}'
PUT /public/api/v1/projects/786eede4-3c69-4f76-944a-0fa99843dbb0/grids/87596bd3-ed87-4bd9-af30-b54380bfccd0/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 1006

{
  "metadata" : {
    "start_x" : 111.5,
    "start_y" : 555.1,
    "step_x" : 10,
    "step_y" : 20,
    "angle" : 120,
    "columns" : 10,
    "rows" : 5
  },
  "data" : [ {
    "row_number" : 1,
    "values" : [ -4004.1541, -4005.4883, -4006.1639, -4004.9126, -4003.3309, -4001.4009, -3998.938, -3996.5938, -3994.3135, -3991.4742 ]
  }, {
    "row_number" : 2,
    "values" : [ -4006.5755, -4007.4856, -4008.077, -4006.9102, -4005.2642, -4002.824, -4000.285, -3998.0855, -3996.1604, -3993.5733 ]
  }, {
    "row_number" : 3,
    "values" : [ -4009.1927, -4010.4065, -4011.1248, -4009.6104, -4007.5018, -4004.8636, -4002.7835, -4000.7776, -3998.6927, -3994.7417 ]
  }, {
    "row_number" : 4,
    "values" : [ -4012.2437, -4013.699, -4014.2129, -4012.1336, -4009.8895, -4007.2583, -4005.5298, -4003.5118, -3999.9412, -3995.8165 ]
  }, {
    "row_number" : 5,
    "values" : [ -4016.2227, -4016.9622, -4016.6907, -4014.7264, -4012.2242, -4009.7496, -4008.4166, -4005.1592, -4001.252, -3996.7496 ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e252babf0caba22dfa1d16fc217fe8a6

PUT /public/api/v1/projects/{projectUuid}/grids/{gridUuid}/data

Path parameter Description
projectUuid Virtual project UUID
gridUuid Grid UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
metadata.start_x Number Grid start X surface coordinate
metadata.start_y Number Grid start Y surface coordinate
metadata.step_x Number Grid X-axis step in project units
metadata.step_y Number Grid Y-axis step in project units
metadata.angle Number Grid rotation angle (range [-180; 180])
metadata.columns Number Number of grid columns
metadata.rows Number Number of grid rows
data Array Data array
data[].row_number Number Number of row
data[].values Array Values array

Response body

Empty body

17. Polygons

Create polygon

Create polygon by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/9e94f11f-65ed-42ad-af79-0bd0c10a78ce/polygons' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Polygon name"
}'
POST /public/api/v1/projects/9e94f11f-65ed-42ad-af79-0bd0c10a78ce/polygons HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 29

{
  "name" : "Polygon name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8d774bae765d1811e0b541b4176d6d3d
Content-Type: application/json

{
  "uuid" : "8c696f5b-9137-4fe3-b176-0835cf6052ab"
}

POST /public/api/v1/projects/{uuid}/polygons

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Polygon name

Response body

Path Type Description
uuid String Created polygon UUID

Get polygons by project

Get a list of polygons by project UUID with pagination. Polygons that do not contain data will not be included in the response

Request

$ curl 'https://solo.cloud/public/api/v1/projects/9e94f11f-65ed-42ad-af79-0bd0c10a78ce/polygons?offset=0&limit=10&filter=oNe' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/9e94f11f-65ed-42ad-af79-0bd0c10a78ce/polygons?offset=0&limit=10&filter=oNe HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4759c6f90e8eb47e50f520b2ce34deb4
Content-Type: application/json

{
  "content" : [ {
    "name" : "One more polygon",
    "uuid" : "88f8435f-8d5b-4e98-abde-f84b443227f0"
  }, {
    "name" : "Polygon one",
    "uuid" : "a8b53755-f6ee-4fef-adcc-4d1606ab816a"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/polygons

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter polygons by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Polygon UUID
content[].name String Polygon name

Get polygon data

Get polygon data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/polygons/ae11c2cf-adb7-4b1d-858f-4754f90be29f/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/polygons/ae11c2cf-adb7-4b1d-858f-4754f90be29f/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 860944ce8c8c6fb1b1e07375d5e54996
Content-Type: application/json

[ {
  "label" : "",
  "points_count" : 24,
  "xyz_points" : [ {
    "x" : 1791071.9272422243,
    "y" : 2.505124146981627E7,
    "z" : 1.6404199507874015E8
  }, {
    "x" : 1789698.1627296587,
    "y" : 2.505965649606299E7,
    "z" : -1.6404199507874015E8
  }, {
    "x" : 1795150.2624671916,
    "y" : 2.504813877952756E7,
    "z" : -5389.763779527559
  }, {
    "x" : 1796545.93175853,
    "y" : 2.5044033464566927E7,
    "z" : -5406.496062992126
  }, {
    "x" : 1790436.0236220472,
    "y" : 2.50544937664042E7,
    "z" : -5390.419947506562
  }, {
    "x" : 1798453.7401574801,
    "y" : 2.5044123031496063E7,
    "z" : -5395.997375328084
  }, {
    "x" : 1788395.9973753279,
    "y" : 2.505090649606299E7,
    "z" : -5406.824146981627
  }, {
    "x" : 1794440.6167979,
    "y" : 2.5046503280839894E7,
    "z" : -5392.716535433071
  }, {
    "x" : 1786367.4540682416,
    "y" : 2.5062931430446193E7,
    "z" : -5452.755905511811
  }, {
    "x" : 1788224.7375328084,
    "y" : 2.5057265748031493E7,
    "z" : -5404.85564304462
  }, {
    "x" : 1789879.2650918632,
    "y" : 2.50643156167979E7,
    "z" : -5464.238845144357
  }, {
    "x" : 1796062.6640419948,
    "y" : 2.5055903871391077E7,
    "z" : -5512.795275590551
  }, {
    "x" : 1789700.1312335955,
    "y" : 2.5059661089238845E7,
    "z" : -5548.884514435695
  }, {
    "x" : 1796443.2414698163,
    "y" : 2.5047924212598424E7,
    "z" : -5404.199475065617
  }, {
    "x" : 1782251.968503937,
    "y" : 2.505876902887139E7,
    "z" : -5779.85564304462
  }, {
    "x" : 1793879.2650918635,
    "y" : 2.5047021325459316E7,
    "z" : -5394.028871391076
  }, {
    "x" : 1795888.1233595798,
    "y" : 2.5046238845144354E7,
    "z" : -5369.422572178477
  }, {
    "x" : 1794775.2624671916,
    "y" : 2.5049992782152228E7,
    "z" : -5404.527559055117
  }, {
    "x" : 1793214.2388451442,
    "y" : 2.5048931102362204E7,
    "z" : -5332.677165354331
  }, {
    "x" : 1797323.490813648,
    "y" : 2.5047011811023623E7,
    "z" : -5422.900262467192
  }, {
    "x" : 1789103.3464566926,
    "y" : 2.505270866141732E7,
    "z" : -5341.535433070866
  }, {
    "x" : 1788217.847769029,
    "y" : 2.505421062992126E7,
    "z" : -5350.0656167979005
  }, {
    "x" : 1789805.4461942255,
    "y" : 2.5062502952755906E7,
    "z" : -5399.278215223097
  }, {
    "x" : 1788417.3228346454,
    "y" : 2.5061791994750656E7,
    "z" : -5383.202099737532
  } ]
} ]

GET /public/api/v1/polygons/{uuid}/data

Path parameter Description
uuid Polygon UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].label String Polyline`s label
[].points_count Number Number of points in polyline
[].xyz_points Array Polyline XYZ points
[].xyz_points[].x Number Point X coordinate (project units)
[].xyz_points[].y Number Point Y coordinate (project units)
[].xyz_points[].z Number Point Z coordinate (project units)

Upload polygon data to GP

Upload polygon data to global project by polygon UUID

Request

$ curl 'https://solo.cloud/public/api/v1/polygons/ae11c2cf-adb7-4b1d-858f-4754f90be29f/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '[ {
  "label" : "polyline1",
  "xyz_points" : [ {
    "x" : 178821.8,
    "y" : 250542.6,
    "z" : -5350.0
  }, {
    "x" : 178980.4,
    "y" : 250625.7,
    "z" : -5399.2
  }, {
    "x" : 178841.3,
    "y" : 250617.9,
    "z" : -5383.5
  } ]
}, {
  "xyz_points" : [ {
    "x" : 17.0,
    "y" : 25.0,
    "z" : -53.1
  }, {
    "x" : 11.0,
    "y" : 225.7,
    "z" : -154.0
  } ]
} ]'
PUT /public/api/v1/polygons/ae11c2cf-adb7-4b1d-858f-4754f90be29f/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 384

[ {
  "label" : "polyline1",
  "xyz_points" : [ {
    "x" : 178821.8,
    "y" : 250542.6,
    "z" : -5350.0
  }, {
    "x" : 178980.4,
    "y" : 250625.7,
    "z" : -5399.2
  }, {
    "x" : 178841.3,
    "y" : 250617.9,
    "z" : -5383.5
  } ]
}, {
  "xyz_points" : [ {
    "x" : 17.0,
    "y" : 25.0,
    "z" : -53.1
  }, {
    "x" : 11.0,
    "y" : 225.7,
    "z" : -154.0
  } ]
} ]

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2180d47af1745d3195ba06ab72e42ef2

PUT /public/api/v1/polygons/{uuid}/data

Path parameter Description
uuid Polygon UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
[].label String Polyline`s label
[].xyz_points Array Polyline XYZ points
[].xyz_points[].x Number Point X coordinate (project units)
[].xyz_points[].y Number Point Y coordinate (project units)
[].xyz_points[].z Number Point Z coordinate (project units)

Response body

Empty body

Upload polygon data to VP

Upload polygon data to virtual project by polygon UUID and virtual project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/a68d2322-d396-41f9-bf42-646677ce2124/polygons/88f8435f-8d5b-4e98-abde-f84b443227f0/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '[ {
  "label" : "polyline1",
  "xyz_points" : [ {
    "x" : 178821.8,
    "y" : 250542.6,
    "z" : -5350.0
  }, {
    "x" : 178980.4,
    "y" : 250625.7,
    "z" : -5399.2
  }, {
    "x" : 178841.3,
    "y" : 250617.9,
    "z" : -5383.5
  } ]
}, {
  "xyz_points" : [ {
    "x" : 17.0,
    "y" : 25.0,
    "z" : -53.1
  }, {
    "x" : 11.0,
    "y" : 225.7,
    "z" : -154.0
  } ]
} ]'
PUT /public/api/v1/projects/a68d2322-d396-41f9-bf42-646677ce2124/polygons/88f8435f-8d5b-4e98-abde-f84b443227f0/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 384

[ {
  "label" : "polyline1",
  "xyz_points" : [ {
    "x" : 178821.8,
    "y" : 250542.6,
    "z" : -5350.0
  }, {
    "x" : 178980.4,
    "y" : 250625.7,
    "z" : -5399.2
  }, {
    "x" : 178841.3,
    "y" : 250617.9,
    "z" : -5383.5
  } ]
}, {
  "xyz_points" : [ {
    "x" : 17.0,
    "y" : 25.0,
    "z" : -53.1
  }, {
    "x" : 11.0,
    "y" : 225.7,
    "z" : -154.0
  } ]
} ]

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4e62f3dc70a383523796037f1846605a

PUT /public/api/v1/projects/{projectUuid}/polygons/{polygonUuid}/data

Path parameter Description
projectUuid Virtual project UUID
polygonUuid Polygon UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
[].label String Polyline`s label
[].xyz_points Array Polyline XYZ points
[].xyz_points[].x Number Point X coordinate (project units)
[].xyz_points[].y Number Point Y coordinate (project units)
[].xyz_points[].z Number Point Z coordinate (project units)

Response body

Empty body

18. Sticks

Create stick

Create stick by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/471b4b49-e5bc-4408-98f5-224e807f2d1f/sticks' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Stick name",
  "trajectory" : [ {
    "tvdss" : {
      "undefined" : true
    },
    "type" : "SHL",
    "x" : {
      "undefined" : true
    },
    "y" : {
      "undefined" : true
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "LP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "TD",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -300263.133640553
    }
  } ]
}'
POST /public/api/v1/projects/471b4b49-e5bc-4408-98f5-224e807f2d1f/sticks HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 548

{
  "name" : "Stick name",
  "trajectory" : [ {
    "tvdss" : {
      "undefined" : true
    },
    "type" : "SHL",
    "x" : {
      "undefined" : true
    },
    "y" : {
      "undefined" : true
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "LP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "TD",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -300263.133640553
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8ff266a21b5caf6f5b0ada7d2c44103d
Content-Type: application/json

{
  "uuid" : "b3c7b739-b3cb-4a0b-a82a-69f38226aaa1"
}

POST /public/api/v1/projects/{uuid}/sticks

Path parameter Description
uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Stick name
trajectory Array Trajectory data
trajectory[].x.val Number X coordinate (project units)
trajectory[].y.val Number Y coordinate (project units)
trajectory[].tvdss.val Number True vertical depth below sea level (project units)
trajectory[].type String Point type (possible values: SHL for Surface Hole Location, LP for Landing Point, TD for Total Depth, WP)

Response body

Path Type Description
uuid String Created Stick UUID

Get sticks by project

Get sticks by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/471b4b49-e5bc-4408-98f5-224e807f2d1f/sticks?offset=0&limit=10&filter=oNe' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/471b4b49-e5bc-4408-98f5-224e807f2d1f/sticks?offset=0&limit=10&filter=oNe HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 9991f07e5bab4641a4cf9e93082f3e36
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "b269769d-1fe4-4e6f-ace3-477f1d1c61fb",
    "name" : "Stick one",
    "trajectory" : [ {
      "type" : "SHL",
      "x" : {
        "val" : 0.03529891982207667
      },
      "y" : {
        "val" : 0.7221145823692314
      },
      "tvdss" : {
        "val" : 2.2376181147496714
      }
    }, {
      "type" : "LP",
      "x" : {
        "val" : 0.21404070659417207
      },
      "y" : {
        "val" : 0.22306159553507188
      },
      "tvdss" : {
        "val" : 0.5472423513764045
      }
    }, {
      "type" : "TD",
      "x" : {
        "val" : 0.9754315572921087
      },
      "y" : {
        "val" : 0.39613152743812063
      },
      "tvdss" : {
        "val" : 2.16051277497194
      }
    } ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/sticks

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter sticks by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Stick UUID
content[].name String Stick name
content[].trajectory Array Trajectory data
content[].trajectory[].x.val Number X coordinate (project units)
content[].trajectory[].y.val Number Y coordinate (project units)
content[].trajectory[].tvdss.val Number True vertical depth below sea level (project units)
content[].trajectory[].type String Point type (possible values: SHL for Surface Hole Location, LP for Landing Point, TD for Total Depth, WP)

Update stick

Update stick by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/sticks/b269769d-1fe4-4e6f-ace3-477f1d1c61fb' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated stick name",
  "trajectory" : [ {
    "tvdss" : {
      "undefined" : true
    },
    "type" : "SHL",
    "x" : {
      "undefined" : true
    },
    "y" : {
      "undefined" : true
    }
  }, {
    "tvdss" : {
      "val" : -1524
    },
    "type" : "WP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -2286
    },
    "type" : "WP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "LP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "WP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -301513.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "TD",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -300263.133640553
    }
  } ]
}'
PATCH /public/api/v1/sticks/b269769d-1fe4-4e6f-ace3-477f1d1c61fb HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 1063

{
  "name" : "Updated stick name",
  "trajectory" : [ {
    "tvdss" : {
      "undefined" : true
    },
    "type" : "SHL",
    "x" : {
      "undefined" : true
    },
    "y" : {
      "undefined" : true
    }
  }, {
    "tvdss" : {
      "val" : -1524
    },
    "type" : "WP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -2286
    },
    "type" : "WP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "LP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -305263.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "WP",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -301513.133640553
    }
  }, {
    "tvdss" : {
      "val" : -3048
    },
    "type" : "TD",
    "x" : {
      "val" : 617886.755760369
    },
    "y" : {
      "val" : -300263.133640553
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8962d4e97705a00a6c142c7129dede57

PATCH /public/api/v1/sticks/{uuid}

Path parameter Description
uuid Stick UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Stick name
trajectory Array Trajectory data
trajectory[].x.val Number X coordinate (project units)
trajectory[].y.val Number Y coordinate (project units)
trajectory[].tvdss.val Number True vertical depth below sea level (project units)
trajectory[].type String Point type (possible values: SHL for Surface Hole Location, LP for Landing Point, TD for Total Depth, WP)

Response body

Empty body

Delete stick

Delete stick by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/sticks/3a28e08b-6ae4-4ed0-bfb0-2fbe5254d10b' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/sticks/3a28e08b-6ae4-4ed0-bfb0-2fbe5254d10b HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e38cd68d4a3ec5e686dc19e8a9c8f8d7

DELETE /public/api/v1/sticks/{uuid}

Path parameter Description
uuid Stick UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

19. Earth models

Create earth model

Create earth model by interpretation UUID

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/8458a518-9053-49a4-9454-8b2909de4f64/earthmodels' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Earth model name"
}'
POST /public/api/v1/interpretations/8458a518-9053-49a4-9454-8b2909de4f64/earthmodels HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 33

{
  "name" : "Earth model name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c55de6f2aab02f58a8fedffe49d925d7
Content-Type: application/json

{
  "uuid" : "f2ceff1e-37db-4e27-9387-81960d1d6e2c"
}

POST /public/api/v1/interpretations/{uuid}/earthmodels

Path parameter Description
uuid Interpretation UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Earth model name

Response body

Path Type Description
uuid String Created earth model UUID

Get earth models by interpretation

Get a list of earth models by interpretation UUID with pagination. Earth models that do not contain data will not be included in the response

Request

$ curl 'https://solo.cloud/public/api/v1/interpretations/8458a518-9053-49a4-9454-8b2909de4f64/earthmodels?offset=0&limit=10&filter=EM' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/interpretations/8458a518-9053-49a4-9454-8b2909de4f64/earthmodels?offset=0&limit=10&filter=EM HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 80c5890deb65fc860f7bc325b3aa2cb1
Content-Type: application/json

{
  "content" : [ {
    "name" : "EM 1",
    "uuid" : "ccc752cb-5d54-4e3a-bcab-96e926ac9401"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/interpretations/{uuid}/earthmodels

Path parameter Description
uuid Interpretation UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
filter Filter earth models by the 'name' field. Case insensitive.
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Earth model UUID
content[].name String Earth model name

Get earth model data

Get earth model data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/earthmodels/ccc752cb-5d54-4e3a-bcab-96e926ac9401/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/earthmodels/ccc752cb-5d54-4e3a-bcab-96e926ac9401/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 83550376c5b05775d65ef5b7ca4f753b
Content-Type: application/json

{
  "sections" : [ {
    "layers" : [ ],
    "md" : {
      "val" : 328.0839895013124
    }
  }, {
    "layers" : [ ],
    "md" : {
      "val" : 0.0
    }
  } ]
}

GET /public/api/v1/earthmodels/{uuid}/data

Path parameter Description
uuid Earth model UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
sections Array Earth model sections
sections[].md.val Number Measured Depth value (project units)
sections[].layers Array Earth model section layers
sections[].layers[]resistivity_horizontal.val Number Horizontal resistivity value
sections[].layers[]resistivity_vertical.val Number Vertical resistivity value
sections[].layers[]tvd.val Number True vertical depth value (project units)

Upload earth model data

Upload earth model data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/earthmodels/ccc752cb-5d54-4e3a-bcab-96e926ac9401/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "sections" : [ {
    "layers" : [ {
      "resistivity_horizontal" : {
        "val" : 10.0
      },
      "resistivity_vertical" : {
        "val" : 10.0
      },
      "tvd" : {
        "val" : -100000
      }
    }, {
      "resistivity_horizontal" : {
        "val" : 994.0
      },
      "resistivity_vertical" : {
        "val" : 1988.0
      },
      "tvd" : {
        "val" : 16.4592
      }
    }, {
      "resistivity_horizontal" : {
        "val" : 994.0
      },
      "resistivity_vertical" : {
        "val" : 1988.0
      },
      "tvd" : {
        "val" : 30.48
      }
    } ],
    "md" : {
      "val" : 10.0
    }
  }, {
    "layers" : [ {
      "resistivity_horizontal" : {
        "val" : 20.0
      },
      "resistivity_vertical" : {
        "val" : 20.0
      },
      "tvd" : {
        "val" : -100000
      }
    }, {
      "resistivity_horizontal" : {
        "val" : 99.0
      },
      "resistivity_vertical" : {
        "val" : 988.0
      },
      "tvd" : {
        "val" : 31
      }
    } ],
    "md" : {
      "val" : 30.0
    }
  } ]
}'
PUT /public/api/v1/earthmodels/ccc752cb-5d54-4e3a-bcab-96e926ac9401/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 1074

{
  "sections" : [ {
    "layers" : [ {
      "resistivity_horizontal" : {
        "val" : 10.0
      },
      "resistivity_vertical" : {
        "val" : 10.0
      },
      "tvd" : {
        "val" : -100000
      }
    }, {
      "resistivity_horizontal" : {
        "val" : 994.0
      },
      "resistivity_vertical" : {
        "val" : 1988.0
      },
      "tvd" : {
        "val" : 16.4592
      }
    }, {
      "resistivity_horizontal" : {
        "val" : 994.0
      },
      "resistivity_vertical" : {
        "val" : 1988.0
      },
      "tvd" : {
        "val" : 30.48
      }
    } ],
    "md" : {
      "val" : 10.0
    }
  }, {
    "layers" : [ {
      "resistivity_horizontal" : {
        "val" : 20.0
      },
      "resistivity_vertical" : {
        "val" : 20.0
      },
      "tvd" : {
        "val" : -100000
      }
    }, {
      "resistivity_horizontal" : {
        "val" : 99.0
      },
      "resistivity_vertical" : {
        "val" : 988.0
      },
      "tvd" : {
        "val" : 31
      }
    } ],
    "md" : {
      "val" : 30.0
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: d7e2c15d1da5b53f9e800f9aa04b7cbd

PUT /public/api/v1/earthmodels/{uuid}/data

Path parameter Description
uuid Earth model UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
sections Array Earth model sections
sections[].md.val Number Measured Depth value (project units)
sections[].layers Array Earth model section layers
sections[].layers[]resistivity_horizontal.val Number Horizontal resistivity value
sections[].layers[]resistivity_vertical.val Number Vertical resistivity value
sections[].layers[]tvd.val Number True vertical depth value (project units)

Response body

Empty body

20. Reference lists

Get reference list categories

Get a list of reference list categories

Request

$ curl 'https://solo.cloud/public/api/v1/referencelistcategories' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/referencelistcategories HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ed703db6b61515014782bca06bd7a51d
Content-Type: application/json

[ {
  "name" : "welllist",
  "uuid" : "f6665da9-e922-42a7-ae92-a45a5b367eaf",
  "applicable_to" : [ "laterals", "typewells" ]
} ]

GET /public/api/v1/referencelistcategories

Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].name String Reference list category name
[].uuid String Reference list category UUID
[].applicable_to Array Reference list category objects type array

Get reference lists with items

Get a list of reference lists by project UUID and category UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/ec7b6f60-5d1e-4867-83e9-1451cc9927f2/listcategories/f6665da9-e922-42a7-ae92-a45a5b367eaf/referencelists?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/ec7b6f60-5d1e-4867-83e9-1451cc9927f2/listcategories/f6665da9-e922-42a7-ae92-a45a5b367eaf/referencelists?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ec87567953beb65209f49387fd2cf5c9
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "05203f0f-631b-4824-bd45-0d25a7c3194c",
    "name" : "name",
    "owner" : {
      "description" : "",
      "email" : "a.zhuravlev+support@rogii.com",
      "first_name" : "AAAAAA",
      "last_name" : "BBB"
    },
    "object_ids" : [ ]
  }, {
    "uuid" : "b0e3e9b1-c5c3-4960-8163-462625f09dae",
    "name" : "Reference List Name",
    "owner" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    },
    "object_ids" : [ "34c942f9-9203-49a2-af22-11b963f7b64d", "0c52b408-e35f-4a2f-a691-a4f84daa3b0f" ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{projectUuid}/listcategories/{categoryUuid}/referencelists

Path parameter Description
projectUuid Project UUID
categoryUuid Category UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Reference list UUID
content[].name String Reference list name
content[].object_ids Array Reference list objects array
content[].owner Object User info of the reference list owner (null if the list has no owner)
content[].owner.description String User description
content[].owner.email String User email
content[].owner.first_name String User first name
content[].owner.last_name String User last name

Get well lists with items

Get a list of well lists by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/ec7b6f60-5d1e-4867-83e9-1451cc9927f2/welllists?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/ec7b6f60-5d1e-4867-83e9-1451cc9927f2/welllists?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 68a880de7c9ad42a7bc1fc3e2966abed
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "05203f0f-631b-4824-bd45-0d25a7c3194c",
    "name" : "name",
    "owner" : {
      "description" : "",
      "email" : "a.zhuravlev+support@rogii.com",
      "first_name" : "AAAAAA",
      "last_name" : "BBB"
    },
    "object_ids" : [ ]
  }, {
    "uuid" : "b0e3e9b1-c5c3-4960-8163-462625f09dae",
    "name" : "Reference List Name",
    "owner" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    },
    "object_ids" : [ "34c942f9-9203-49a2-af22-11b963f7b64d", "0c52b408-e35f-4a2f-a691-a4f84daa3b0f" ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{projectUuid}/welllists

Path parameter Description
projectUuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Well list UUID
content[].name String Well list name
content[].object_ids Array Well list objects array
content[].owner Object User info of the well list owner (null if the list has no owner)
content[].owner.description String User description
content[].owner.email String User email
content[].owner.first_name String User first name
content[].owner.last_name String User last name

Get well list wells

Get wells of a well list by well list UUID. Available to any user of the company that owns the well list's project

Request

$ curl 'https://solo.cloud/public/api/v1/welllists/b0e3e9b1-c5c3-4960-8163-462625f09dae' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/welllists/b0e3e9b1-c5c3-4960-8163-462625f09dae HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ac349e311786d4c7af75c1adaa8a098a
Content-Type: application/json

{
  "name" : "Reference List Name",
  "owner" : {
    "description" : "Bot manager",
    "email" : "a.bortnikov+manager@rogii.com",
    "first_name" : "Bot",
    "last_name" : "Manager"
  },
  "wells" : [ {
    "name" : "Lateral 22H",
    "api" : "42-501-20130",
    "uuid" : "34c942f9-9203-49a2-af22-11b963f7b64d",
    "type" : "WELL"
  }, {
    "name" : "Typewell A",
    "uuid" : "0c52b408-e35f-4a2f-a691-a4f84daa3b0f",
    "type" : "TYPEWELL"
  } ]
}

GET /public/api/v1/welllists/{uuid}

Path parameter Description
uuid Well list UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
name String Well list name
owner Object User info of the well list owner (absent if the list has no owner)
owner.description String User description
owner.email String User email
owner.first_name String User first name
owner.last_name String User last name
wells Array Wells included in the well list
wells[].name String Well name
wells[].api String Well API number (absent if not set)
wells[].uuid String Well UUID
wells[].type String Well type: WELL or TYPEWELL

21. Comments

Create comment

Create comment by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/011f9a74-572f-43cf-8a44-023dc193ce4a/comments' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Comment name"
}'
POST /public/api/v1/wells/011f9a74-572f-43cf-8a44-023dc193ce4a/comments HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 29

{
  "name" : "Comment name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 74a10da61ccfab7ce9fd88aff4f00a99
Content-Type: application/json

{
  "uuid" : "93e8cc64-68f1-461b-9f2c-db78bd18e0fb"
}

POST /public/api/v1/wells/{uuid}/comments

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Comment name

Response body

Path Type Description
uuid String Created comment UUID

Create comment box

Create comment box by comment UUID

Request

$ curl 'https://solo.cloud/public/api/v1/comments/f23f7d2f-0125-4a9d-9435-ea20871095e8/commentboxes' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "text" : "Comment box text",
  "anchor_md" : {
    "val" : 1205.8
  }
}'
POST /public/api/v1/comments/f23f7d2f-0125-4a9d-9435-ea20871095e8/commentboxes HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 75

{
  "text" : "Comment box text",
  "anchor_md" : {
    "val" : 1205.8
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: bd205fd8f2e3e05d2937d441b2c05458
Content-Type: application/json

{
  "uuid" : "478021b4-5446-4973-92b4-8ecf86ae1ea2"
}

POST /public/api/v1/comments/{uuid}/commentboxes

Path parameter Description
uuid Comment UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
text String Comment box text
anchor_md.val Number Comment box placement measured depth value in project units

Response body

Path Type Description
uuid String Created comment box UUID

Get comments

Get comments with comment boxes by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/011f9a74-572f-43cf-8a44-023dc193ce4a/comments?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
GET /public/api/v1/wells/011f9a74-572f-43cf-8a44-023dc193ce4a/comments?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2ad4e7caa5695b4c00f31976201387f0
Content-Type: application/json

{
  "content" : [ {
    "comment_id" : "f23f7d2f-0125-4a9d-9435-ea20871095e8",
    "name" : "Updated comment name",
    "comment_boxes" : [ {
      "commentbox_id" : "912f0aa4-3580-4403-ba28-d30272e58409",
      "text" : "New Comment Text",
      "anchor_md" : {
        "val" : 2375.2755905511813
      }
    }, {
      "commentbox_id" : "478021b4-5446-4973-92b4-8ecf86ae1ea2",
      "text" : "Comment box text",
      "anchor_md" : {
        "val" : 1205.8
      }
    } ]
  }, {
    "comment_id" : "631b3dac-bba2-46e6-99b0-7d414e040839",
    "name" : "Comment",
    "comment_boxes" : [ {
      "commentbox_id" : "d39b6146-28ea-4781-8564-c0e9de4bd97b",
      "text" : "New Comment Text",
      "anchor_md" : {
        "val" : 2375.2755905511813
      }
    }, {
      "commentbox_id" : "e04c0325-91f5-4bdf-86a2-92327ea851a2",
      "text" : "New Comment Text",
      "anchor_md" : {
        "val" : 2375.2755905511813
      }
    } ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/comments

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].comment_id String Comment UUID
content[].name String Comment name
content[].comment_boxes[].commentbox_id String Comment box UUID
content[].comment_boxes[].text String Comment box text
content[].comment_boxes[].anchor_md.val Number Comment box placement measured depth value in project units

Update comment

Update comment by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/comments/f23f7d2f-0125-4a9d-9435-ea20871095e8' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated comment name"
}'
PATCH /public/api/v1/comments/f23f7d2f-0125-4a9d-9435-ea20871095e8 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 37

{
  "name" : "Updated comment name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 69ccf6398738566ce6d9b70f9683409e

PATCH /public/api/v1/comments/{uuid}

Path parameter Description
uuid Comment UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String New comment name

Response body

Empty body

Update comment box

Update comment box by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/commentboxes/912f0aa4-3580-4403-ba28-d30272e58409' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "text" : "Updated comment box text",
  "anchor_md" : {
    "val" : 333.8
  }
}'
PATCH /public/api/v1/commentboxes/912f0aa4-3580-4403-ba28-d30272e58409 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 82

{
  "text" : "Updated comment box text",
  "anchor_md" : {
    "val" : 333.8
  }
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e2760cbdea2d138a38c7c57ad2bbf02b

PATCH /public/api/v1/commentboxes/{uuid}

Path parameter Description
uuid Comment box UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
text String New comment box text
anchor_md.val Number New comment box placement measured depth value in project units

Response body

Empty body

Delete comment

Delete comment by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/comments/f23f7d2f-0125-4a9d-9435-ea20871095e8' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/comments/f23f7d2f-0125-4a9d-9435-ea20871095e8 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: adaff44027883118fe85e7eafc6fbd78

DELETE /public/api/v1/comments/{uuid}

Path parameter Description
uuid Comment UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete comment box

Delete comment box by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/commentboxes/912f0aa4-3580-4403-ba28-d30272e58409' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json'
DELETE /public/api/v1/commentboxes/912f0aa4-3580-4403-ba28-d30272e58409 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6972d306590181dfb461b82be7a88b97

DELETE /public/api/v1/commentboxes/{uuid}

Path parameter Description
uuid Comment box UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

22. Log families

Get laterals log families list

Get laterals log families list by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/wells/logs/logfamilies?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/wells/logs/logfamilies?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 08b995849521994fe955f6d3fa8ae126
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "306e5576-f763-40fd-b5a7-173a554105af",
    "name" : "Log Family",
    "group_mnemonics" : [ "mnemonic1", "mnemonic2", "mnemonic3" ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/wells/logs/logfamilies

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Log family UUID
content[].name String Log family name
content[].group_mnemonics[]. Array Mnemonics list

Get typewells log families list

Get typewells log families list by project UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/typewells/logs/logfamilies?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/typewells/logs/logfamilies?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3e2323746edf4bf9961e5f944c7d0a02
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "306e5576-f763-40fd-b5a7-173a554105af",
    "name" : "Log Family",
    "group_mnemonics" : [ "mnemonic1", "mnemonic2", "mnemonic3" ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/typewells/logs/logfamilies

Path parameter Description
uuid Project UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Log family UUID
content[].name String Log family name
content[].group_mnemonics[]. Array Mnemonics list

Get laterals log list by log family in specific project

Get laterals log list by log family and project UUIDs

Request

$ curl 'https://solo.cloud/public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/logfamilies/306e5576-f763-40fd-b5a7-173a554105af/wells/logs?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/logfamilies/306e5576-f763-40fd-b5a7-173a554105af/wells/logs?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: db4cbbb085edb6e6858d6b9723b8a6eb
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "1089cc6b-8c57-4dc1-a56e-4797e7cbd899",
    "name" : "mnemonic1"
  }, {
    "uuid" : "45188e57-44e4-4c4b-abab-cb3510d4ca30",
    "name" : "mnemonic3"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{project_id}/logfamilies/{log_family_id}/wells/logs

Path parameter Description
project_id Project UUID
log_family_id Log family UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Log UUID
content[].name String Log name

Get typewells log list by log family in specific project

Get typewells log list by log family and project UUIDs

Request

$ curl 'https://solo.cloud/public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/logfamilies/306e5576-f763-40fd-b5a7-173a554105af/typewells/logs?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/c153c001-4ea1-4749-b57f-6548a19fd8e5/logfamilies/306e5576-f763-40fd-b5a7-173a554105af/typewells/logs?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: cb91faf88f2e703ceb6aba9e7d9751b5
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "8e62f62e-049d-4d8d-8d26-3457ba1f9f18",
    "name" : "mnemonic1"
  }, {
    "uuid" : "8a701afb-0ea2-4fe9-80c6-e984e1a04831",
    "name" : "mnemonic3"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{project_id}/logfamilies/{log_family_id}/typewells/logs

Path parameter Description
project_id Project UUID
log_family_id Log family UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Log UUID
content[].name String Log name

23. Objects update info

Get update info by lateral

Get update info about child objects by lateral UUID. If some child object is missing in the response, it means that at the moment it no longer exists (was deleted)

Request

$ curl 'https://solo.cloud/public/api/v1/wells/926a570b-d8af-4383-81d1-e8b71237e194/updateinfo' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/926a570b-d8af-4383-81d1-e8b71237e194/updateinfo HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 75a9dea3301c6deedefc7e2862ea8910
Content-Type: application/json

{
  "content" : [ {
    "type" : "IMAGE",
    "modified_at" : "2026-09-08T17:51:49.849184Z",
    "uuid" : "75bf8f0a-32ac-47b0-8702-d74b2102c687",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.849184Z"
  }, {
    "type" : "IMAGELOG",
    "modified_at" : "2026-09-08T17:51:49.605627Z",
    "uuid" : "9c172766-4c52-4d7c-aa22-bf73feb4bfb3",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.605627Z"
  }, {
    "type" : "IMAGE",
    "modified_at" : "2026-09-08T17:51:49.692813Z",
    "uuid" : "088a5809-56b2-46f1-8192-14cae181ca2c",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.692813Z"
  }, {
    "type" : "MUDLOG",
    "modified_at" : "2026-09-08T17:51:49.925066Z",
    "uuid" : "d6c5690c-6ba3-47c5-a8d4-3e4376e85f20",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.925066Z"
  }, {
    "type" : "LOG",
    "modified_at" : "2026-09-08T17:51:49.519160Z",
    "uuid" : "c7d660e8-f1da-47d6-85b3-d24d51518a35",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.519160Z"
  }, {
    "type" : "TOPSET",
    "modified_at" : "2026-09-08T17:51:50.094185Z",
    "uuid" : "7348d507-42e9-421f-8869-5833c84ad52f",
    "parent_uuid" : "b16691df-bfe2-4254-9a12-e5aeea41f731",
    "updated_at" : "2026-09-08T17:51:50.094185Z"
  }, {
    "type" : "NESTEDWELL",
    "modified_at" : "2026-09-08T17:51:50.094185Z",
    "uuid" : "b16691df-bfe2-4254-9a12-e5aeea41f731",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:50.051471Z"
  }, {
    "type" : "TOP",
    "modified_at" : "2026-09-08T17:51:50.180984Z",
    "uuid" : "3e99ec0b-8dbf-45ab-9cae-540a571170bb",
    "parent_uuid" : "2e3a332d-89ce-4ac0-aa9c-cbc8dd82319f",
    "updated_at" : "2026-09-08T17:51:50.180984Z"
  }, {
    "type" : "COMMENT",
    "modified_at" : "2026-09-08T17:51:50.246014Z",
    "uuid" : "be495d52-b8d4-4874-8a3a-d06b69dc91bb",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:50.246014Z"
  }, {
    "type" : "TARGETLINE",
    "modified_at" : "2026-09-08T17:51:50.336013Z",
    "uuid" : "74980e1b-c482-4ef6-b06e-a15b46e311d7",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:50.336013Z"
  }, {
    "type" : "EARTHMODEL",
    "modified_at" : "2026-09-08T17:51:50.456342Z",
    "uuid" : "278df677-dc58-4547-8e74-595f77fe405d",
    "parent_uuid" : "27f4bf12-d5ef-4c5f-a801-7297ff665fbb",
    "updated_at" : "2026-09-08T17:51:50.400160Z"
  }, {
    "type" : "INTERPRETATION",
    "modified_at" : "2026-09-08T17:51:50.456342Z",
    "uuid" : "27f4bf12-d5ef-4c5f-a801-7297ff665fbb",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.730339Z"
  }, {
    "type" : "TOPSET",
    "modified_at" : "2026-09-08T17:51:50.684391Z",
    "uuid" : "2e3a332d-89ce-4ac0-aa9c-cbc8dd82319f",
    "parent_uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:50.129366Z"
  }, {
    "type" : "WELL",
    "modified_at" : "2026-09-08T17:51:50.684391Z",
    "uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "updated_at" : "2026-09-08T17:51:49.431236Z"
  } ]
}

GET /public/api/v1/wells/{uuid}/updateinfo

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].uuid String The object UUID
content[].type String Type of the object
content[].parent_uuid String Parent object UUID (optional)
content[].updated_at String Timestamp showing when the object itself was updated (UTC time)
content[].modified_at String Timestamp showing when either one of the child objects or object itself was updated (UTC time)

Get update info by typewell

Get update info about child objects by typewell UUID. If some child object is missing in the response, it means that at the moment it no longer exists (was deleted)

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/bdadb02a-f8b1-495d-8ab6-4e6a7952dd03/updateinfo' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/bdadb02a-f8b1-495d-8ab6-4e6a7952dd03/updateinfo HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: ff70daab9d0a2fec35349a3fa6962b0c
Content-Type: application/json

{
  "content" : [ {
    "type" : "LOG",
    "modified_at" : "2026-09-08T17:51:49.200984Z",
    "uuid" : "c62d6fdb-2d0a-4b96-96d3-c54dc779a392",
    "parent_uuid" : "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03",
    "updated_at" : "2026-09-08T17:51:49.200984Z"
  }, {
    "type" : "MUDLOG",
    "modified_at" : "2026-09-08T17:51:49.294217Z",
    "uuid" : "d5070894-eab4-48d1-bbe5-ca2d431967ef",
    "parent_uuid" : "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03",
    "updated_at" : "2026-09-08T17:51:49.294217Z"
  }, {
    "type" : "TOP",
    "modified_at" : "2026-09-08T17:51:49.357261Z",
    "uuid" : "26fdef8c-58fe-4d3a-a6ad-dadefb006c38",
    "parent_uuid" : "57599ffa-de26-401d-b948-0dd2f75f5d5e",
    "updated_at" : "2026-09-08T17:51:49.357261Z"
  }, {
    "type" : "TOPSET",
    "modified_at" : "2026-09-08T17:51:49.357261Z",
    "uuid" : "57599ffa-de26-401d-b948-0dd2f75f5d5e",
    "parent_uuid" : "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03",
    "updated_at" : "2026-09-08T17:51:49.235359Z"
  }, {
    "type" : "TYPEWELL",
    "modified_at" : "2026-09-08T17:51:49.357261Z",
    "uuid" : "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03",
    "updated_at" : "2026-09-08T17:51:49.099837Z"
  } ]
}

GET /public/api/v1/typewells/{uuid}/updateinfo

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].uuid String The object UUID
content[].type String Type of the object
content[].parent_uuid String Parent object UUID (optional)
content[].updated_at String Timestamp showing when the object itself was updated (UTC time)
content[].modified_at String Timestamp showing when either one of the child objects or object itself was updated (UTC time)

Get grid update info

Get grid update info by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/grids/0707d1ab-28a5-4ce8-b5bc-ae7d3a862cae/updateinfo' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/grids/0707d1ab-28a5-4ce8-b5bc-ae7d3a862cae/updateinfo HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 7b0be99351cb2bfba1c4b96d17142487
Content-Type: application/json

{
  "content" : [ {
    "type" : "GRID",
    "modified_at" : "2026-09-08T17:51:50.998130Z",
    "uuid" : "0707d1ab-28a5-4ce8-b5bc-ae7d3a862cae",
    "updated_at" : "2026-09-08T17:51:50.998130Z"
  } ]
}

GET /public/api/v1/grids/{uuid}/updateinfo

Path parameter Description
uuid Grid UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].uuid String The object UUID
content[].type String Type of the object
content[].parent_uuid String Parent object UUID (optional)
content[].updated_at String Timestamp showing when the object itself was updated (UTC time)
content[].modified_at String Timestamp showing when either one of the child objects or object itself was updated (UTC time)

Get polygon update info

Get polygon update info by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/polygons/c8b4f968-adc1-435f-a2b0-4c20f88a2538/updateinfo' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/polygons/c8b4f968-adc1-435f-a2b0-4c20f88a2538/updateinfo HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 18fd8ae51fd61ddd507f5fc652441da9
Content-Type: application/json

{
  "content" : [ {
    "type" : "POLYGON",
    "modified_at" : "2026-09-08T17:51:50.805929Z",
    "uuid" : "c8b4f968-adc1-435f-a2b0-4c20f88a2538",
    "updated_at" : "2026-09-08T17:51:50.805929Z"
  } ]
}

GET /public/api/v1/polygons/{uuid}/updateinfo

Path parameter Description
uuid Polygon UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].uuid String The object UUID
content[].type String Type of the object
content[].parent_uuid String Parent object UUID (optional)
content[].updated_at String Timestamp showing when the object itself was updated (UTC time)
content[].modified_at String Timestamp showing when either one of the child objects or object itself was updated (UTC time)

Get stick update info

Get stick update info by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/sticks/09a24b3b-5f85-4c02-aef4-f7275497a5bb/updateinfo' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/sticks/09a24b3b-5f85-4c02-aef4-f7275497a5bb/updateinfo HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 773b01a71e0cdd6b7024765065f86fbe
Content-Type: application/json

{
  "content" : [ {
    "type" : "STICK",
    "modified_at" : "2026-09-08T17:51:51.070062Z",
    "uuid" : "09a24b3b-5f85-4c02-aef4-f7275497a5bb",
    "updated_at" : "2026-09-08T17:51:51.070062Z"
  } ]
}

GET /public/api/v1/sticks/{uuid}/updateinfo

Path parameter Description
uuid Stick UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
content[].uuid String The object UUID
content[].type String Type of the object
content[].parent_uuid String Parent object UUID (optional)
content[].updated_at String Timestamp showing when the object itself was updated (UTC time)
content[].modified_at String Timestamp showing when either one of the child objects or object itself was updated (UTC time)

Get last change user info

Get information about users who made the last changes to specified objects

Request

$ curl 'https://solo.cloud/public/api/v1/lastchange/userinfo' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "object_uuids" : [ "926a570b-d8af-4383-81d1-e8b71237e194", "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03", "0707d1ab-28a5-4ce8-b5bc-ae7d3a862cae" ]
}'
POST /public/api/v1/lastchange/userinfo HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 145

{
  "object_uuids" : [ "926a570b-d8af-4383-81d1-e8b71237e194", "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03", "0707d1ab-28a5-4ce8-b5bc-ae7d3a862cae" ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: fdfdaf46e242ea66ae950bd95f0487aa
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "bdadb02a-f8b1-495d-8ab6-4e6a7952dd03",
    "type" : "TYPEWELL",
    "updated_at" : "2026-09-08T17:51:49.099837Z",
    "modified_at" : "2026-09-08T17:51:49.357261Z",
    "updated_by" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    },
    "modified_by" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    }
  }, {
    "uuid" : "926a570b-d8af-4383-81d1-e8b71237e194",
    "type" : "WELL",
    "updated_at" : "2026-09-08T17:51:49.431236Z",
    "modified_at" : "2026-09-08T17:51:50.684391Z",
    "updated_by" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    },
    "modified_by" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    }
  }, {
    "uuid" : "0707d1ab-28a5-4ce8-b5bc-ae7d3a862cae",
    "type" : "GRID",
    "updated_at" : "2026-09-08T17:51:50.998130Z",
    "modified_at" : "2026-09-08T17:51:50.998130Z",
    "updated_by" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    },
    "modified_by" : {
      "description" : "Bot manager",
      "email" : "a.bortnikov+manager@rogii.com",
      "first_name" : "Bot",
      "last_name" : "Manager"
    }
  } ]
}

POST /public/api/v1/lastchange/userinfo

Header Description
Authorization OAuth2 authorization header
Body field Type Description
object_uuids Array List of object UUIDs

Response body

Path Type Description
content Array Content array
content[].uuid String The object UUID
content[].type String Type of the object
content[].updated_at String Timestamp showing when the object itself was updated (UTC time)
content[].modified_at String Timestamp showing when either one of the child objects or object itself was updated (UTC time)
content[].updated_by Object User info of who last updated the object
content[].updated_by.description String User description
content[].updated_by.email String User email
content[].updated_by.first_name String User first name
content[].updated_by.last_name String User last name
content[].modified_by Object User info of who last modified the object or its children
content[].modified_by.description String User description
content[].modified_by.email String User email
content[].modified_by.first_name String User first name
content[].modified_by.last_name String User last name

24. Toolcodes

Get toolcodes

Get toolcodes list.

Request

$ curl 'https://solo.cloud/public/api/v1/toolcodes' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/toolcodes HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 918180a3c6f38653199deeb93a9bbdac
Content-Type: application/json

[ {
  "short_name" : "MWD+SRGM",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with no additional corrections",
  "prefix" : "A001Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+SRGM_Fl",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with no additional corrections on a Floating Rig",
  "prefix" : "A001Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+SRGM+SAG",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) and Sag Correction",
  "prefix" : "A002Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+SRGM+SAG_Fl",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) and Sag Correction on a Floating Rig",
  "prefix" : "A002Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "TEST_TOOLCODE",
  "description" : "A002Mb/ISC4: BGGM dec + sag corrections",
  "prefix" : "A002Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : true
}, {
  "short_name" : "MWD+SRGM+AX",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction",
  "prefix" : "A003Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+SRGM+AX_Fl",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction on a Floating Rig",
  "prefix" : "A003Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+SRGM+AX+SAG",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction and Sag Correction",
  "prefix" : "A004Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+SRGM+AX+SAG_Fl",
  "description" : "MWD using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "A004Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction)",
  "prefix" : "A005Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1_Fl",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) on a Floating Rig",
  "prefix" : "A005Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+AX",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Axial Correction",
  "prefix" : "A006Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+AX_Fl",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Axial Correction on a Floating Rig",
  "prefix" : "A006Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+AX+SAG",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Axial Correction and Sag Correction",
  "prefix" : "A007Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+AX+SAG_Fl",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "A007Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+MS",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Multi-Station Correction. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "A008Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+MS_Fl",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Multi-Station Correction on a Floating Rig. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "A008Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+SAG",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Sag Correction",
  "prefix" : "A009Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+SAG_Fl",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) and Sag Correction on a Floating Rig",
  "prefix" : "A009Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+SAG+MS",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) with Sag and Multi-Station Correction. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "A010Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR1+SAG+MS_Fl",
  "description" : "MWD with IFR1 (IFR or Crustal Anomaly Correction) with Sag and Multi-Station Correction on a Floating Rig. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "A010Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR2+AX+SAG",
  "description" : "MWD with IFR2 (IIFR or Crustal Anomaly with Time Varying Corrections) and Axial Correction and Sag Correction",
  "prefix" : "A011Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR2",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR2+AX+SAG_Fl",
  "description" : "MWD with IFR2 (IIFR or Crustal Anomaly with Time Varying Corrections) and Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "A011Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR2",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR2+SAG",
  "description" : "MWD with IFR2 (IIFR or Crustal Anomaly with Time Varying Corrections) and Sag Correction",
  "prefix" : "A012Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "IFR2",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR2+SAG_Fl",
  "description" : "MWD with IFR2 (IIFR or Crustal Anomaly with Time Varying Corrections) and Sag Correction on a Floating Rig",
  "prefix" : "A012Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "IFR2",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR2+SAG+MS",
  "description" : "MWD with IFR2 (IIFR or Crustal Anomaly with Time Varying Corrections) with Sag and Multi-Station Correction. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "A013Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR2",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+IFR2+SAG+MS_Fl",
  "description" : "MWD with IFR2 (IIFR or Crustal Anomaly with Time Varying Corrections) with Sag and Multi-Station Correction on a Floating Rig. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "A013Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR2",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with no additional corrections",
  "prefix" : "A014Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM_Fl",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with no additional corrections on a Floating Rig",
  "prefix" : "A014Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM+AX",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction",
  "prefix" : "A015Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM+AX_Fl",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction on a Floating Rig",
  "prefix" : "A015Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM+AX+SAG",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction and Sag Correction",
  "prefix" : "A016Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM+AX+SAG_Fl",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "A016Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM+SAG",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) and Sag Correction",
  "prefix" : "A017Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+SRGM+SAG_Fl",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) and Sag Correction on a Floating Rig",
  "prefix" : "A017Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "DIPMETER",
  "description" : "Wireline logging tool survey data e.g. Schlumberger GPIT OBDT BGT or Atlas ORIT",
  "prefix" : "A018Mb",
  "tool_category" : "Magnetic",
  "tool_type" : "Dipmeter",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "DIPMETER_Fl",
  "description" : "Wireline logging tool survey data e.g. Schlumberger GPIT OBDT BGT or Atlas ORIT on a Floating Rig",
  "prefix" : "A018Mb",
  "tool_category" : "Magnetic",
  "tool_type" : "Dipmeter",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "GYRO-MWD",
  "description" : "Generic Gyro MWD. CARE TO BE TAKEN - Tool model fails at 90 deg inclination.",
  "prefix" : "A019Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Gyro MWD",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "GYRO-MWD_Fl",
  "description" : "Generic Gyro MWD on a Floating Rig. CARE TO BE TAKEN - Tool model fails at 90 deg inclination.",
  "prefix" : "A019Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Gyro MWD",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "GYRO-NS",
  "description" : "Generic North Seeking Gyrocompass Gyro. CARE TO BE TAKEN - Tool model fails at 90 deg inclination.",
  "prefix" : "A020Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Gyro Compass",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "GYRO-NS_Fl",
  "description" : "Generic North Seeking Gyrocompass Gyro on a Floating Rig. CARE TO BE TAKEN - Tool model fails at 90 deg inclination.",
  "prefix" : "A020Gb",
  "custom" : false
}, {
  "short_name" : "GYRO-NS-CT",
  "description" : "Generic Hybrid Static Gyrocompass and Continuous Survey",
  "prefix" : "A021Gc",
  "tool_category" : "Gyro",
  "tool_type" : "Continuous",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "GYRO-NS-CT_Fl",
  "description" : "Generic Hybrid Static Gyrocompass and Continuous Survey on a Floating Rig",
  "prefix" : "A021Gc",
  "tool_category" : "Gyro",
  "tool_type" : "Continuous",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_GMS",
  "description" : "Conventional free gyro e.g. Level Rotor Gyro (LRG). CARE TO BE TAKEN – Tool model fails at 90 deg inclination.",
  "prefix" : "A022Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Camera Based",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_GMS_Fl",
  "description" : "Conventional free gyro e.g. Level Rotor Gyro (LRG) on a Floating Rig. CARE TO BE TAKEN – Tool model fails at 90 deg inclination.",
  "prefix" : "A022Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Camera Based",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_GSS",
  "description" : "Conventional free gyro e.g. Level Rotor Gyro (LRG). CARE TO BE TAKEN – Tool model fails at 90 deg inclination.",
  "prefix" : "A023Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Camera Based",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_GSS_Fl",
  "description" : "Conventional free gyro e.g. Level Rotor Gyro (LRG) on a Floating Rig. CARE TO BE TAKEN – Tool model fails at 90 deg inclination.",
  "prefix" : "A023Gb",
  "tool_category" : "Gyro",
  "tool_type" : "Camera Based",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_MMS",
  "description" : "Camera Based Film Magnetic Multi-Shot with adequate length and spacing in NMDC",
  "prefix" : "A024Mb",
  "tool_category" : "Magnetic",
  "tool_type" : "Camera Based",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_MMS_Fl",
  "description" : "Camera Based Film Magnetic Multi-Shot with adequate length and spacing in NMDC on a Floating Rig",
  "prefix" : "A024Mb",
  "tool_category" : "Magnetic",
  "tool_type" : "Camera Based",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_MSS",
  "description" : "Camera Based Film Magnetic Single Shot with adequate length and spacing in NMDC",
  "prefix" : "A025Mb",
  "tool_category" : "Magnetic",
  "tool_type" : "Camera Based",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "CB_Film_MSS_Fl",
  "description" : "Camera Based Film Magnetic Single Shot with adequate length and spacing in NMDC on a Floating Rig",
  "prefix" : "A025Mb",
  "tool_category" : "Magnetic",
  "tool_type" : "Camera Based",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "BLIND",
  "description" : "Where no survey information was recorded or where the information no longer exists and there is no other supporting information to justify the use of another error model.",
  "prefix" : "A026Ua",
  "tool_category" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "BLIND_Fl",
  "description" : "Where no survey information was recorded or where the information no longer exists and there is no other supporting information to justify the use of another error model. On a Floating Rig",
  "prefix" : "A026Ua",
  "tool_category" : "Utility",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "INC-ONLY",
  "description" : "Inclination only surveys for vertical wells with inclinations less than 5 deg (e.g. Totco Teledrift and Anderdrift)",
  "prefix" : "A027Ub",
  "tool_category" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "INC-ONLY_Fl",
  "description" : "Inclination only surveys for vertical wells with inclinations less than 5 deg (e.g. Totco Teledrift and Anderdrift) on a Floating Rig",
  "prefix" : "A027Ub",
  "tool_category" : "Utility",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "INC-ONLY_PLANNED",
  "description" : "Inclination only surveys for planned vertical wells with inclinations less than 5 deg (e.g. Totco Teledrift and Anderdrift)",
  "prefix" : "A028Ub",
  "tool_category" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "INC-ONLY_PLANNED_Fl",
  "description" : "Inclination only surveys for planned vertical wells with inclinations less than 5 deg (e.g. Totco Teledrift and Anderdrift) on a Floating Rig",
  "prefix" : "A028Ub",
  "tool_category" : "Utility",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "UNKNOWN",
  "description" : "For use when survey data exists at any interval not exceeding 200ft but the origin or legacy quality of the data is unknown",
  "prefix" : "A029Ub",
  "tool_category" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "UNKNOWN_Fl",
  "description" : "For use when survey data exists at any interval not exceeding 200ft but the origin or legacy quality of the data is unknown. On a Floating Rig",
  "prefix" : "A029Ub",
  "tool_category" : "Utility",
  "rig_type" : "Floating",
  "revision" : "ISCWSA Rev5",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "ZERO-ERROR",
  "description" : "To give zero position uncertainty down to a particular depth.",
  "prefix" : "A030Ua",
  "tool_category" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD)",
  "prefix" : "B001Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM_Fl",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) on a Floating Rig",
  "prefix" : "B001Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+AX",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) with Axial Correction",
  "prefix" : "B002Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+AX_Fl",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) with Axial Correction on a Floating Rig",
  "prefix" : "B002Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+AX+SAG",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) with Axial Correction and Sag Correction",
  "prefix" : "B003Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+AX+SAG_Fl",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "B003Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+SAG",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) and Sag Correction",
  "prefix" : "B004Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+SAG_Fl",
  "description" : "MWD using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) and Sag Correction on a Floating Rig",
  "prefix" : "B004Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+SAG+MS",
  "description" : "MWD Using a High Resolution Geomagnetic Model (HRGM) with spherical harmonic degree of 720 or higher (e.g. HDGM or MVHD) with Sag Correction and Multi-Station Correction. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "B005Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+HRGM+SAG+MS_Fl",
  "description" : "MWD Using a High Resolution Geomagnetic Model (HRGM) with spherical harmonic degree of 720 or higher (e.g. HDGM or MVHD) with Sag Correction and Multi-Station Correction on a Floating Rig. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "B005Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM)",
  "prefix" : "B006Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM_Fl",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) on a Floating Rig",
  "prefix" : "B006Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM+AX",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction",
  "prefix" : "B007Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM+AX_Fl",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction on a Floating Rig",
  "prefix" : "B007Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM+AX+SAG",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction and Sag Correction",
  "prefix" : "B008Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM+AX+SAG_Fl",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "B008Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM+SAG",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Sag Correction",
  "prefix" : "B009Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "MWD+LRGM+SAG_Fl",
  "description" : "MWD using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Sag Correction on a Floating Rig",
  "prefix" : "B009Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+IFR1+AX+SAG",
  "description" : "EMS with IFR1 (IFR or Crustal Anomaly Correction) and Axial Correction and Sag Correction",
  "prefix" : "B010Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+IFR1+AX+SAG_Fl",
  "description" : "EMS with IFR1 (IFR or Crustal Anomaly Correction) and Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "B010Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+IFR1+SAG",
  "description" : "EMS with IFR1 (IFR or Crustal Anomaly Correction) and Sag Correction",
  "prefix" : "B011Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+IFR1+SAG_Fl",
  "description" : "EMS with IFR1 (IFR or Crustal Anomaly Correction) and Sag Correction on a Floating Rig",
  "prefix" : "B011Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+IFR1+SAG+MS",
  "description" : "EMS with IFR1 (IFR or Crustal Anomaly Correction) with Sag and Multi-Station Correction. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "B012Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+IFR1+SAG+MS_Fl",
  "description" : "EMS with IFR1 (IFR or Crustal Anomaly Correction) with Sag and Multi-Station Correction on a Floating Rig. CARE TO BE TAKEN WHILE PLANNING A WELL – Refer to Survey Management Specialist to ensure MS is valid.",
  "prefix" : "B012Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "MS",
  "geomagnetic_reference" : "IFR1",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM",
  "description" : "EMS using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD)",
  "prefix" : "B013Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM_Fl",
  "description" : "EMS using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) on a Floating Rig",
  "prefix" : "B013Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM+AX",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction",
  "prefix" : "B014Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM+AX_Fl",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction on a Floating Rig",
  "prefix" : "B014Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM+AX+SAG",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction and Sag Correction",
  "prefix" : "B015Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM+AX+SAG_Fl",
  "description" : "EMS using 1-Year Standard Resolution Geomagnetic Mode (e.g. BGGM up to 2018, MVSD) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "B015Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM+SAG",
  "description" : "EMS using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) with Sag Correction",
  "prefix" : "B016Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+HRGM+SAG_Fl",
  "description" : "EMS using 1-year High Resolution Geomagnetic Model with spherical harmonic degree of 720 or higher (e.g. BGGM2019+, HDGM, MVHD) with Sag Correction on a Floating Rig",
  "prefix" : "B016Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "HRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM)",
  "prefix" : "B017Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM_Fl",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) on a Floating Rig",
  "prefix" : "B017Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM+AX",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction",
  "prefix" : "B018Md",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM+AX_Fl",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction on a Floating Rig",
  "prefix" : "B018Md",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EEMS+LRGM+AX+SAG_Fl",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "B019Md",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM+AX+SAG",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Axial Correction and Sag Correction on a Floating Rig",
  "prefix" : "B019Md",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM+SAG",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Sag Correction",
  "prefix" : "B020Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "EMS+LRGM+SAG_Fl",
  "description" : "EMS using Low Resolution Geomagnetic Model (e.g. Updated less frequently than yearly, EMM, CGRF, IGRF, WMM) with Sag Correction on a Floating Rig",
  "prefix" : "B020Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "EMS",
  "rig_type" : "Floating",
  "sag_correction" : "SAG",
  "geomagnetic_reference" : "LRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "FINDS",
  "description" : "Ferranti FINDS Inertial Surveys",
  "prefix" : "B021Ga",
  "tool_category" : "Utility",
  "tool_type" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev1",
  "revision_date" : "2022-09-23",
  "custom" : false
}, {
  "short_name" : "BLIND+TREND",
  "description" : "Where no survey information was recorded but where some other information exists such as the BHA records or Bit-run summaries or some other relevant formation or drilling knowledge exists concerning the expected trends of the wellpath. May only be assigned for specific cases with a Dispensation.",
  "prefix" : "B022Ua",
  "tool_category" : "Utility",
  "tool_type" : "Utility",
  "rig_type" : "Fixed",
  "revision" : "ISCWSA Rev1",
  "revision_date" : "2022-09-23",
  "custom" : false
} ]

GET /public/api/v1/toolcodes

Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].short_name String Toolcode name
[].description String Description
[].prefix String Prefix
[].tool_category String Tool category
[].tool_type String Tool type
[].rig_type String Rig type
[].sag_correction String Sag correction
[].magnetic_correction String Magnetic correction
[].geomagnetic_reference String Geomagnetic correction
[].revision String Revision
[].revision_date String Revision date
[].custom Boolean Custom toolcode flag

Get toolcode terms

Get toolcode terms by short name.

Request

$ curl 'https://solo.cloud/public/api/v1/toolcodes/terms?short_name=MWD%252BSRGM' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/toolcodes/terms?short_name=MWD%252BSRGM HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 0799c4a811c30e4f8f0f5093b7f9dfdb
Content-Type: text/plain;charset=UTF-8

drfr    e   r   m   0.35    1.0
dsfs    e   s   -   0.00056 tmd
dstg    e   g   im  2.5e-007    tmd*tvd
xym1    i   s   d   0.1 abs(sin(inc))
xym2    a   s   d   0.1 -1.0
xym3e   i   r   d   0.3 cos(inc)*cos(azi)*max(1,sqrt(10/smd))
xym3e   a   r   d   0.3 -(cos(inc)*sin(azi)/sin(inc))*max(1,sqrt(10/smd))
xym4e   i   r   d   0.3 cos(inc)*sin(azi)*max(1,sqrt(10/smd))
xym4e   a   r   d   0.3 (cos(inc)*cos(azi)/sin(inc))*max(1,sqrt(10/smd))
sage    i   s   d   0.2 (sin(inc))^0.25
decu    a   w   d   0.16    1.0
decos   a   g   d   0.24    1.0
decoh   a   g   d   0.21    1.0
decoi   a   g   d   0.05    1.0
decr    a   r   d   0.1 1.0
dbhu    a   w   dnt 2350    1.0/(mtot*cos(dip))
dbhos   a   g   dnt 3359    1.0/(mtot*cos(dip))
dbhoh   a   g   dnt 2840    1.0/(mtot*cos(dip))
dbhoi   a   g   dnt 356 1.0/(mtot*cos(dip))
dbhr    a   r   dnt 3000    1.0/(mtot*cos(dip))
amil    a   s   nt  220 sin(inc)*sin(azm)/(mtot*cos(dip))
abxy_ti1    i   s   -   0.004   (-cos(inc))/gtot
abxy_ti1    a   s   -   0.004   (tan(dip)*cos(inc)*sin(azm))/gtot
abxy_ti2    a   s   -   0.004   ((tan((pi()/2)-inc))-tan(dip)*cos(azm))/gtot
abz i   s   -   0.004   (-sin(inc))/gtot
abz a   s   -   0.004   (tan(dip)*sin(inc)*sin(azm))/gtot
asxy_ti1    i   s   -   0.0005  (sin(inc)*cos(inc))/(2^0.5)
asxy_ti1    a   s   -   0.0005  (-(tan(dip)*sin(inc)*cos(inc)*sin(azm)))/(2^0.5)
asxy_ti2    i   s   -   0.0005  (sin(inc)*cos(inc))/2
asxy_ti2    a   s   -   0.0005  (-(tan(dip)*sin(inc)*cos(inc)*sin(azm)))/2
asxy_ti3    a   s   -   0.0005  (tan(dip)*sin(inc)*cos(azm)-cos(inc))/2
asz i   s   -   0.0005  (-sin(inc)*cos(inc))
asz a   s   -   0.0005  (tan(dip)*sin(inc)*cos(inc)*sin(azm))
mbxy_ti1    a   s   nt  70  (-(cos(inc)*sin(azm)))/(mtot*cos(dip))
mbxy_ti2    a   s   nt  70  (cos(azm))/(mtot*cos(dip))
mbz a   s   nt  70  (-sin(inc)*sin(azm))/(mtot*cos(dip))
msxy_ti1    a   s   -   0.0016  (sin(inc)*sin(azm)*(tan(dip)*cos(inc)+sin(inc)*cos(azm)))/(2^0.5)
msxy_ti2    a   s   -   0.0016  (sin(azm)*(tan(dip)*sin(inc)*cos(inc)-(cos(inc))^2*cos(azm)-cos(azm)))/2
msxy_ti3    a   s   -   0.0016  (cos(inc)*(cos(azm))^2-cos(inc)*(sin(azm))^2-tan(dip)*sin(inc)*cos(azm))/2
msz a   s   -   0.0016  (-(sin(inc)*cos(azm)+tan(dip)*cos(inc))*sin(inc)*sin(azm))
xcla    a   r   -   0.167   max(sin(abs(daz)),0.00018*smd/sin(inc))
xclh    i   r   -   0.167   max(abs(dic),0.00018*smd)

GET /public/api/v1/toolcodes/terms

Parameter Description
short_name Toolcode short name
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Create or update toolcode

Create or update toolcode

Request

$ curl 'https://solo.cloud/public/api/v1/toolcodes' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: multipart/form-data; boundary="bUap15J7JvcJCKuFx7e_bRH_dfQazqF_MET"' \
    -F 'data=@toolcode_with_all_fields.txt;type=application/octet-stream'
PUT /public/api/v1/toolcodes HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: multipart/form-data; boundary="bUap15J7JvcJCKuFx7e_bRH_dfQazqF_MET"; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: solo.cloud

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=data; filename=toolcode_with_all_fields.txt
Content-Type: application/octet-stream

#ShortName:TEST_TOOLCODE
#Prefix:A002Mc
#Description:A002Mb/ISC4: BGGM dec + sag corrections
#ToolCategory:Magnetic
#ToolType:MWD
#RigType:Fixed
#SagCorrection:SAG
#MagneticCorrection:AX
#GeomagneticReference:SRGM
#Revision:ISCWSA Rev5.1
#RevisionDate:23/09/2022
#Name   Vector  Tie-On  Unit    Value   Formula
drfr    e   r   m   0.35    1.0
dsfs    e   s   -   0.00056 tmd
dstg    e   g   im  2.5e-007    tmd*tvd
xym1    i   s   d   0.1 abs(sin(inc))
xym2    a   s   d   0.1 -1.0
xym3e   i   r   d   0.3 cos(inc)*cos(azi)*max(1,sqrt(10/smd))
xym3e   a   r   d   0.3 -(cos(inc)*sin(azi)/sin(inc))*max(1,sqrt(10/smd))
xym4e   i   r   d   0.3 cos(inc)*sin(azi)*max(1,sqrt(10/smd))
xym4e   a   r   d   0.3 (cos(inc)*cos(azi)/sin(inc))*max(1,sqrt(10/smd))
sage    i   s   d   0.08    (sin(inc))^0.25
decu    a   w   d   0.16    1.0
decos   a   g   d   0.24    1.0
decoh   a   g   d   0.21    1.0
decoi   a   g   d   0.05    1.0
decr    a   r   d   0.1 1.0
dbhu    a   w   dnt 2350    1.0/(mtot*cos(dip))
dbhos   a   g   dnt 3359    1.0/(mtot*cos(dip))
dbhoh   a   g   dnt 2840    1.0/(mtot*cos(dip))
dbhoi   a   g   dnt 356 1.0/(mtot*cos(dip))
dbhr    a   r   dnt 3000    1.0/(mtot*cos(dip))
amil    a   s   nt  220 sin(inc)*sin(azm)/(mtot*cos(dip))
abxy_ti1    i   s   -   0.004   (-cos(inc))/gtot
abxy_ti1    a   s   -   0.004   (tan(dip)*cos(inc)*sin(azm))/gtot
abxy_ti2    a   s   -   0.004   ((tan((pi()/2)-inc))-tan(dip)*cos(azm))/gtot
abz i   s   -   0.004   (-sin(inc))/gtot
abz a   s   -   0.004   (tan(dip)*sin(inc)*sin(azm))/gtot
asxy_ti1    i   s   -   0.0005  (sin(inc)*cos(inc))/(2^0.5)
asxy_ti1    a   s   -   0.0005  (-(tan(dip)*sin(inc)*cos(inc)*sin(azm)))/(2^0.5)
asxy_ti2    i   s   -   0.0005  (sin(inc)*cos(inc))/2
asxy_ti2    a   s   -   0.0005  (-(tan(dip)*sin(inc)*cos(inc)*sin(azm)))/2
asxy_ti3    a   s   -   0.0005  (tan(dip)*sin(inc)*cos(azm)-cos(inc))/2
asz i   s   -   0.0005  (-sin(inc)*cos(inc))
asz a   s   -   0.0005  (tan(dip)*sin(inc)*cos(inc)*sin(azm))
mbxy_ti1    a   s   nt  70  (-(cos(inc)*sin(azm)))/(mtot*cos(dip))
mbxy_ti2    a   s   nt  70  (cos(azm))/(mtot*cos(dip))
mbz a   s   nt  70  (-sin(inc)*sin(azm))/(mtot*cos(dip))
msxy_ti1    a   s   -   0.0016  (sin(inc)*sin(azm)*(tan(dip)*cos(inc)+sin(inc)*cos(azm)))/(2^0.5)
msxy_ti2    a   s   -   0.0016  (sin(azm)*(tan(dip)*sin(inc)*cos(inc)-(cos(inc))^2*cos(azm)-cos(azm)))/2
msxy_ti3    a   s   -   0.0016  (cos(inc)*(cos(azm))^2-cos(inc)*(sin(azm))^2-tan(dip)*sin(inc)*cos(azm))/2
msz a   s   -   0.0016  (-(sin(inc)*cos(azm)+tan(dip)*cos(inc))*sin(inc)*sin(azm))
xcla    a   r   -   0.167   max(sin(abs(daz)),0.00018*smd/sin(inc))
xclh    i   r   -   0.167   max(abs(dic),0.00018*smd)
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 324fe9f34810d863a5e1b3aad2db38ec
Content-Type: application/json

{
  "short_name" : "TEST_TOOLCODE",
  "description" : "A002Mb/ISC4: BGGM dec + sag corrections",
  "prefix" : "A002Mc",
  "tool_category" : "Magnetic",
  "tool_type" : "MWD",
  "rig_type" : "Fixed",
  "sag_correction" : "SAG",
  "magnetic_correction" : "AX",
  "geomagnetic_reference" : "SRGM",
  "revision" : "ISCWSA Rev5.1",
  "revision_date" : "2022-09-23",
  "custom" : true
}

PUT /public/api/v1/toolcodes

Part Description
data Terms data file
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
short_name String Toolcode name
description String Description
prefix String Prefix
tool_category String Tool category
tool_type String Tool type
rig_type String Rig type
sag_correction String Sag correction
magnetic_correction String Magnetic correction
geomagnetic_reference String Geomagnetic correction
revision String Revision
revision_date String Revision date
custom Boolean Custom toolcode flag

Delete toolcode

Delete toolcode by short name.

Request

$ curl 'https://solo.cloud/public/api/v1/toolcodes?short_name=MWD%25TEST_TOOLCODE' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>'
DELETE /public/api/v1/toolcodes?short_name=MWD%25TEST_TOOLCODE HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 204 No Content
X-Solo-Trace-Id: a0147bfe4f62e09a6c1e4b502bacbac3

DELETE /public/api/v1/toolcodes

Parameter Description
short_name Toolcode short name
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

25. Trajectories

Get lateral trajectory

Get lateral trajectory data by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/0d2ccafe-286e-4e40-b4c0-d58c6b8dc423/trajectory' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/0d2ccafe-286e-4e40-b4c0-d58c6b8dc423/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 8bac85f401723294835d898cba4f3816
Content-Type: application/json

{
  "content" : [ {
    "md" : {
      "val" : 0.0
    },
    "incl" : {
      "val" : 0.0
    },
    "azim" : {
      "val" : 0.0
    }
  }, {
    "md" : {
      "val" : 3280.839895013124
    },
    "incl" : {
      "val" : 0.4583662361046284
    },
    "azim" : {
      "val" : 0.0
    }
  }, {
    "md" : {
      "val" : 4921.259842519686
    },
    "incl" : {
      "val" : 84.79775367935625
    },
    "azim" : {
      "val" : 9.740282517223354
    }
  }, {
    "md" : {
      "val" : 13123.359580052496
    },
    "incl" : {
      "val" : 89.95437383553333
    },
    "azim" : {
      "val" : 9.740282517223354
    }
  } ]
}

GET /public/api/v1/wells/{uuid}/trajectory

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Trajectory points array
content[].md.val Number Measured Depth value in project units
content[].incl.val Number Inclination value (degrees)
content[].azim.val Number Azimuth value (degrees)

Extend lateral trajectory

Extend lateral trajectory (note that 'azim' can be used for a trajectory station azimuth as well as 'azi')

Request

$ curl 'https://solo.cloud/public/api/v1/wells/b4ba1dba-a310-4e58-b965-d144da91da05/trajectory' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}'
PATCH /public/api/v1/wells/b4ba1dba-a310-4e58-b965-d144da91da05/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 344

{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: b006059e42b9a6b1d42d5b7ea26b0542

PATCH /public/api/v1/wells/{uuid}/trajectory

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
md_uom String Depth measure unit of a trajectory stations related to the lateral. Accepted values: m, ft
incl_uom String Inclination measure unit of a trajectory stations related to the lateral. Accepted values: dega, rad
azi_uom String Azimuth measure unit of a trajectory stations related to the lateral. Accepted values: dega, rad
trajectory_stations Array Lateral trajectory data array
trajectory_stations[].md.val Number Depth data value
trajectory_stations[].incl.val Number Inclination data value
trajectory_stations[].azi.val Number Azimuth data value

Response body

Empty body

Replace lateral trajectory

Replace lateral trajectory (note that 'azim' can be used for a trajectory station azimuth as well as 'azi')

Request

$ curl 'https://solo.cloud/public/api/v1/wells/b4ba1dba-a310-4e58-b965-d144da91da05/trajectory' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}'
PUT /public/api/v1/wells/b4ba1dba-a310-4e58-b965-d144da91da05/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 344

{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 615adcf6b66827cb1b42c3f321084cca

PUT /public/api/v1/wells/{uuid}/trajectory

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
md_uom String Depth measure unit of a trajectory stations related to the lateral. Accepted values: m, ft
incl_uom String Inclination measure unit of a trajectory stations related to the lateral. Accepted values: dega, rad
azi_uom String Azimuth measure unit of a trajectory stations related to the lateral. Accepted values: dega, rad
trajectory_stations Array Lateral trajectory data array
trajectory_stations[].md.val Number Depth data value
trajectory_stations[].incl.val Number Inclination data value
trajectory_stations[].azi.val Number Azimuth data value

Response body

Empty body

Get typewell trajectory

Get typewell trajectory data by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/fc9e85a5-34d0-449c-aa53-f9459d421b42/trajectory' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/fc9e85a5-34d0-449c-aa53-f9459d421b42/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: cc6e1fcc782e04666a96c8692f4612cb
Content-Type: application/json

{
  "content" : [ {
    "md" : {
      "val" : 0.0
    },
    "incl" : {
      "val" : 0.0
    },
    "azim" : {
      "val" : 0.0
    }
  }, {
    "md" : {
      "val" : 3280.839895013124
    },
    "incl" : {
      "val" : 0.4583662361046284
    },
    "azim" : {
      "val" : 0.0
    }
  }, {
    "md" : {
      "val" : 4921.259842519686
    },
    "incl" : {
      "val" : 84.79775367935625
    },
    "azim" : {
      "val" : 9.740282517223354
    }
  }, {
    "md" : {
      "val" : 13123.359580052496
    },
    "incl" : {
      "val" : 89.95437383553333
    },
    "azim" : {
      "val" : 9.740282517223354
    }
  } ]
}

GET /public/api/v1/typewells/{uuid}/trajectory

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Trajectory points array
content[].md.val Number Measured Depth value in project units
content[].incl.val Number Inclination value (degrees)
content[].azim.val Number Azimuth value (degrees)

Extend typewell trajectory

Extend typewell trajectory (note that 'azim' can be used for a trajectory station azimuth as well as 'azi')

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/e90993d4-af68-4774-9099-d4111c08e099/trajectory' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}'
PATCH /public/api/v1/typewells/e90993d4-af68-4774-9099-d4111c08e099/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 344

{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 44e5788da8597b180e0702faaff79336

PATCH /public/api/v1/typewells/{uuid}/trajectory

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
md_uom String Depth measure unit of a trajectory stations related to the typewell. Accepted values: m, ft
incl_uom String Inclination measure unit of a trajectory stations related to the typewell. Accepted values: dega, rad
azi_uom String Azimuth measure unit of a trajectory stations related to the typewell. Accepted values: dega, rad
trajectory_stations Array Typewell trajectory data array
trajectory_stations[].md.val Number Depth data value
trajectory_stations[].incl.val Number Inclination data value
trajectory_stations[].azi.val Number Azimuth data value

Response body

Empty body

Replace typewell trajectory

Replace typewell trajectory (note that 'azim' can be used for a trajectory station azimuth as well as 'azi')

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/e90993d4-af68-4774-9099-d4111c08e099/trajectory' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}'
PUT /public/api/v1/typewells/e90993d4-af68-4774-9099-d4111c08e099/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 344

{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 71e83d295a2c12f873a1caae6e4d9f30

PUT /public/api/v1/typewells/{uuid}/trajectory

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
md_uom String Depth measure unit of a trajectory stations related to the typewell. Accepted values: m, ft
incl_uom String Inclination measure unit of a trajectory stations related to the typewell. Accepted values: dega, rad
azi_uom String Azimuth measure unit of a trajectory stations related to the typewell. Accepted values: dega, rad
trajectory_stations Array Typewell trajectory data array
trajectory_stations[].md.val Number Depth data value
trajectory_stations[].incl.val Number Inclination data value
trajectory_stations[].azi.val Number Azimuth data value

Response body

Empty body

Get nested well trajectory

Get nested well trajectory data by nested well UUID

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/07cb5f4b-688d-4bfa-b87f-8697843b6ab6/trajectory' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/nestedwells/07cb5f4b-688d-4bfa-b87f-8697843b6ab6/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 932e775d388cecb0d5e4b65bd1bf0e57
Content-Type: application/json

{
  "content" : [ {
    "md" : {
      "val" : 0.0
    },
    "incl" : {
      "val" : 0.0
    },
    "azim" : {
      "val" : 0.0
    }
  }, {
    "md" : {
      "val" : 3280.839895013124
    },
    "incl" : {
      "val" : 0.4583662361046284
    },
    "azim" : {
      "val" : 0.0
    }
  }, {
    "md" : {
      "val" : 4921.259842519686
    },
    "incl" : {
      "val" : 84.79775367935625
    },
    "azim" : {
      "val" : 9.740282517223354
    }
  }, {
    "md" : {
      "val" : 13123.359580052496
    },
    "incl" : {
      "val" : 89.95437383553333
    },
    "azim" : {
      "val" : 9.740282517223354
    }
  } ]
}

GET /public/api/v1/nestedwells/{uuid}/trajectory

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Trajectory points array
content[].md.val Number Measured Depth value in project units
content[].incl.val Number Inclination value (degrees)
content[].azim.val Number Azimuth value (degrees)

Extend nested well trajectory

Extend nested well trajectory (note that 'azim' can be used for a trajectory station azimuth as well as 'azi')

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/bc782046-b0b1-4c6e-af3a-aa9b806077e1/trajectory' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}'
PATCH /public/api/v1/nestedwells/bc782046-b0b1-4c6e-af3a-aa9b806077e1/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 344

{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: e08ca6a7de88e0813da4a3649bf385fe

PATCH /public/api/v1/nestedwells/{uuid}/trajectory

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
md_uom String Depth measure unit of a trajectory stations related to the nested well. Accepted values: m, ft
incl_uom String Inclination measure unit of a trajectory stations related to the nested well. Accepted values: dega, rad
azi_uom String Azimuth measure unit of a trajectory stations related to the nested well. Accepted values: dega, rad
trajectory_stations Array Nested well trajectory data array
trajectory_stations[].md.val Number Depth data value
trajectory_stations[].incl.val Number Inclination data value
trajectory_stations[].azi.val Number Azimuth data value

Response body

Empty body

Replace nested well trajectory

Replace nested well trajectory (note that 'azim' can be used for a trajectory station azimuth as well as 'azi')

Request

$ curl 'https://solo.cloud/public/api/v1/nestedwells/f2a81550-9383-4567-9664-a0950bd17c18/trajectory' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}'
PUT /public/api/v1/nestedwells/f2a81550-9383-4567-9664-a0950bd17c18/trajectory HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 344

{
  "md_uom" : "m",
  "incl_uom" : "dega",
  "azi_uom" : "rad",
  "trajectory_stations" : [ {
    "md" : {
      "val" : 1389
    },
    "incl" : {
      "val" : 1.1
    },
    "azi" : {
      "val" : 1.63
    }
  }, {
    "md" : {
      "val" : 1489
    },
    "incl" : {
      "val" : 2.1
    },
    "azi" : {
      "val" : 1.43
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f8bae5b7a492eba80b2d5dda83b30b0c

PUT /public/api/v1/nestedwells/{uuid}/trajectory

Path parameter Description
uuid Nested well UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
md_uom String Depth measure unit of a trajectory stations related to the nested well. Accepted values: m, ft
incl_uom String Inclination measure unit of a trajectory stations related to the nested well. Accepted values: dega, rad
azi_uom String Azimuth measure unit of a trajectory stations related to the nested well. Accepted values: dega, rad
trajectory_stations Array Nested well trajectory data array
trajectory_stations[].md.val Number Depth data value
trajectory_stations[].incl.val Number Inclination data value
trajectory_stations[].azi.val Number Azimuth data value

Response body

Empty body

Get multiple trajectories

Get multiple trajectories by their UUIDs

Request

$ curl 'https://solo.cloud/public/api/v1/trajectories' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "wells" : [ "0d2ccafe-286e-4e40-b4c0-d58c6b8dc423", "0d2d959d-8a26-4aa4-9ccd-afd23550398c" ],
  "typewells" : [ "fc9e85a5-34d0-449c-aa53-f9459d421b42" ],
  "nestedwells" : [ "07cb5f4b-688d-4bfa-b87f-8697843b6ab6" ]
}'
POST /public/api/v1/trajectories HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 220

{
  "wells" : [ "0d2ccafe-286e-4e40-b4c0-d58c6b8dc423", "0d2d959d-8a26-4aa4-9ccd-afd23550398c" ],
  "typewells" : [ "fc9e85a5-34d0-449c-aa53-f9459d421b42" ],
  "nestedwells" : [ "07cb5f4b-688d-4bfa-b87f-8697843b6ab6" ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 88466415410f87d158345edc634f6a3f
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "0d2d959d-8a26-4aa4-9ccd-afd23550398c",
    "trajectory" : [ {
      "md" : {
        "val" : 0.0
      },
      "incl" : {
        "val" : 0.0
      },
      "azim" : {
        "val" : 71.54300000000002
      }
    }, {
      "md" : {
        "val" : 61.19866000000002
      },
      "incl" : {
        "val" : 0.35
      },
      "azim" : {
        "val" : 176.083
      }
    }, {
      "md" : {
        "val" : 100.42002000000001
      },
      "incl" : {
        "val" : 0.25
      },
      "azim" : {
        "val" : 259.043
      }
    }, {
      "md" : {
        "val" : 124.93996000000003
      },
      "incl" : {
        "val" : 0.28
      },
      "azim" : {
        "val" : 227.59299999999993
      }
    }, {
      "md" : {
        "val" : 174.66991
      },
      "incl" : {
        "val" : 1.13
      },
      "azim" : {
        "val" : 154.423
      }
    }, {
      "md" : {
        "val" : 201.38989
      },
      "incl" : {
        "val" : 1.26
      },
      "azim" : {
        "val" : 140.38299999999998
      }
    }, {
      "md" : {
        "val" : 225.35998000000004
      },
      "incl" : {
        "val" : 1.2999999999999998
      },
      "azim" : {
        "val" : 153.71299999999997
      }
    }, {
      "md" : {
        "val" : 3280.839895013124
      },
      "incl" : {
        "val" : 1.33
      },
      "azim" : {
        "val" : 149.25300000000001
      }
    } ]
  }, {
    "uuid" : "fc9e85a5-34d0-449c-aa53-f9459d421b42",
    "trajectory" : [ {
      "md" : {
        "val" : 0.0
      },
      "incl" : {
        "val" : 0.0
      },
      "azim" : {
        "val" : 0.0
      }
    }, {
      "md" : {
        "val" : 3280.839895013124
      },
      "incl" : {
        "val" : 0.4583662361046284
      },
      "azim" : {
        "val" : 0.0
      }
    }, {
      "md" : {
        "val" : 4921.259842519686
      },
      "incl" : {
        "val" : 84.79775367935625
      },
      "azim" : {
        "val" : 9.740282517223354
      }
    }, {
      "md" : {
        "val" : 13123.359580052496
      },
      "incl" : {
        "val" : 89.95437383553333
      },
      "azim" : {
        "val" : 9.740282517223354
      }
    } ]
  }, {
    "uuid" : "07cb5f4b-688d-4bfa-b87f-8697843b6ab6",
    "trajectory" : [ {
      "md" : {
        "val" : 0.0
      },
      "incl" : {
        "val" : 0.0
      },
      "azim" : {
        "val" : 0.0
      }
    }, {
      "md" : {
        "val" : 3280.839895013124
      },
      "incl" : {
        "val" : 0.4583662361046284
      },
      "azim" : {
        "val" : 0.0
      }
    }, {
      "md" : {
        "val" : 4921.259842519686
      },
      "incl" : {
        "val" : 84.79775367935625
      },
      "azim" : {
        "val" : 9.740282517223354
      }
    }, {
      "md" : {
        "val" : 13123.359580052496
      },
      "incl" : {
        "val" : 89.95437383553333
      },
      "azim" : {
        "val" : 9.740282517223354
      }
    } ]
  }, {
    "uuid" : "0d2ccafe-286e-4e40-b4c0-d58c6b8dc423",
    "trajectory" : [ {
      "md" : {
        "val" : 0.0
      },
      "incl" : {
        "val" : 0.0
      },
      "azim" : {
        "val" : 0.0
      }
    }, {
      "md" : {
        "val" : 3280.839895013124
      },
      "incl" : {
        "val" : 0.4583662361046284
      },
      "azim" : {
        "val" : 0.0
      }
    }, {
      "md" : {
        "val" : 4921.259842519686
      },
      "incl" : {
        "val" : 84.79775367935625
      },
      "azim" : {
        "val" : 9.740282517223354
      }
    }, {
      "md" : {
        "val" : 13123.359580052496
      },
      "incl" : {
        "val" : 89.95437383553333
      },
      "azim" : {
        "val" : 9.740282517223354
      }
    } ]
  } ]
}

POST /public/api/v1/trajectories

Header Description
Authorization OAuth2 authorization header
Body field Type Description
wells Array Wells UUIDs to download trajectories for
typewells Array Typewells UUIDs to download trajectories for
nestedwells Array Nestedwells UUIDs to download trajectories for

Response body

Path Type Description
content Array List of trajectories
content[].uuid String Well\typewell\nestedwell UUID
content[].trajectory Array Trajectory points for the well\typewell\nestedwell
content[].trajectory[].md.val Number Measured depth value in project units
content[].trajectory[].incl.val Number Inclination value (degrees)
content[].trajectory[].azim.val Number Azimuth value (degrees)

26. Public data

Get nearby wells

Get nearby wells

Request

$ curl 'https://solo.cloud/public/api/v1/publicdata/nearbywells' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "epsg_crs_code" : 2869,
  "latitude" : 29.7604,
  "longitude" : -95.3698,
  "radius_miles" : 5.0
}'
POST /public/api/v1/publicdata/nearbywells HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 102

{
  "epsg_crs_code" : 2869,
  "latitude" : 29.7604,
  "longitude" : -95.3698,
  "radius_miles" : 5.0
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4f9d0a5d7347f962474f9460466f3bfa
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "489cefd5-dec4-4b7d-92cb-6555d1c95008",
    "name" : "Lateral",
    "api" : "string",
    "operator" : "string",
    "latitude" : 6.0000145107,
    "longitude" : 9.9999919005,
    "latitude_wgs84" : 30.9807176184,
    "longitude_wgs84" : -115.9834603823,
    "project_uuid" : "d664efa0-0f80-4711-91a5-39824335f0e8",
    "measure_unit" : "FOOT",
    "elevation" : {
      "val" : 22.96587926509186
    },
    "tvd" : {
      "val" : 10000.0
    },
    "convergence" : {
      "val" : 0.0
    },
    "is_true_north_azimuth" : false,
    "state" : "Baja California",
    "county" : "Mexico",
    "type" : "WELL"
  } ]
}

POST /public/api/v1/publicdata/nearbywells

Header Description
Authorization OAuth2 authorization header
Body field Type Description
epsg_mnemonic String EPSG mnemonic (NAD27 or NAD83). Must use 'epsg_mnemonic' or 'epsg_crs_code' (not both together)
epsg_crs_code Number EPSG CRS code
latitude Number Latitude of the center of the search circle (degrees)
longitude Number Longitude of the center of the search circle (degrees)
radius_miles Number Search radius in miles

Response body

Path Type Description
content Array List of wells
content[].uuid String Well UUID
content[].name String Well name
content[].api String Well API
content[].operator String Well operator
content[].latitude Number Well latitude (degrees)
content[].longitude Number Well longitude (degrees)
content[].latitude_wgs84 Number Well latitude in WGS84 (degrees)
content[].longitude_wgs84 Number Well longitude in WGS84 (degrees)
content[].project_uuid String Project UUID
content[].measure_unit String Project measure unit
content[].elevation.val Number Well elevation value (project units)
content[].tvd.val Number Well final TVD value (project units)
content[].convergence.val Number Convergence value
content[].is_true_north_azimuth Boolean Is azimuth true north flag
content[].state String Well location state
content[].county String Well location county
content[].type String Well type (WELL\TYPEWELL\NESTEDWELL)

27. Image logs

Create image log by lateral

Create image log by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/2c6ff5b6-fe5f-4fc1-a8b3-b2e181c2a2d8/imagelogs' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Image log name"
}'
POST /public/api/v1/wells/2c6ff5b6-fe5f-4fc1-a8b3-b2e181c2a2d8/imagelogs HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 31

{
  "name" : "Image log name"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: da67062df43b76de25da29fcf5ff0d26
Content-Type: application/json

{
  "uuid" : "3a74ca77-8e8a-4c7c-9cfe-993d3101f3db"
}

POST /public/api/v1/wells/{uuid}/imagelogs

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Image log name

Response body

Path Type Description
uuid String Created image log UUID

Get image logs by lateral

Get a list of image logs by lateral UUID with pagination. Image logs that do not contain data will not be included in the response

Request

$ curl 'https://solo.cloud/public/api/v1/wells/860a2761-d2a5-428b-bac9-8bd2612c5de2/imagelogs?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/860a2761-d2a5-428b-bac9-8bd2612c5de2/imagelogs?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 798c7372163ea444c26219f1a867d2df
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "ce65b41f-ceb1-4be1-abdd-ee34625c052b",
    "name" : "Acoustic Image"
  }, {
    "uuid" : "8bccbe1c-67bf-4508-a6ed-63ecb78192f2",
    "name" : "Resistivity Image",
    "is_data_content_outdated" : false,
    "data_content" : [ {
      "order_index" : 0,
      "log_uid" : "RES_UID0",
      "log_name" : "RES_NAME0",
      "sector" : "Up",
      "unit" : "OHMM"
    }, {
      "order_index" : 1,
      "log_uid" : "RES_UID1",
      "log_name" : "RES_NAME1",
      "sector" : "Down",
      "unit" : "OHMM"
    } ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 2,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/imagelogs

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Image log UUID
content[].name String Image log name
content[].is_data_content_outdated Boolean Flag indicating whether image log data content may be outdated
content[].data_content Array List of logs that compose image log data content
content[].data_content[].order_index Number Order index of the log inside image log data content
content[].data_content[].log_uid String UID of the log used as a source for image log data content
content[].data_content[].log_name String Name of the log used as a source for image log data content
content[].data_content[].sector String Sector of the log used as a source for image log data content
content[].data_content[].unit String Unit of the log used as a source for image log data content

Get image log data

Get image log data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/imagelogs/f81e4089-27d6-4493-ad1c-7dbf66be7eb7/data' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/imagelogs/f81e4089-27d6-4493-ad1c-7dbf66be7eb7/data HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 50e69d50880adcf89f9515580dcf1506
Content-Type: application/json

{
  "log_points" : [ {
    "channels" : [ {
      "data" : [ {
        "val" : -83.6675
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 68.125
      }, {
        "val" : 68.125
      }, {
        "val" : 75.144
      }, {
        "val" : 75.144
      }, {
        "val" : 73.038
      }, {
        "val" : 65.318
      } ],
      "description" : "",
      "mnemonic" : ""
    }, {
      "data" : [ {
        "val" : -83.6675
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 68.125
      }, {
        "val" : 68.125
      }, {
        "val" : 75.144
      }, {
        "val" : 75.144
      }, {
        "val" : 73.038
      }, {
        "val" : 65.318
      } ],
      "description" : "",
      "mnemonic" : ""
    }, {
      "data" : [ {
        "val" : -83.6675
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 68.125
      }, {
        "val" : 68.125
      }, {
        "val" : 75.144
      }, {
        "val" : 75.144
      }, {
        "val" : 73.038
      }, {
        "val" : 65.318
      } ],
      "description" : "",
      "mnemonic" : ""
    }, {
      "data" : [ {
        "val" : -83.6675
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 61.808
      }, {
        "val" : 68.125
      }, {
        "val" : 68.125
      }, {
        "val" : 75.144
      }, {
        "val" : 75.144
      }, {
        "val" : 73.038
      }, {
        "val" : 65.318
      } ],
      "description" : "",
      "mnemonic" : ""
    } ],
    "md" : [ {
      "val" : 2478.4999999999995
    }, {
      "val" : 2480.4999999999995
    }, {
      "val" : 2480.9999999999995
    }, {
      "val" : 2481.4999999999995
    }, {
      "val" : 2481.9999999999995
    }, {
      "val" : 2482.4999999999995
    }, {
      "val" : 2482.9999999999995
    }, {
      "val" : 2483.4999999999995
    }, {
      "val" : 2483.9999999999995
    }, {
      "val" : 2484.4999999999995
    } ]
  } ]
}

GET /public/api/v1/imagelogs/{uuid}/data

Path parameter Description
uuid Image log UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
log_points Array Image log points array
log_points[].md Array Measured depth values array
log_points[].md[].val Number Measured depth value in project units
log_points[].channels Array Image log point data channels array
log_points[].channels[].mnemonic String Data channel mnemonic
log_points[].channels[].description String Data channel description
log_points[].channels[].data Array Data channel values array
log_points[].channels[].data[].val Number Data value

Upload\replace image log data

Upload\replace image log data by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/imagelogs/b8f17097-1788-474a-a5db-884a5d938b2a/data' -i -X PUT \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "log_points" : [ {
    "md" : [ {
      "val" : 100.0
    }, {
      "val" : 101.0
    } ],
    "channels" : [ {
      "mnemonic" : "GR",
      "description" : "Gamma Ray",
      "data" : [ {
        "val" : 45.0
      }, {
        "val" : 46.0
      } ]
    }, {
      "mnemonic" : "RES",
      "description" : "Resistivity",
      "data" : [ {
        "val" : 12.0
      }, {
        "val" : 13.0
      } ]
    } ]
  } ]
}'
PUT /public/api/v1/imagelogs/b8f17097-1788-474a-a5db-884a5d938b2a/data HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 428

{
  "log_points" : [ {
    "md" : [ {
      "val" : 100.0
    }, {
      "val" : 101.0
    } ],
    "channels" : [ {
      "mnemonic" : "GR",
      "description" : "Gamma Ray",
      "data" : [ {
        "val" : 45.0
      }, {
        "val" : 46.0
      } ]
    }, {
      "mnemonic" : "RES",
      "description" : "Resistivity",
      "data" : [ {
        "val" : 12.0
      }, {
        "val" : 13.0
      } ]
    } ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 7f073b27b1c81ea580e8a808d863432a

PUT /public/api/v1/imagelogs/{uuid}/data

Path parameter Description
uuid Image log UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
log_points Array Image log points array
log_points[].md Array Measured depth values array
log_points[].md[].val Number Measured depth value in project units
log_points[].channels Array Image log point data channels array
log_points[].channels[].mnemonic String Data channel mnemonic
log_points[].channels[].description String Data channel description
log_points[].channels[].data Array Data channel values array
log_points[].channels[].data[].val Number Data value

Response body

Empty body

Delete image log

Delete image log by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/imagelogs/0a1720c9-433d-431f-9959-6b379b8f447f' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>'
DELETE /public/api/v1/imagelogs/0a1720c9-433d-431f-9959-6b379b8f447f HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 319d47564798c18997606167abc1788a

DELETE /public/api/v1/imagelogs/{uuid}

Path parameter Description
uuid Image log UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

28. Folders

Create lateral folder

Create lateral folder

Request

$ curl 'https://solo.cloud/public/api/v1/wells/24febbc6-d1ab-487e-9660-c3f36926f812/folders' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "New lateral nested folder",
  "parent_folder" : "db9d041c-ba1e-49b5-8e96-08064f7f3e98"
}'
POST /public/api/v1/wells/24febbc6-d1ab-487e-9660-c3f36926f812/folders HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 102

{
  "name" : "New lateral nested folder",
  "parent_folder" : "db9d041c-ba1e-49b5-8e96-08064f7f3e98"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 4ec3f42941474a1df87779cf8faef174
Content-Type: application/json

{
  "uuid" : "bdf10c0c-c783-46ec-89c9-d8f1c424656f"
}

POST /public/api/v1/wells/{uuid}/folders

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Folder name
parent_folder String Parent folder UUID (null for root)

Response body

Path Type Description
uuid String Created folder UUID

Create typewell folder

Create typewell folder

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/75b70073-a0f0-4f87-ad5c-f6f416bcb1a1/folders' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "New typewell root folder"
}'
POST /public/api/v1/typewells/75b70073-a0f0-4f87-ad5c-f6f416bcb1a1/folders HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 41

{
  "name" : "New typewell root folder"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2ab0929ce762664955d5310bbb6245a6
Content-Type: application/json

{
  "uuid" : "76e3295c-20a7-4a84-aab3-c6f3e48f8ba9"
}

POST /public/api/v1/typewells/{uuid}/folders

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Folder name
parent_folder String Parent folder UUID (null for root)

Response body

Path Type Description
uuid String Created folder UUID

Get folders by lateral

Get a list of folders by lateral UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/24febbc6-d1ab-487e-9660-c3f36926f812/folders?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/24febbc6-d1ab-487e-9660-c3f36926f812/folders?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 3f6ff53b5e90d4fc051a80e0011adef9
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "e5b39c68-ac80-4ce2-b7a8-3f1f7bdcbeb9",
    "name" : "Lateral folder"
  }, {
    "uuid" : "c611edf0-ec36-4f6d-bd72-65c4eedc13b5",
    "name" : "Nested folder",
    "relative_path" : [ "e5b39c68-ac80-4ce2-b7a8-3f1f7bdcbeb9" ]
  }, {
    "uuid" : "db9d041c-ba1e-49b5-8e96-08064f7f3e98",
    "name" : "Deeply nested folder",
    "relative_path" : [ "e5b39c68-ac80-4ce2-b7a8-3f1f7bdcbeb9", "c611edf0-ec36-4f6d-bd72-65c4eedc13b5" ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 3,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/folders

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Folder UUID
content[].name String Folder name
content[].relative_path Array Relative path to the folder

Get folders by typewell

Get a list of folders by typewell UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/75b70073-a0f0-4f87-ad5c-f6f416bcb1a1/folders?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/75b70073-a0f0-4f87-ad5c-f6f416bcb1a1/folders?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 875c9c2eeeebd0c120ed6c1848d43e0e
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "a57bc6cb-21a4-49ca-a327-87820d278d39",
    "name" : "Typewell folder"
  }, {
    "uuid" : "55c1f66a-186b-48a8-9721-a5b7304dbaec",
    "name" : "Typewell nested folder",
    "relative_path" : [ "a57bc6cb-21a4-49ca-a327-87820d278d39" ]
  }, {
    "uuid" : "f0fea28d-0d3a-41e4-a7b9-ebf63975d0fe",
    "name" : "Typewell deeply nested folder",
    "relative_path" : [ "a57bc6cb-21a4-49ca-a327-87820d278d39", "55c1f66a-186b-48a8-9721-a5b7304dbaec" ]
  }, {
    "uuid" : "76e3295c-20a7-4a84-aab3-c6f3e48f8ba9",
    "name" : "New typewell root folder"
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 4,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/folders

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Folder UUID
content[].name String Folder name
content[].relative_path Array Relative path to the folder

29. Completions

Create completion by lateral

Create completion by lateral UUID

Request

$ curl 'https://solo.cloud/public/api/v1/wells/e12e8225-5647-4dce-addd-3dded3bf077f/completions' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Public lateral completion",
  "stages" : [ {
    "name" : "Public lateral stage",
    "top_md" : {
      "val" : 200.0
    },
    "base_md" : {
      "val" : 225.5
    }
  } ]
}'
POST /public/api/v1/wells/e12e8225-5647-4dce-addd-3dded3bf077f/completions HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 191

{
  "name" : "Public lateral completion",
  "stages" : [ {
    "name" : "Public lateral stage",
    "top_md" : {
      "val" : 200.0
    },
    "base_md" : {
      "val" : 225.5
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 43278f1757cf193b26dd5338199a6671
Content-Type: application/json

{
  "uuid" : "ca058f8b-54d1-4747-8535-c32c528f89d0"
}

POST /public/api/v1/wells/{uuid}/completions

Path parameter Description
uuid Lateral UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Completion name
stages Array Completion stages
stages[].name String Stage name
stages[].top_md.val Number Stage top MD value in project units
stages[].base_md.val Number Stage base MD value in project units
stages[].properties String Stage properties JSON string

Response body

Path Type Description
uuid String Created completion UUID

Create completion by typewell

Create completion by typewell UUID

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/2f1fbb17-a138-45fe-b90f-44ec70025eba/completions' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Public typewell completion",
  "stages" : [ {
    "name" : "Public typewell stage",
    "top_md" : {
      "val" : 300.0
    },
    "base_md" : {
      "val" : 330.0
    }
  } ]
}'
POST /public/api/v1/typewells/2f1fbb17-a138-45fe-b90f-44ec70025eba/completions HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 193

{
  "name" : "Public typewell completion",
  "stages" : [ {
    "name" : "Public typewell stage",
    "top_md" : {
      "val" : 300.0
    },
    "base_md" : {
      "val" : 330.0
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2ab91befe2a21f45cbbd5e064db2d6a4
Content-Type: application/json

{
  "uuid" : "2fd67592-777f-4574-83f4-1c7ed85a9a71"
}

POST /public/api/v1/typewells/{uuid}/completions

Path parameter Description
uuid Typewell UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Completion name
stages Array Completion stages
stages[].name String Stage name
stages[].top_md.val Number Stage top MD value in project units
stages[].base_md.val Number Stage base MD value in project units
stages[].properties String Stage properties JSON string

Response body

Path Type Description
uuid String Created completion UUID

Create completion attribute

Create completion stage attribute by completion UUID

Request

$ curl 'https://solo.cloud/public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/attributes' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Treating pressure"
}'
POST /public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/attributes HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 34

{
  "name" : "Treating pressure"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 86cc3ac848c3d316fa62595a56f0dbdf
Content-Type: application/json

{
  "uuid" : "1a379fc6-fd9e-4e9f-8e5e-b6739ebc65c8"
}

POST /public/api/v1/completions/{uuid}/attributes

Path parameter Description
uuid Completion UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String Attribute name
properties String Attribute properties JSON string

Response body

Path Type Description
uuid String Created attribute UUID

Create completion stages

Create completion stages by completion UUID

Request

$ curl 'https://solo.cloud/public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/stages' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "stages" : [ {
    "name" : "Public created stage",
    "top_md" : {
      "val" : 400.0
    },
    "base_md" : {
      "val" : 425.25
    },
    "attribute_values" : [ {
      "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
      "value" : {
        "val" : 12.25
      }
    } ]
  } ]
}'
POST /public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/stages HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 303

{
  "stages" : [ {
    "name" : "Public created stage",
    "top_md" : {
      "val" : 400.0
    },
    "base_md" : {
      "val" : 425.25
    },
    "attribute_values" : [ {
      "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
      "value" : {
        "val" : 12.25
      }
    } ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 68eb76cf976a8fba37b870ebb6c0d1a7
Content-Type: application/json

{
  "uuids" : [ "2b4c5688-a72c-44f9-9d76-6161150d4be2" ]
}

POST /public/api/v1/completions/{uuid}/stages

Path parameter Description
uuid Completion UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
stages Array Completion stages
stages[].name String Stage name
stages[].top_md.val Number Stage top MD value in project units
stages[].base_md.val Number Stage base MD value in project units
stages[].properties String Stage properties JSON string
stages[].attribute_values Array Stage attribute values
stages[].attribute_values[].attribute_uuid String Attribute UUID
stages[].attribute_values[].value.val Number Attribute value

Response body

Path Type Description
uuids Array Created stage UUIDs

Get completions by project and name

Get a list of completions by project UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/projects/b74e620e-375f-49d3-827f-aec1584f3590/completions?name=Lateral%20completion&offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/b74e620e-375f-49d3-827f-aec1584f3590/completions?name=Lateral%20completion&offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 98d066fa285133d6dc051842127bf067
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "faffb0f4-9576-463c-b5f5-246123154e97",
    "name" : "Lateral completion",
    "parent_well" : {
      "uuid" : "5507cea3-caf7-48fa-aa03-cce252f4027a",
      "name" : "Completion lateral",
      "type" : "WELL"
    },
    "attributes" : [ {
      "uuid" : "1a379fc6-fd9e-4e9f-8e5e-b6739ebc65c8",
      "name" : "Treating pressure",
      "type" : "FLOAT"
    }, {
      "uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
      "name" : "Proppant concentration",
      "type" : "FLOAT"
    } ],
    "stages" : [ {
      "uuid" : "2b4c5688-a72c-44f9-9d76-6161150d4be2",
      "name" : "Public created stage",
      "stage" : 1,
      "top_md" : {
        "val" : 400.0
      },
      "base_md" : {
        "val" : 425.25
      },
      "length" : {
        "val" : 25.25
      },
      "attribute_values" : [ {
        "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
        "value" : {
          "val" : 12.25
        }
      } ]
    }, {
      "uuid" : "c805fc89-8fca-4042-9322-24228ee6b721",
      "name" : "Second stage",
      "stage" : 2,
      "top_md" : {
        "val" : 130.0
      },
      "base_md" : {
        "val" : 155.25
      },
      "length" : {
        "val" : 25.25
      },
      "attribute_values" : [ {
        "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
        "value" : {
          "val" : 9.75
        }
      } ]
    }, {
      "uuid" : "6c561379-8925-4cdd-977c-ce6a22343ced",
      "name" : "First stage",
      "stage" : 3,
      "top_md" : {
        "val" : 100.0
      },
      "base_md" : {
        "val" : 125.5
      },
      "length" : {
        "val" : 25.5
      },
      "attribute_values" : [ {
        "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
        "value" : {
          "val" : 8.5
        }
      } ]
    } ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/projects/{uuid}/completions

Path parameter Description
uuid Project UUID
Parameter Description
name Filter completions by the 'name' field
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Completion UUID
content[].name String Completion name
content[].attributes Array Completion stage attributes
content[].attributes[].uuid String Attribute UUID
content[].attributes[].name String Attribute name
content[].attributes[].type String Attribute type
content[].stages Array Completion stages
content[].stages[].uuid String Stage UUID
content[].stages[].name String Stage name
content[].stages[].stage Number Stage number
content[].stages[].top_md.val Number Stage top MD value in project units
content[].stages[].base_md.val Number Stage base MD value in project units
content[].stages[].length.val Number Stage length in project units
content[].stages[].attribute_values Array Stage attribute values
content[].stages[].attribute_values[].attribute_uuid String Attribute UUID
content[].stages[].attribute_values[].value.val Number Attribute value
content[].parent_well Object Parent well metadata
content[].parent_well.uuid String Parent well UUID
content[].parent_well.name String Parent well name
content[].parent_well.type String Parent well public type

Get completions by lateral

Get a list of completions by lateral UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/wells/5507cea3-caf7-48fa-aa03-cce252f4027a/completions?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/wells/5507cea3-caf7-48fa-aa03-cce252f4027a/completions?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 428c6a8adacad617b0d903c93ed04dc3
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "faffb0f4-9576-463c-b5f5-246123154e97",
    "name" : "Lateral completion",
    "attributes" : [ {
      "uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
      "name" : "Proppant concentration",
      "type" : "FLOAT"
    } ],
    "stages" : [ {
      "uuid" : "c805fc89-8fca-4042-9322-24228ee6b721",
      "name" : "Second stage",
      "stage" : 1,
      "top_md" : {
        "val" : 130.0
      },
      "base_md" : {
        "val" : 155.25
      },
      "length" : {
        "val" : 25.25
      },
      "attribute_values" : [ {
        "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
        "value" : {
          "val" : 9.75
        }
      } ]
    }, {
      "uuid" : "6c561379-8925-4cdd-977c-ce6a22343ced",
      "name" : "First stage",
      "stage" : 2,
      "top_md" : {
        "val" : 100.0
      },
      "base_md" : {
        "val" : 125.5
      },
      "length" : {
        "val" : 25.5
      },
      "attribute_values" : [ {
        "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
        "value" : {
          "val" : 8.5
        }
      } ]
    } ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/wells/{uuid}/completions

Path parameter Description
uuid Lateral UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Completion UUID
content[].name String Completion name
content[].attributes Array Completion stage attributes
content[].attributes[].uuid String Attribute UUID
content[].attributes[].name String Attribute name
content[].attributes[].type String Attribute type
content[].stages Array Completion stages
content[].stages[].uuid String Stage UUID
content[].stages[].name String Stage name
content[].stages[].stage Number Stage number
content[].stages[].top_md.val Number Stage top MD value in project units
content[].stages[].base_md.val Number Stage base MD value in project units
content[].stages[].length.val Number Stage length in project units
content[].stages[].attribute_values Array Stage attribute values
content[].stages[].attribute_values[].attribute_uuid String Attribute UUID
content[].stages[].attribute_values[].value.val Number Attribute value

Get completions by typewell

Get a list of completions by typewell UUID with pagination

Request

$ curl 'https://solo.cloud/public/api/v1/typewells/c054f449-ecc1-4c2f-896a-b2cb906e1707/completions?offset=0&limit=10' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/typewells/c054f449-ecc1-4c2f-896a-b2cb906e1707/completions?offset=0&limit=10 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c1eb3773fd973db07c7401f5f3f39b7a
Content-Type: application/json

{
  "content" : [ {
    "uuid" : "abba4154-baa2-401a-a3b8-90dc4b0c1c93",
    "name" : "Typewell completion",
    "attributes" : [ {
      "uuid" : "3ea77011-fb1d-4e78-8687-1b7c7be34038",
      "name" : "Proppant concentration",
      "type" : "FLOAT"
    } ],
    "stages" : [ {
      "uuid" : "df39c53b-65c8-489f-80e7-eb0f51be52b7",
      "name" : "Second stage",
      "stage" : 1,
      "top_md" : {
        "val" : 130.0
      },
      "base_md" : {
        "val" : 155.25
      },
      "length" : {
        "val" : 25.25
      },
      "attribute_values" : [ {
        "attribute_uuid" : "3ea77011-fb1d-4e78-8687-1b7c7be34038",
        "value" : {
          "val" : 9.75
        }
      } ]
    }, {
      "uuid" : "399294d5-2acc-4be5-be1a-0f3997534060",
      "name" : "First stage",
      "stage" : 2,
      "top_md" : {
        "val" : 100.0
      },
      "base_md" : {
        "val" : 125.5
      },
      "length" : {
        "val" : 25.5
      },
      "attribute_values" : [ {
        "attribute_uuid" : "3ea77011-fb1d-4e78-8687-1b7c7be34038",
        "value" : {
          "val" : 8.5
        }
      } ]
    } ]
  } ],
  "offset" : 0,
  "limit" : 10,
  "total" : 1,
  "first" : true,
  "last" : true
}

GET /public/api/v1/typewells/{uuid}/completions

Path parameter Description
uuid Typewell UUID
Parameter Description
offset Index of the first record to return by a request from the list of all records
limit Maximum number of records to return by a request from the list of all records, starting with 'offset'
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
content Array Content array
offset Number Index of the first record returned by a request from the list of all records
limit Number Maximum number of records returned by a request from the list of all records, starting with 'offset'
total Number Total number of records
first Boolean true if the current records range is the first, otherwise – false
last Boolean true if the current records range is the last, otherwise – false
content[].uuid String Completion UUID
content[].name String Completion name
content[].attributes Array Completion stage attributes
content[].attributes[].uuid String Attribute UUID
content[].attributes[].name String Attribute name
content[].attributes[].type String Attribute type
content[].stages Array Completion stages
content[].stages[].uuid String Stage UUID
content[].stages[].name String Stage name
content[].stages[].stage Number Stage number
content[].stages[].top_md.val Number Stage top MD value in project units
content[].stages[].base_md.val Number Stage base MD value in project units
content[].stages[].length.val Number Stage length in project units
content[].stages[].attribute_values Array Stage attribute values
content[].stages[].attribute_values[].attribute_uuid String Attribute UUID
content[].stages[].attribute_values[].value.val Number Attribute value

Update completion

Update completion by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated lateral completion"
}'
PATCH /public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 43

{
  "name" : "Updated lateral completion"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 73e613cf9aed802f8161e1c462af58ec

PATCH /public/api/v1/completions/{uuid}

Path parameter Description
uuid Completion UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String New completion name

Response body

Empty body

Update completion attribute

Update completion attribute by their UUIDs

Request

$ curl 'https://solo.cloud/public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/attributes/e73f875a-2f92-42a8-b7b5-94f720757523' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated proppant concentration"
}'
PATCH /public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/attributes/e73f875a-2f92-42a8-b7b5-94f720757523 HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 47

{
  "name" : "Updated proppant concentration"
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 103c16ca29eb608a49ef248df32aa3d3

PATCH /public/api/v1/completions/{completionUuid}/attributes/{attributeUuid}

Path parameter Description
completionUuid Completion UUID
attributeUuid Attribute UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String New attribute name

Response body

Empty body

Update completion stage

Update completion stage by stage UUID

Request

$ curl 'https://solo.cloud/public/api/v1/stages/6c561379-8925-4cdd-977c-ce6a22343ced' -i -X PATCH \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "name" : "Updated first stage",
  "top_md" : {
    "val" : 105.0
  },
  "base_md" : {
    "val" : 129.5
  },
  "attribute_values" : [ {
    "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
    "value" : {
      "val" : 10.5
    }
  } ]
}'
PATCH /public/api/v1/stages/6c561379-8925-4cdd-977c-ce6a22343ced HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 251

{
  "name" : "Updated first stage",
  "top_md" : {
    "val" : 105.0
  },
  "base_md" : {
    "val" : 129.5
  },
  "attribute_values" : [ {
    "attribute_uuid" : "e73f875a-2f92-42a8-b7b5-94f720757523",
    "value" : {
      "val" : 10.5
    }
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: c04223a583ea6530438ca61d36394b97

PATCH /public/api/v1/stages/{stageUuid}

Path parameter Description
stageUuid Stage UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
name String New stage name
top_md.val Number New stage top MD value in project units
base_md.val Number New stage base MD value in project units
attribute_values Array New stage attribute values
attribute_values[].attribute_uuid String Attribute UUID
attribute_values[].value.val Number New attribute value

Response body

Empty body

Delete completion

Delete completion by UUID

Request

$ curl 'https://solo.cloud/public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>'
DELETE /public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 88c4a78929ee6206f567444091b4fc9f

DELETE /public/api/v1/completions/{uuid}

Path parameter Description
uuid Completion UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete completion attribute

Delete completion attribute by their UUIDs

Request

$ curl 'https://solo.cloud/public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/attributes/e73f875a-2f92-42a8-b7b5-94f720757523' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>'
DELETE /public/api/v1/completions/faffb0f4-9576-463c-b5f5-246123154e97/attributes/e73f875a-2f92-42a8-b7b5-94f720757523 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 2bfca6d0d8afa3b80ac4662fb5427674

DELETE /public/api/v1/completions/{completionUuid}/attributes/{attributeUuid}

Path parameter Description
completionUuid Completion UUID
attributeUuid Attribute UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Delete completion stage

Delete completion stage by stage UUID

Request

$ curl 'https://solo.cloud/public/api/v1/stages/6c561379-8925-4cdd-977c-ce6a22343ced' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>'
DELETE /public/api/v1/stages/6c561379-8925-4cdd-977c-ce6a22343ced HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 93437dfb70b66e45cf29ba41b096dedf

DELETE /public/api/v1/stages/{stageUuid}

Path parameter Description
stageUuid Stage UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

30. Production data

Create or update production curves

Bulk create or update production curves (monthly production data) for wells in the project.

A request may contain multiple wells (laterals or typewells) and multiple curves per well; each well_uuid + metric pair must be unique within the request, otherwise the request is rejected with 400. Wells outside the project are rejected with 404. If a curve for the same well and metric already exists, it is updated and its points are fully replaced, otherwise a new curve is created.

Point values are production volumes in cubic meters (m3) submitted as plain finite numbers; they are stored as submitted, no unit conversion is performed.

Request

$ curl 'https://solo.cloud/public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/production-curves/bulk' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "wells" : [ {
    "well_uuid" : "c70965d7-8d25-4f38-9497-5c2c4acbad0d",
    "curves" : [ {
      "name" : "Gas production curve",
      "metric" : "GAS",
      "granularity" : "MONTHLY",
      "value_type" : "PERIOD",
      "points" : [ {
        "period_start" : "2024-01-01",
        "value" : 250000.0
      }, {
        "period_start" : "2024-02-01",
        "value" : 235500.5
      } ]
    } ]
  } ]
}'
POST /public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/production-curves/bulk HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 411

{
  "wells" : [ {
    "well_uuid" : "c70965d7-8d25-4f38-9497-5c2c4acbad0d",
    "curves" : [ {
      "name" : "Gas production curve",
      "metric" : "GAS",
      "granularity" : "MONTHLY",
      "value_type" : "PERIOD",
      "points" : [ {
        "period_start" : "2024-01-01",
        "value" : 250000.0
      }, {
        "period_start" : "2024-02-01",
        "value" : 235500.5
      } ]
    } ]
  } ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 9e598e6931d71d27c6fa7a3ed0ec5b75
Content-Type: application/json

[ {
  "well_uuid" : "c70965d7-8d25-4f38-9497-5c2c4acbad0d",
  "curve_uuid" : "75e4f443-8bf6-4ac6-bc4a-ac9242baee84",
  "name" : "Gas production curve",
  "action" : "CREATED"
} ]

POST /public/api/v1/projects/{project_uuid}/production-curves/bulk

Path parameter Description
project_uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
wells Array Wells to create or update production curves for
wells[].well_uuid String Well UUID (lateral or typewell in the project); unknown well UUIDs are rejected with 404
wells[].curves Array Production curves of the well; each well_uuid + metric pair must be unique within the request
wells[].curves[].name String Production curve name (up to 200 characters)
wells[].curves[].metric String Production metric (OIL, GAS, WATER or CONDENSATE)
wells[].curves[].granularity String Points granularity (MONTHLY)
wells[].curves[].value_type String Points value type (PERIOD - each point holds the volume produced during its period)
wells[].curves[].points Array Production curve points; on update the existing points are fully replaced
wells[].curves[].points[].period_start String Period start (ISO date, yyyy-MM-dd)
wells[].curves[].points[].value Number Production volume for the period in cubic meters (m3), a finite number

Response body

Path Type Description
[].well_uuid String Well UUID
[].curve_uuid String Production curve UUID
[].name String Production curve name
[].action String CREATED if a new curve was created, UPDATED if the existing curve for the same well and metric was updated

Get production curves by well

Get a list of production curves of the well with metadata (without points). Returns an empty array when the well has no production curves.

The caller must have read access to the project.

Request

$ curl 'https://solo.cloud/public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/wells/83999b4d-8eb5-482d-8a01-f8786f5ec718/production-curves' -i -X GET \
    -H 'Authorization: Bearer <your_access_token>'
GET /public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/wells/83999b4d-8eb5-482d-8a01-f8786f5ec718/production-curves HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 6e6ebf23ef17b76e4458b2a607ba8065
Content-Type: application/json

[ {
  "well_uuid" : "83999b4d-8eb5-482d-8a01-f8786f5ec718",
  "curve_uuid" : "a2170a38-cbfa-4a2c-8436-02c2355c0eb9",
  "name" : "Oil production curve",
  "metric" : "OIL",
  "granularity" : "MONTHLY",
  "value_type" : "PERIOD",
  "curve_data_version" : 1
} ]

GET /public/api/v1/projects/{project_uuid}/wells/{well_uuid}/production-curves

Path parameter Description
project_uuid Project UUID
well_uuid Well UUID
Header Description
Authorization OAuth2 authorization header

Response body

Path Type Description
[].well_uuid String Well UUID
[].curve_uuid String Production curve UUID
[].name String Production curve name
[].metric String Production metric (OIL, GAS, WATER or CONDENSATE)
[].granularity String Points granularity (MONTHLY)
[].value_type String Points value type (PERIOD or CUMULATIVE)
[].curve_data_version Number Version of the curve points data, changes when the points are updated

Query production curves

Get production curves (monthly production data) with points for the requested wells in the project.

Each curve holds one production metric (OIL, GAS, WATER or CONDENSATE) with MONTHLY granularity; point values are volumes in cubic meters (m3), conversion to display units is the consumer's responsibility. Point value is a double value object.

The caller must have read access to the project. The endpoint is available when advanced data management is enabled for the company, otherwise the request is rejected with 403.

Request

$ curl 'https://solo.cloud/public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/production-curves/query' -i -X POST \
    -H 'Authorization: Bearer <your_access_token>' \
    -H 'Content-Type: application/json' \
    -d '{
  "well_uuids" : [ "83999b4d-8eb5-482d-8a01-f8786f5ec718" ],
  "metrics" : [ "OIL" ]
}'
POST /public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/production-curves/query HTTP/1.1
Authorization: Bearer <your_access_token>
Content-Type: application/json
Host: solo.cloud
Content-Length: 88

{
  "well_uuids" : [ "83999b4d-8eb5-482d-8a01-f8786f5ec718" ],
  "metrics" : [ "OIL" ]
}

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: f03e8b8f0d084c6e2bf1dac8bc6efd3d
Content-Type: application/json

[ {
  "curve_uuid" : "a2170a38-cbfa-4a2c-8436-02c2355c0eb9",
  "well_uuid" : "83999b4d-8eb5-482d-8a01-f8786f5ec718",
  "name" : "Oil production curve",
  "metric" : "OIL",
  "granularity" : "MONTHLY",
  "value_type" : "PERIOD",
  "points" : [ {
    "value" : {
      "val" : 1500.0
    },
    "period_start" : "2024-01-01T00:00:00Z"
  }, {
    "value" : {
      "val" : 1420.5
    },
    "period_start" : "2024-02-01T00:00:00Z"
  } ]
} ]

POST /public/api/v1/projects/{project_uuid}/production-curves/query

Path parameter Description
project_uuid Project UUID
Header Description
Authorization OAuth2 authorization header
Body field Type Description
well_uuids Array Well UUIDs to return production curves for (up to 1000 wells); wells outside the project are ignored
metrics Array Production metrics filter (OIL, GAS, WATER, CONDENSATE); empty or missing means all metrics

Response body

Path Type Description
[].curve_uuid String Production curve UUID
[].well_uuid String Well UUID
[].name String Production curve name
[].metric String Production metric (OIL, GAS, WATER or CONDENSATE)
[].granularity String Points granularity (MONTHLY)
[].value_type String Points value type (PERIOD - each point holds the volume produced during its period)
[].points Array Production curve points
[].points[].period_start String Period start (ISO instant, UTC)
[].points[].value.val Number Production volume for the period in cubic meters (m3)

Delete production curve

Delete a production curve from the project by curve UUID

Request

$ curl 'https://solo.cloud/public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/production-curves/cd87e48d-0876-426c-9cd4-9d836d090f31' -i -X DELETE \
    -H 'Authorization: Bearer <your_access_token>'
DELETE /public/api/v1/projects/0cd3f028-8172-4ac8-99da-77a2442c2322/production-curves/cd87e48d-0876-426c-9cd4-9d836d090f31 HTTP/1.1
Authorization: Bearer <your_access_token>
Host: solo.cloud

Response

HTTP/1.1 200 OK
X-Solo-Trace-Id: 65e7c6ee890fd13def49003b52e47e1f

DELETE /public/api/v1/projects/{project_uuid}/production-curves/{curve_uuid}

Path parameter Description
project_uuid Project UUID
curve_uuid Production curve UUID
Header Description
Authorization OAuth2 authorization header

Response body

Empty body

Errors

Error response body

All the errors have the following structure:

Path Type Description
message String The error details
type String Type of the error
trace_id String Trace ID of the request

400 Bad Request

The request cannot be fulfilled due to bad syntax, validation errors, missing data, etc.

Response

HTTP/1.1 400 Bad Request
{
  "message": "Missing required request parameters: offset",
  "trace_id": "d369294dba75b176",
  "type": "INVALID_PARAMETER"
}

401 Unauthorized

The request cannot be fulfilled due to incorrect access credentials, missing or invalid authentication token.

Response

HTTP/1.1 401 Unauthorized
{
  "message": "Unauthorized access",
  "trace_id": "d369294dba75b177",
  "type": "UNAUTHORIZED"
}

403 Forbidden

The request cannot be fulfilled due to lack of access to perform an operation.

Response

HTTP/1.1 403 Forbidden
{
  "message": "Access is denied",
  "trace_id": "d369294dba75b178",
  "type": "FORBIDDEN"
}

404 Not Found

The requested object not found.

Response

HTTP/1.1 404 Not Found
{
  "message": "No well found with uuid=df34fj4398f34098fj344",
  "trace_id": "d369294dba75b180",
  "type": "NOT_FOUND"
}

406 Not Acceptable

The parameters provided are incorrect.

Response

HTTP/1.1 406 Not Acceptable
{
    "message": "This interpretation's type is not supported",
    "trace_id": "d4e9313ff6267dd5",
    "type": "INVALID_PARAMETER"
}

409 Conflict

Request could not be processed because of conflict in the current state of the resource (such as an edit conflict between multiple simultaneous updates).

Response

HTTP/1.1 409 Conflict
{
    "message": "Requested change cannot be applied",
    "trace_id": "4844645175526a44",
    "type": "NOT_ACCEPTED"
}

500 Internal Server Error

The request cannot be fulfilled due to internal server error.

Response

HTTP/1.1 500 Internal server error
{
  "message": "Internal error",
  "trace_id": "d369294dba75b181",
  "type": "INTERNAL_ERROR"
}

503 Service Unavailable

The request cannot be fulfilled due to temporary server unavailability. Please retry the request later. You can find the detailed information in the error response body.

Response

HTTP/1.1 503 Service Unavailable
{
  "message": "Service is temporarily unavailable",
  "trace_id": "d369294dba75b182",
  "type": "SERVICE_UNAVAILABLE"
}

License agreement

Copyright 2022 Rogii Inc. These API Terms form a binding "Agreement" between You and Rogii Inc. (“Rogii”) "You," and "your," refers to the individual, company or legal entity that you represent. The Agreement does not grant You any right to access or use: (a) Solo Cloud platform and associated tools and applications (the "Services"); (b) any of Rogii’s non-public application programming interfaces; or (c) the confidential geoscience and drilling data owned by third parties stored in Solo Cloud. If You wish to access the Services, You will be required to enter into separate license agreements with Rogii for the Services.

DEFINITIONS

“Software Application” means software authored by You that accesses or otherwise interoperates with Solo Cloud via the Solo Cloud Public API.

“Solo Cloud” means Rogii’s proprietary multi-tenant cloud system and database which contains confidential geoscience and drilling data owned by third parties.

“Solo Cloud Public API” means a collection of routines, classes, function parameters, protocols, related libraries, tools and other instructions provided in source code or object code form that allow access to or interoperability with Solo Cloud by a Software Application.

“Python SDK” means the software development kit of tools developed by Rogii that enables access to the capabilities and features of Solo Cloud through the utilization of Solo Cloud Public API.

  1. Rogii grants You a world-wide, non-exclusive, revocable limited license, under applicable copyrights, to Use the Solo Cloud Public API or Python SDK, as applicable, only as necessary to develop, test, enable and support interoperability between the Software Application and Solo Cloud.

  2. You will not: (A) access Solo Cloud Public API or Python SDK or their documentation in violation of any law or regulation; (B) access Solo Cloud Public API or Python SDK in any manner that (i) compromises, breaks or circumvents any of Rogii’s technical processes or security measures associated with Solo Cloud, (ii) poses a security vulnerability to customers or users of Solo Cloud, or (iii) tests the vulnerability of Rogii’s systems or networks; (C) access Solo Cloud Public API or Python SDK or their documentation in order to replicate or compete with Solo Cloud; (D) attempt to reverse engineer or otherwise derive source code, trade secrets, or know-how of Solos Cloud API, Python SDK or Solo Cloud; or (E) attempt to use Solo Cloud Public API or Python SDK in a manner that exceeds rate limits, or constitutes excessive or abusive usage.

  3. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

  4. THE SOLO CLOUD PUBLIC API, PYTHON SDK AND THEIR DOCUMENTATION AND ALL RELATED COMPONENTS AND INFORMATION ARE PROVIDED BY US ON AN "AS IS" AND "AS AVAILABLE" BASIS WITHOUT ANY WARRANTIES OF ANY KIND, AND WE EXPRESSLY DISCLAIM ANY AND ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY, TITLE, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. YOU ACKNOWLEDGE THAT ROGII DOES NOT WARRANT THAT THE SOLO CLOUD PUBLIC API OR PYTHON SDK WILL BE UNINTERRUPTED, TIMELY, SECURE, ERROR-FREE, OR BACKWARDS COMPATIBLE.

  5. You shall defend, indemnify and hold harmless Rogii, its affiliates and their respective officers, directors, employees, agents and representatives from any and all claims, damages, liabilities, costs and fees (including reasonable attorneys’ fees) arising from the Software Application. The Parties agree to comply with the following process when Rogii seeks indemnification under this section and specifically that Rogii is to: (i) promptly give You written notice of the claim; (ii) give You sole control of the defense and settlement of the claim (provided that You may not settle any claim unless it unconditionally releases Rogii of all liability); and (iii) provide You, at Your cost, all reasonable assistance.

  6. TO THE EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT SHALL ROGII BE RESPONSIBLE OR LIABLE WITH RESPECT TO ANY SUBJECT MATTER OF THIS AGREEMENT UNDER ANY CONTRACT, NEGLIGENCE, STRICT LIABILITY OR OTHER THEORY FOR: (I) LOSS OR INACCURACY OF DATA OR COST OF PROCUREMENT OF SUBSTITUTE GOODS, SERVICES, OR TECHNOLOGY; OR (II) ANY INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES INCLUDING, BUT NOT LIMITED TO LOSS OF REVENUES OR PROFITS; (III) ANY MATTER BEYOND ITS REASONABLE CONTROL; OR (IV) ANY AMOUNT IN THE AGGREGATE OVER $100

  7. Rogii may terminate this Agreement immediately upon written notice if You breach this Agreement. Rogii may, at its sole discretion, reinstate Your ability to use the Solo Cloud Public API if You demonstrate that You have remedied any such breach.

  8. Notwithstanding the foregoing, Sections 4-6 of this Agreement will survive any termination of this Agreement.