Data API gRPC reference

Services

DataSetService

exabel.api.data.v1.DataSetService

Service for managing data sets. Data sets are collections of signals that you may define and
manage, often to group data by source/vendor. The companies and entities that have time series
data for these signals are also part of the data set, and searchable within the data set in the
Exabel app.

You may access data sets by subscribing to an Exabel data partner, or create your own data sets
from the data you import.

Method NameRequest TypeResponse TypeDescription
ListDataSetsListDataSetsRequestListDataSetsResponseLists all data sets.
GetDataSetGetDataSetRequestDataSetGets one data set.
CreateDataSetCreateDataSetRequestDataSetCreates one data set and returns it.
UpdateDataSetUpdateDataSetRequestDataSetUpdates one data set and returns it.
DeleteDataSetDeleteDataSetRequest.google.protobuf.EmptyDeletes one data set.

ListDataSets

Lists all data sets.

Lists all data sets available to your customer, including both your own data sets as well as
those that you have subscribed to.

Request: ListDataSetsRequest

Response: ListDataSetsResponse

GetDataSet

Gets one data set.

Request: GetDataSetRequest

Response: DataSet

CreateDataSet

Creates one data set and returns it.

Request: CreateDataSetRequest

Response: DataSet

UpdateDataSet

Updates one data set and returns it.

This can also be used to create a data set by setting allow_missing to true.

Request: UpdateDataSetRequest

Response: DataSet

DeleteDataSet

Deletes one data set.

Request: DeleteDataSetRequest

Response: .google.protobuf.Empty

EntityService

exabel.api.data.v1.EntityService

Service for managing entity types and entities. See the User Guide for more information about
entity types and entities.

ListEntityTypes

Lists all known entity types.

Lists all entity types available to your customer, including those created by you, in the
global catalog, and from data sets you are subscribed to.

Request: ListEntityTypesRequest

Response: ListEntityTypesResponse

GetEntityType

Gets one entity type.

Request: GetEntityTypeRequest

Response: EntityType

CreateEntityType

Creates one entity type and returns it.

Request: CreateEntityTypeRequest

Response: EntityType

UpdateEntityType

Updates one entity type and returns it.

This can also be used to create an entity type by setting allow_missing to true.

Request: UpdateEntityTypeRequest

Response: EntityType

DeleteEntityType

Deletes one entity type.

This can only be performed on entity types with no entities. You should delete entities before
deleting their entity type.

Request: DeleteEntityTypeRequest

Response: .google.protobuf.Empty

ListEntities

Lists all entities of a given entity type.

List all entities of a given entity type.
Some entity types are too large to be listed (company, regional, security, listing) - use the
Search method instead.

Request: ListEntitiesRequest

Response: ListEntitiesResponse

DeleteEntities

Deletes entities.

Deletes all entities of a given entity type, and their relationships and time series.
This is useful for cleaning up erroneous data imports and data that is no longer needed.
Note that the confirm field must be set to true. Only entities in your namespace(s) are
deleted, and the entity type itself is not deleted.

Request: DeleteEntitiesRequest

Response: .google.protobuf.Empty

GetEntity

Gets one entity.

Request: GetEntityRequest

Response: Entity

CreateEntity

Creates one entity and returns it.

Request: CreateEntityRequest

Response: Entity

UpdateEntity

Updates one entity and returns it.

This can also be used to create an entity by setting allow_missing to true.

Request: UpdateEntityRequest

Response: Entity

DeleteEntity

Deletes one entity.

This will delete all relationships and time series for the entity.

Request: DeleteEntityRequest

Response: .google.protobuf.Empty

SearchEntities

Search for entities.

Currently, only companies, securities and listings can be searched.

If multiple search terms are present, each search is performed individually, with results
returned in separate SearchResult objects.

Companies may be searched by any of the following fields:

  • isin (International Securities Identification Number)
  • mic (Market Identifier Code) and ticker
  • bloomberg_ticker (eg AAPL US)
  • bloomberg_symbol (eg AAPL US Equity)
  • figi (Financial Instruments Global Identifier)
  • factset_identifier: either FactSet entity identifier or FactSet permanent identifier ("FSYM_ID")
  • text

mic and ticker must come in pairs, with mic immediately before ticker. Each pair is
treated as one search query.

The text field supports free text search for ISINs, tickers and/or company names. If a
search term is sufficiently long, a prefix search will be performed. Up to five companies are
returned for each search.

Securities may be searched by isin or mic/ticker. Listings may be searched by
mic/ticker.

Request: SearchEntitiesRequest

Response: SearchEntitiesResponse

NamespaceService

exabel.api.data.v1.NamespaceService

Service for managing namespaces. Namespaces allow Exabel to keep customer data segregated and
private to users of that customer.

If you have an Exabel full platform license, you will have your own private namespace. All data
that you import will be created in that namespace, and therefore kept private.

Method NameRequest TypeResponse TypeDescription
ListNamespacesListNamespacesRequestListNamespacesResponseLists namespaces.

ListNamespaces

Lists namespaces.

Lists all namespaces accessible to your customer. If you have your own namespace, it will
listed as writeable. You may also have read access to other namespaces, depending on your
subscriptions.

Request: ListNamespacesRequest

Response: ListNamespacesResponse

RelationshipService

exabel.api.data.v1.RelationshipService

Service for managing relationship types and relationships. See the User Guide for more
information about relationship types and relationships.

ListRelationshipTypes

List all relationship types from a common catalog.

Lists all relationship types available to your customer, including those created by you, in
the global catalog, and from data sets you are subscribed to.

Request: ListRelationshipTypesRequest

Response: ListRelationshipTypesResponse

GetRelationshipType

Gets one relationship type.

Request: GetRelationshipTypeRequest

Response: RelationshipType

CreateRelationshipType

Creates one relationship type and returns it.

Request: CreateRelationshipTypeRequest

Response: RelationshipType

UpdateRelationshipType

Updates one relationship type and returns it.

This can also be used to create a relationship type by setting allow_missing to true.

Note that modifying the is_ownership property may be a slow operation, as all individual
relationships of this type will have to be updated.

Request: UpdateRelationshipTypeRequest

Response: RelationshipType

DeleteRelationshipType

Deletes one relationship type.

This can only be performed on relationship types with no relationships. You should delete
relationships before deleting their entity type.

Request: DeleteRelationshipTypeRequest

Response: .google.protobuf.Empty

ListRelationships

Lists relationship for a given entity.

At least one of from_entity and to_entity must be specified.

Request: ListRelationshipsRequest

Response: ListRelationshipsResponse

GetRelationship

Gets one relationship.

Request: GetRelationshipRequest

Response: Relationship

CreateRelationship

Creates one relationship and returns it.

Request: CreateRelationshipRequest

Response: Relationship

UpdateRelationship

Updates one relationship and returns it.

This can also be used to create a relationship by setting allow_missing to true.

Request: UpdateRelationshipRequest

Response: Relationship

DeleteRelationship

Deletes one relationship.

Request: DeleteRelationshipRequest

Response: .google.protobuf.Empty

SignalService

exabel.api.data.v1.SignalService

Service for managing raw data signals. See the User Guide for more information about raw data
signals.

Method NameRequest TypeResponse TypeDescription
ListSignalsListSignalsRequestListSignalsResponseLists all known signals.
GetSignalGetSignalRequestSignalGets one signal.
CreateSignalCreateSignalRequestSignalCreates one signal and returns it.
UpdateSignalUpdateSignalRequestSignalUpdates one signal and returns it.
DeleteSignalDeleteSignalRequest.google.protobuf.EmptyDeletes one signal. ALL time series for this signal will also be deleted.

ListSignals

Lists all known signals.

Lists all raw data signals available to your customer, including those created by you, in the
global catalog, and from data sets you are subscribed to.

Request: ListSignalsRequest

Response: ListSignalsResponse

GetSignal

Gets one signal.

Request: GetSignalRequest

Response: Signal

CreateSignal

Creates one signal and returns it.

Request: CreateSignalRequest

Response: Signal

UpdateSignal

Updates one signal and returns it.

This can also be used to create a signal by setting allow_missing to true.

Request: UpdateSignalRequest

Response: Signal

DeleteSignal

Deletes one signal. ALL time series for this signal will also be deleted.

This will delete all time series for this signal.

Request: DeleteSignalRequest

Response: .google.protobuf.Empty

TimeSeriesService

exabel.api.data.v1.TimeSeriesService

Service for managing time series. See the User Guide for more information about time series.

ListTimeSeries

Lists time series.

Lists all time series for one entity or for one signal. Only the names are returned.

Request: ListTimeSeriesRequest

Response: ListTimeSeriesResponse

GetTimeSeries

Gets one time series.

Use this method to get time series data points.

Note: Exabel only supports processing time series with daily or lower resolution. Timestamps
must be RFC 3339 timestamps, normalised to midnight UTC, e.g. 2020-01-01T00:00:00Z.

Request: GetTimeSeriesRequest

Response: TimeSeries

CreateTimeSeries

Creates one time series.

Note: Exabel only supports processing time series with daily or lower resolution. Timestamps
must be RFC 3339 timestamps, normalised to midnight UTC, e.g. 2020-01-01T00:00:00Z.

The optional view argument lets you request for time series data points to be returned
within a date range. If this is not set, no values are returned.

Request: CreateTimeSeriesRequest

Response: TimeSeries

UpdateTimeSeries

Updates one time series.

This can also be used to create a time series by setting allow_missing to true.

Updating a time series will usually create a new version of the time series. However, by
explicitly setting a known time, any version may be changed or updated. If a value already
exists with exactly the same timestamp and known time, it will be updated. Otherwise a new
point will be created.

If a timestamp that is previously known is not included, its value is not deleted, even
though it is within the range of this update. The old value will simply continue to exist at
the new version. Data points without values are cleared from this version, meaning that the
old value will continue to exist up until the new version, then cease to exist.

Time series storage is optimized by discarding values which haven't changed from the previous
versions. Note that this optimization may cause surprising behavior when updating older
versions. When older versions are updated, it is therefore recommended to perform a full
backload from this version on.

Note: Exabel only supports processing time series with daily or lower resolution. Timestamps
must be RFC 3339 timestamps, normalised to midnight UTC, e.g. 2020-01-01T00:00:00Z.

The optional view argument lets you request for time series data points to be returned
within a date range. If this is not set, no values are returned.

Request: UpdateTimeSeriesRequest

Response: TimeSeries

ImportTimeSeries

Creates or update multiple time series.

Import multiple time series in bulk, by creating new time series or updating existing time
series.

You may use - as a wild card in the path parameters.

Note: Exabel only supports processing time series with daily or lower resolution. Timestamps
must be RFC 3339 timestamps, normalised to midnight UTC, e.g. 2020-01-01T00:00:00Z.

Request: ImportTimeSeriesRequest

Response: ImportTimeSeriesResponse

DeleteTimeSeries

Deletes one time series.

This will delete the time series and all its data points.

If you have a "coverage" tag from the Create, Update or Import time series endpoints (by
setting create_tag to true), this will remove this entity from that tag.

Request: DeleteTimeSeriesRequest

Response: .google.protobuf.Empty

BatchDeleteTimeSeriesPoints

Deletes part(s) of one time series.

Delete data points within a time series by specifying time ranges. This does not delete the
time series.

Request: BatchDeleteTimeSeriesPointsRequest

Response: .google.protobuf.Empty

Messages

DataSet

exabel.api.data.v1.DataSet

A data set resource in the Data API.

FieldTypeLabelDescription
namestringUnique resource name of the data set, e.g. dataSets/namespace.dataSetIdentifier. The namespace must be one of the predetermined namespaces the customer has access to. The data set identifier must match the regex \w[\w-]{0,63}.
display_namestringUsed when showing the data set in the Exabel app. Required when creating a data set.
descriptionstringThis is currently not used in the Exabel app, but may be in future.
signalsstringrepeatedList of signals comprising the data set. Signals are represented by their resource names, e.g. signals/namespace.signalIdentifier.
read_onlyboolData sets that you subscribe to will be read-only.

CreateDataSetRequest

exabel.api.data.v1.CreateDataSetRequest

The response to create one data set.

FieldTypeLabelDescription
data_setDataSetThe data set to create.

DeleteDataSetRequest

exabel.api.data.v1.DeleteDataSetRequest

The request to delete one data set.

FieldTypeLabelDescription
namestringThe resource name of the data set to delete, for example dataSets/ns.set1.

GetDataSetRequest

exabel.api.data.v1.GetDataSetRequest

The request to get one data set.

FieldTypeLabelDescription
namestringThe resource name of the requested data set, for example dataSets/ns.set1.

ListDataSetsRequest

exabel.api.data.v1.ListDataSetsRequest

The request to list data sets.

No fields

ListDataSetsResponse

exabel.api.data.v1.ListDataSetsResponse

The response to list data sets. Returns all known data sets.

FieldTypeLabelDescription
data_setsDataSetrepeatedList of data sets.

UpdateDataSetRequest

exabel.api.data.v1.UpdateDataSetRequest

The request to update one data set.

FieldTypeLabelDescription
data_setDataSetThe data set to update.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify displayName,signals to update only the display name and list of signals. If the signals field is updated, the new list will replace the existing list. If allow_missing is set, this field is ignored.
allow_missingboolIf set to true, a new data set will be created if it did not exist, and update_mask is ignored.

Entity

exabel.api.data.v1.Entity

An entity resource in the Data API. All entities have one entity type as its parent.

FieldTypeLabelDescription
namestringUnique resource name of the entity, e.g. entityTypes/entityTypeIdentifier/entities/entityIdentifier or entityTypes/namespace1.entityTypeIdentifier/entities/namespace2.entityIdentifier. The namespaces must be empty (being global) or one of the predetermined namespaces the customer has access to. If namespace1 is not empty, it must be equal to namespace2. The entity identifier must match the regex \w[\w-]{0,63}.
display_namestringUsed when showing the entity in the Exabel app. Required when creating an entity.
descriptionstringThis is currently not used in the Exabel app, but may be in future.
read_onlyboolGlobal entities and those from data sets that you subscribe to will be read-only.
propertiesgoogle.protobuf.StructAdditional properties of this entity. This is currently not used in the Exabel app, but may be in future.

EntityType

exabel.api.data.v1.EntityType

An entity type resource in the Data API.

FieldTypeLabelDescription
namestringUnique resource name of the entity type, e.g. entityTypes/entityTypeIdentifier or entityTypes/namespace.entityTypeIdentifier. The namespace must be empty (being global) or a namespace accessible to the customer. The entity type identifier must match the regex \w[\w-]{0,63}.
display_namestringUsed when showing the entity type in the Exabel app. Required when creating an entity type.
descriptionstringThis is currently not used in the Exabel app, but may be in future.
read_onlyboolGlobal entity types and those from data sets that you subscribe to will be read-only.
is_associativeboolAssociative entity types connect multiple entity types - e.g. company_occupation to connect company and occupation entity types. These are typically used to hold time series data that is defined by the combination of 2 or more entities.

CreateEntityRequest

exabel.api.data.v1.CreateEntityRequest

The response to create one entity.

FieldTypeLabelDescription
parentstringThe parent entity type of the created entity, for example entityTypes/ns.type1.
entityEntityThe entity to create.

CreateEntityTypeRequest

exabel.api.data.v1.CreateEntityTypeRequest

The request to create one entity type.

FieldTypeLabelDescription
entity_typeEntityTypeThe entity type to create.

DeleteEntitiesRequest

exabel.api.data.v1.DeleteEntitiesRequest

The request to delete all entities of a given entity type.

FieldTypeLabelDescription
parentstringThe parent entity type of the entities to delete, for example entityTypes/ns.type1.
confirmboolSafeguard against accidental deletion. Must be set to true for deletion to take place.

DeleteEntityRequest

exabel.api.data.v1.DeleteEntityRequest

The request to delete one entity.

FieldTypeLabelDescription
namestringThe resource name of the entity to delete, for example entityTypes/ns.type1/entities/ns.entity1.

DeleteEntityTypeRequest

exabel.api.data.v1.DeleteEntityTypeRequest

The request to delete one entity type.

FieldTypeLabelDescription
namestringThe resource name of the entity type to delete, for example entityTypes/ns.type1.

GetEntityRequest

exabel.api.data.v1.GetEntityRequest

The request to get one entity.

FieldTypeLabelDescription
namestringThe resource name of the requested entity, for example entityTypes/ns.type1/entities/ns.entity1.

GetEntityTypeRequest

exabel.api.data.v1.GetEntityTypeRequest

The request to get one entity type.

FieldTypeLabelDescription
namestringThe resource name of the requested entity type, for example entityTypes/ns.type1.

ListEntitiesRequest

exabel.api.data.v1.ListEntitiesRequest

The request to list entities.

FieldTypeLabelDescription
parentstringThe parent entity type of the entities to list, for example entityTypes/ns.type1.
page_sizeint32Maximum number of results to return. Defaults to 1000, which is the maximum allowed value.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListEntitiesResponse

exabel.api.data.v1.ListEntitiesResponse

The response to list entities. Returns all entities of a given entity type, with only name set.

FieldTypeLabelDescription
entitiesEntityrepeatedList of entities.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent query.
total_sizeint32Total number of results, irrespective of paging.

ListEntityTypesRequest

exabel.api.data.v1.ListEntityTypesRequest

The request to list entity types.

FieldTypeLabelDescription
page_sizeint32Maximum number of results to return. Defaults to 1000, which is the maximum allowed value.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListEntityTypesResponse

exabel.api.data.v1.ListEntityTypesResponse

The response to list entity types. Returns all known entity types.

FieldTypeLabelDescription
entity_typesEntityTyperepeatedList of entity types.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent query.
total_sizeint32Total number of results, irrespective of paging.

SearchEntitiesRequest

exabel.api.data.v1.SearchEntitiesRequest

The request to search for one or more entities.

FieldTypeLabelDescription
parentstringThe parent entity type of the entities to list, for example entityTypes/ns.type1.
termsSearchTermrepeatedSearch terms.
page_sizeint32The maximum number of results to return. Defaults to 1000, which is also the maximum value of this field. (Not implemented yet.)
page_tokenstringThe page token to resume the results from, as returned from a previous request to this method with the same query parameters. (Not implemented yet.)

SearchEntitiesResponse

exabel.api.data.v1.SearchEntitiesResponse

The response to searching for entities. Returns all entities matching the search parameters.

FieldTypeLabelDescription
resultsSearchEntitiesResponse.SearchResultrepeatedThe results of each search, in the request order. Note that some consecutive terms are defined as belonging to one search query, and in these cases the number of results will be less than the number of search terms.
next_page_tokenstringThe page token where the search continues. Can be sent to a subsequent query. (Not implemented yet.)
entitiesEntityrepeatedThe resulting entities, concatenated from multiple search terms. (Kept for backwards compatibility.)

SearchEntitiesResponse.SearchResult

exabel.api.data.v1.SearchEntitiesResponse.SearchResult

The result of one search.

FieldTypeLabelDescription
termsSearchTermrepeatedThe terms used for this search.
entitiesEntityrepeatedAll entities matching one search, possibly empty if no entities matched this search.

UpdateEntityRequest

exabel.api.data.v1.UpdateEntityRequest

The request to update one entity.

FieldTypeLabelDescription
entityEntityThe entity to update.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify displayName to update only the display name. If allow_missing is set, this field is ignored.
allow_missingboolIf set to true, a new entity will be created if it did not exist, and update_mask is ignored.

UpdateEntityTypeRequest

exabel.api.data.v1.UpdateEntityTypeRequest

The request to update one entity type.

FieldTypeLabelDescription
entity_typeEntityTypeThe entity type to update.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify displayName to update only the display name. If allow_missing is set, this field is ignored.
allow_missingboolIf set to true, a new entity type will be created if it did not exist, and update_mask is ignored.

ListNamespacesRequest

exabel.api.data.v1.ListNamespacesRequest

The request to list namespaces.

No fields

ListNamespacesResponse

exabel.api.data.v1.ListNamespacesResponse

The response to list namespaces.

FieldTypeLabelDescription
namespacesNamespacerepeatedList of namespaces accessible to your customer. In addition, all customers have read access to the global namespace; this will not be listed in the response.

Namespace

exabel.api.data.v1.Namespace

A namespace resource in the Data API.

FieldTypeLabelDescription
namestringUnique resource name of the namespace, e.g. namespaces/namespaceIdentifier.
writeableboolWhether your customer has write access to the namespace. Your own customer namespace will always be writeable.

Relationship

exabel.api.data.v1.Relationship

A relationship resource in the Data API. All relationships have one relationship type as its
parent. Relationships do not have resource names, but are identified by their (type, from, to)
triple. There can only be one relationship of one type between two entities (as viewed by a
single user). The namespaces of the end points must either be empty (being global) or one of the
predetermined namespaces the customer has access to.

FieldTypeLabelDescription
parentstringParent relationship type, e.g. relationshipTypes/ns.type1.
from_entitystringResource name of entity the relationship starts from, e.g. entityTypes/ns.type1/entities/ns.entity1.
to_entitystringResource name of entity the relationship goes to, e.g. entityTypes/ns.type2/entities/ns.entity2.
descriptionstringThis is currently not used in the Exabel app, but may be in future.
read_onlyboolGlobal relationships and those from data sets that you subscribe to will be read-only.
propertiesgoogle.protobuf.StructAdditional properties of this relationship. This is currently not used in the Exabel app, but may be in future.

RelationshipType

exabel.api.data.v1.RelationshipType

A relationship type resource in the Data API.

FieldTypeLabelDescription
namestringUnique resource name of the relationship type, e.g. relationshipTypes/namespace.relationshipTypeIdentifier. The namespace must be empty (being global) or a namespace accessible to the customer. The relationship type identifier must match the regex [A-Z][A-Z0-9_]{0,63}.
descriptionstringThis is currently not used in the Exabel app, but may be in future.
read_onlyboolGlobal relationship types and those from data sets that you subscribe to will be read-only.
is_ownershipboolWhether this relationship type specifies an ownership in the data set model. Ownership relationships must go from the owner to the child entity.
propertiesgoogle.protobuf.StructAdditional properties of this relationship type. This is currently not used in the Exabel app, but may be in future.

CreateRelationshipRequest

exabel.api.data.v1.CreateRelationshipRequest

The request to create one relationship.

FieldTypeLabelDescription
relationshipRelationshipThe relationship to create.

CreateRelationshipTypeRequest

exabel.api.data.v1.CreateRelationshipTypeRequest

The request to create one relationship type.

FieldTypeLabelDescription
relationship_typeRelationshipTypeThe relationship type to create.

DeleteRelationshipRequest

exabel.api.data.v1.DeleteRelationshipRequest

The request to delete one relationship.

FieldTypeLabelDescription
parentstringThe parent of the relationship to delete, for example relationshipTypes/ns.type1.
from_entitystringResource name of entity the relationship starts from, e.g. entityTypes/ns.type1/entities/ns.entity1.
to_entitystringResource name of entity the relationship goes to, e.g. entityTypes/ns.type2/entities/ns.entity2.

DeleteRelationshipTypeRequest

exabel.api.data.v1.DeleteRelationshipTypeRequest

The request to delete one relationship type.

FieldTypeLabelDescription
namestringThe resource name of the relationship type to delete, for example relationshipTypes/ns.type1.

GetRelationshipRequest

exabel.api.data.v1.GetRelationshipRequest

The request to get one relationship.

FieldTypeLabelDescription
parentstringThe type of the relationship, for example relationshipTypes/ns.type1.
from_entitystringResource name of entity the relationship starts from, e.g. entityTypes/ns.type1/entities/ns.entity1.
to_entitystringResource name of entity the relationship goes to, e.g. entityTypes/ns.type2/entities/ns.entity2.

GetRelationshipTypeRequest

exabel.api.data.v1.GetRelationshipTypeRequest

The response to get one relationship type.

FieldTypeLabelDescription
namestringThe resource name of the requested relationship type, for example relationshipTypes/ns.type1.

ListRelationshipTypesRequest

exabel.api.data.v1.ListRelationshipTypesRequest

The request to list relationship types.

FieldTypeLabelDescription
page_sizeint32Maximum number of results to return. Defaults to 1000, which is the maximum allowed value.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListRelationshipTypesResponse

exabel.api.data.v1.ListRelationshipTypesResponse

The response to list relationship types. Returns all known relationship types.

FieldTypeLabelDescription
relationship_typesRelationshipTyperepeatedList of relationship types.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent query.
total_sizeint32Total number of results, irrespective of paging.

ListRelationshipsRequest

exabel.api.data.v1.ListRelationshipsRequest

The request to list relationship for a given entity. At least one of from_entity and to_entity must be provided.

FieldTypeLabelDescription
parentstringThe type of the relationship, for example relationshipTypes/ns.type1. Use parent relationshipTypes/- to include all types.
from_entitystringResource name of entity to list relationships from, e.g. entityTypes/ns.type1/entities/ns.entity1.
to_entitystringResource name of entity to list relationships to, e.g. entityTypes/ns.type2/entities/ns.entity2.
page_sizeint32Maximum number of results to return. Defaults to 1000, which is the maximum allowed value.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListRelationshipsResponse

exabel.api.data.v1.ListRelationshipsResponse

The response to list relationships. Returns all the requested relationships.

FieldTypeLabelDescription
relationshipsRelationshiprepeatedList of relationships. Does not return description or properties.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent query.
total_sizeint32Total number of results, irrespective of paging.

UpdateRelationshipRequest

exabel.api.data.v1.UpdateRelationshipRequest

The request to update one relationship.

FieldTypeLabelDescription
relationshipRelationshipThe relationship to update.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify description to update only the description. If allow_missing is set, this field is ignored.
allow_missingboolIf set to true, a new relationship will be created if it did not exist, and update_mask is ignored.

UpdateRelationshipTypeRequest

exabel.api.data.v1.UpdateRelationshipTypeRequest

The request to update one relationship type.

FieldTypeLabelDescription
relationship_typeRelationshipTypeThe relationship type to update.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify description to update only the description. If allow_missing is set, this field is ignored.
allow_missingboolIf set to true, a new relationship type will be created if it did not exist, and update_mask is ignored.

SearchTerm

exabel.api.data.v1.SearchTerm

A single search term in a search request.

FieldTypeLabelDescription
fieldstringThe name of the field that should be matched. Field names are case-insensitive.
querystringThe query against which the field is matched.

Signal

exabel.api.data.v1.Signal

A signal resource in the Data API. Signals are normally associated with a set of entity types,
but may apply to any entities.

FieldTypeLabelDescription
namestringUnique resource name of the raw data signal, e.g. signals/signalIdentifier or signals/namespace.signalIdentifier. The namespace must be empty (being global) or a namespace accessible to the customer. The signal identifier must match the regex [a-zA-Z]\w{0,63}.
entity_typestringDeprecated. No longer in use.
display_namestringUsed when showing the signal in the Exabel app. Required when creating a signal.
descriptionstringThis is currently not used in the Exabel app, but may be in future.
downsampling_methodexabel.api.math.AggregationThe default downsampling method to use when this signal is re-sampled into larger intervals. When two or more values in an interval needs to be aggregated into a single value, specifies how they are combined.
read_onlyboolGlobal signals and those from data sets that you subscribe to will be read-only.
entity_typesstringrepeatedList of entity types that this signal has time series for, e.g. entityTypes/ns.type1, entityTypes/ns.type2.

CreateSignalRequest

exabel.api.data.v1.CreateSignalRequest

The request to create one signal.

FieldTypeLabelDescription
signalSignalThe signal to create.
create_library_signalboolSet to true to also create a derived signal in the Library, referencing this new raw data signal. This will be created in the "Upload" folder.

DeleteSignalRequest

exabel.api.data.v1.DeleteSignalRequest

The request to delete one signal.

FieldTypeLabelDescription
namestringThe resource name of the signal to delete, for example signals/ns.signal1.

GetSignalRequest

exabel.api.data.v1.GetSignalRequest

The request to get one signal.

FieldTypeLabelDescription
namestringThe resource name of the requested signal, for example signals/ns.signal1.

ListSignalsRequest

exabel.api.data.v1.ListSignalsRequest

The request to list signals.

FieldTypeLabelDescription
page_sizeint32Maximum number of results to return. Defaults to 1000, which is the maximum allowed value.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListSignalsResponse

exabel.api.data.v1.ListSignalsResponse

The response to list signals. Returns all known signals.

FieldTypeLabelDescription
signalsSignalrepeatedList of signals.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent query.
total_sizeint32Total number of results, irrespective of paging.

UpdateSignalRequest

exabel.api.data.v1.UpdateSignalRequest

The request to update one signal.

FieldTypeLabelDescription
signalSignalThe signal to update.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify displayName,description to update only the display name and description. If allow_missing is set, this field is ignored.
allow_missingboolIf set to true, a new raw data signal will be created if it did not exist, and update_mask is ignored.
create_library_signalboolSet to true to also create a derived signal in the Library, referencing this new raw data signal. This will be created in the "Upload" folder. This is only applicable if a new raw data signal has been created (with allow_missing set to true).

DefaultKnownTime

exabel.api.data.v1.DefaultKnownTime

A default known time specification to use when creating or updating time series. If any inserted
values has a value for its known_time, that value is used instead.

FieldTypeLabelDescription
current_timeboolSpecifies the current system time as the default known time for all inserted data points.
known_timegoogle.protobuf.TimestampSpecifies a specific timestamp as the default known time for all inserted data points.
time_offsetgoogle.protobuf.DurationSpecifies a time offset from each data point's timestamp to be its default known time.

TimeSeries

exabel.api.data.v1.TimeSeries

A time series resource in the Data API. All time series have one entity and one signal as its
parents. As such, it can be referred to as both {entity_name}/{signal_name} and
{signal_name}/{entity_name}. The first version is the canonical form.
Some time series are provided by Exabel and their data cannot
be retrieved via this API. They may still be listed in a ListTimeSeries request and be used on
the Exabel platform.

FieldTypeLabelDescription
namestringThe resource name of the time series, for example entityTypes/ns1.type/entities/ns2.entities/signals/ns3.signal. An alternative name for the same time series is signals/ns3.signal/entityTypes/ns1.type/entities/ns2.entity, but the former is the canonical version which always will be returned by the server. The namespaces must be empty (being global) or one of the predetermined namespaces the customer has access to. If ns2 is not empty, it must be equals to ns3, and if ns1 is not empty, all three namespaces must be equal.
pointsTimeSeriesPointrepeatedList of time series data points. Data points are always returned by Exabel in chronological order (earliest first).
read_onlyboolGlobal time series and those from data sets that you subscribe to will be read-only.

TimeSeriesPoint

exabel.api.data.v1.TimeSeriesPoint

A time series point of a time series.

FieldTypeLabelDescription
timegoogle.protobuf.TimestampTimestamp of this data point, truncated to whole seconds.
valuegoogle.protobuf.DoubleValueValue of this data point. Data points returned from the API always have values, but may be NaNs (Not a Number). Data points sent to the API may have no value, in which case they are marked as deleted at the specified known_time.
known_timegoogle.protobuf.TimestampKnown time of this data point.

TimeSeriesView

exabel.api.data.v1.TimeSeriesView

A view of the time series, specifying which parts of its data to return. The default view is
to only return the name of the time series.

FieldTypeLabelDescription
time_rangeexabel.api.time.TimeRangeThe time range of points to return. If the time series is provided by Exabel, this field will be treated as not set. If not set, no points will be returned. If set, but empty, all points will be returned.
known_timegoogle.protobuf.TimestampSpecifies that the time series should be returned as it was known at this time (in the past). Data points known after this time are disregarded. If not set, the latest data points are returned.

BatchDeleteTimeSeriesPointsRequest

exabel.api.data.v1.BatchDeleteTimeSeriesPointsRequest

The request to delete parts of one time series.

FieldTypeLabelDescription
namestringThe resource name of the time series to be deleted, for example entityTypes/ns.type1/entities/ns.entity1/signals/ns.signal1 or signals/ns.signal1/entityTypes/ns.type1/entities/ns.entity1.
time_rangesexabel.api.time.TimeRangerepeatedThe list of time ranges to delete from the time series. Each time range may be expanded to whole hours (UTC time).

CreateTimeSeriesRequest

exabel.api.data.v1.CreateTimeSeriesRequest

The request to create one time series. The parents of the time series will be inferred from
time_series.name. The returned time series will contain its canonical name.

FieldTypeLabelDescription
time_seriesTimeSeriesThe time series to create.
viewTimeSeriesViewSpecifies which parts of the time series should be returned in the request.
default_known_timeDefaultKnownTimeThe specification of the default known time to use for points that don't explicitly have a known time set. If not set, the time of insertion is used as the default known time (current_time = true).
create_tagboolSet to true to create a "coverage" tag containing all entities that have time series, for this signal and entity type. If this tag already exists, setting create_tag to true will update it with all entities that have time series.

DeleteTimeSeriesRequest

exabel.api.data.v1.DeleteTimeSeriesRequest

The request to delete one time series.

FieldTypeLabelDescription
namestringThe resource name of the time series to be deleted, for example entityTypes/ns.type1/entities/ns.entity1/signals/ns.signal1 or signals/ns.signal1/entityTypes/ns.type1/entities/ns.entity1.

GetTimeSeriesRequest

exabel.api.data.v1.GetTimeSeriesRequest

The request to get one time series. The returned time series will contain its canonical name.
Not all time series are capable of returning data.

FieldTypeLabelDescription
namestringThe resource name of the requested time series, for example entityTypes/ns.type1/entities/ns.entity1/signals/ns.signal1 or signals/ns.signal1/entityTypes/ns.type1/entities/ns.entity1. The returned time series will always contain its canonical name entityTypes/ns.type1/entities/ns.entity1/signals/ns.signal1.
viewTimeSeriesViewSpecifies which parts of the time series should be returned in the request.

ImportTimeSeriesRequest

exabel.api.data.v1.ImportTimeSeriesRequest

The request to import multiple time series. The parents of the time series will be inferred from
time_series.name.

FieldTypeLabelDescription
parentstringThe common parent of all time series to import. May include - as a wild card.
time_seriesTimeSeriesrepeatedOne or more time series to import.
default_known_timeDefaultKnownTimeThe specification of the default known time to use for points that don't explicitly have a known time set. If not set, the time of insertion is used as the default known time (current_time = true).
allow_missingboolIf set to true, new time series will be created if they did not exist.
create_tagboolSet to true to create a "coverage" tag containing all entities that have time series, for this signal and entity type. If this tag already exists, setting create_tag to true will update it with all entities that have time series. This flag is only relevant if allow_missing is set to true.

ImportTimeSeriesResponse

exabel.api.data.v1.ImportTimeSeriesResponse

The response to import multiple time series.

No fields

ListTimeSeriesRequest

exabel.api.data.v1.ListTimeSeriesRequest

The request to list time series. This request has an implicit empty TimeSeriesView parameter,
so only the canonical names are returned.

FieldTypeLabelDescription
parentstringThe parent entity or signal of time series to list, for example entityTypes/ns.type1/entities/ns.entity1 or signal/ns.signal1.
page_sizeint32Maximum number of results to return. Defaults to 1000, which is the maximum allowed value.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListTimeSeriesResponse

exabel.api.data.v1.ListTimeSeriesResponse

The response to list time series. Returns all matching time series.

FieldTypeLabelDescription
time_seriesTimeSeriesrepeatedList of time series. Only the resource name field is returned.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent query.
total_sizeint32Total number of results, irrespective of paging.

UpdateTimeSeriesRequest

exabel.api.data.v1.UpdateTimeSeriesRequest

The request to update one time series. The returned time series will contain its canonical name.

FieldTypeLabelDescription
time_seriesTimeSeriesThe time series to update. The data in this request and the existing data are merged together: All points in the request will overwrite the existing points with the same key, unless the new value is empty, in which case the point will be deleted.
viewTimeSeriesViewSpecifies which parts of the time series should be returned in the request.
default_known_timeDefaultKnownTimeThe specification of the default known time to use for points that don't explicitly have a known time set. If not set, the time of insertion is used as the default known time (current_time = true).
allow_missingboolIf set to true, a new time series will be created if it did not exist.
create_tagboolSet to true to create a "coverage" tag containing all entities that have time series, for this signal and entity type. If this tag already exists, setting create_tag to true will update it with all entities that have time series. This flag is only relevant if allow_missing is set to true.

TimeRange

exabel.api.time.TimeRange

A time range represented by two google.protobuf.Timestamps. The default time range includes the
start point and excludes the end point.

FieldTypeLabelDescription
from_timegoogle.protobuf.TimestampStart of the time range, included in the range by default.
exclude_fromboolSet to true to exclude the start point from the range.
to_timegoogle.protobuf.TimestampEnd of the time range, excluded from the range by default.
include_toboolSet to true to include the end point in the range.

Aggregation

Aggregation methods.

NameNumberDescription
AGGREGATION_INVALID0Aggregation is unspecified and invalid. Aggregation must be set.
MEAN1Takes the arithmetic mean of the data values. Example: 2, 1, 3, 5, 4 -> 3.
FIRST2Selects the first value. Example: 2, 1, 3, 5, 4 -> 2.
LAST3Selects the last value. Example: 2, 1, 3, 5, 4 -> 4.
SUM4Sums the data values. Example: 2, 1, 3, 5, 4 -> 15.
MIN5Selects the minimum value. Example: 2, 1, 3, 5, 4 -> 1.
MAX6Selects the maximum value. Example: 2, 1, 3, 5, 4 -> 5.