Evo Discovery
Seequent Evo API requests rely on the following parameters to uniquely identify your data:
- The ID of the Evo instance that you want to access.
- The URL of your assigned Evo hub.
The Evo Discovery endpoint provides this information.
From Organisations to Instances
Evo has moved from using organisations to instances. During this process, the Evo Discovery API will accommodate the Instance ID
within the Organisation ID
field.
- The organisation field will now hold instance information.
- In the future, Evo organisations will be renamed to Evo instances.
Evo Instances
An instance is owned, managed, and invoiced through a Bentley account. A single account can have multiple Evo instances. Instances are created through the Seequent sales engagement process. Users can be granted access to an instance by the instance admin, becoming members of that instance. The list of members is available on the User page in the Evo portal. Each instance contains workspaces created by its members. Within a workspace, users can have different roles: owner, editor, or viewer which define their level of access to the workspace and its data.
Hubs
A hub is the highest-level deployment of Evo’s cloud infrastructure within a region. It is a self-contained environment that hosts infrastructure and software, providing a landing zone for Evo instances in the cloud.
How to perform an Evo Discovery request
Using the Python SDK
Visit Evo Python SDK to learn how to install and use the SDK.
Perform the request manually
-
Choose the Evo service code(s) for the APIs to be queried:
- Block Model API → blockmodel
- File API → file
- Geoscience Object API → geoscienceobject
-
Perform a GET request:
- Use your access token as a bearer token in the Authorization header of your API request.
- Include each Evo service code as a query parameter, eg.
service=file&service=blockmodel
. Multiple services must be separated by the&
symbol.
API Request
In this example we are performing an Evo discovery request and are searching for three Evo services.
The request URL looks like this:
https://discover.api.seequent.com/evo/identity/v2/discovery?service=blockmodel&service=file&service=geoscienceobject
import json
import requests
# Enter your access token here
access_token = ""
# Define the auth header
auth_header = { "Authorization": f"Bearer {access_token}" }
# Define the Evo services
services = ["blockmodel", "file", "geoscienceobject"]
# Define the query params
params = [("service", service) for service in services]
# Define the discovery URL
discovery_url = "https://discover.api.seequent.com/evo/identity/v2/discovery"
# Make the request
response = requests.get(discovery_url, headers=auth_header, params=params)
print(json.dumps(response.json(), indent=4))
API Response
The JSON response body will include the discovery
section which includes four sub-sections:
hubs
organizations
services
service_access
Follow these steps to find your org ID and a hub URL:
-
In the
organizations
section copy theid
value. This is your org ID."organizations": [
{
"id": "d0ea331e-814e-4e24-a1b8-cd563c5b1d31",
"display_name": "Test organisation"
}
] -
Search the
service_access
section an element that includes services that you want to access. For example, if you need to access the Block Model API find an item inservice_access
that includesblockmodel
in theservices
list. Make a note of the correspondinghub_code
value."service_access": [
...
{
"hub_code": "au",
"org_id": "d0ea331e-814e-4e24-a1b8-cd563c5b1d31",
"services": [
"blockmodel",
"file",
"geoscienceobject"
]
},
...
] -
Search the
hubs
section for the matchinghub_code
from the previous step and copy the correspondingurl
value. This is the hub URL."hubs": [
...
{
"code": "au",
"display_name": "Australia East",
"url": "https://au.api.seequent.com"
},
...
] -
With the hub URL and org ID found, you can now perform Seequent Evo API requests.