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.

See the User Guide for more information about data sets: https://help.exabel.com/docs/data-sets

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.

It is also possible to create a data set by calling UpdateDataSet
with allow_missing set to true.

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.

Note that this method will update all fields unless update_mask is set.

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: https://help.exabel.com/docs/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.

It is also possible to create an entity type set by calling UpdateEntityType
with allow_missing set to true.

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.

Note that this method will update all fields unless update_mask is set.

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.

It is also possible to create an entity by calling UpdateEntity
with allow_missing set to true.

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.

Note that this method will update all fields unless update_mask is set.

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)
  • cusip (Committee on Uniform Securities Identification Procedures)
  • 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 any of the following fields:

  • isin
  • mic and ticker
  • cusip

Listings may be searched by any of the following fields:

  • mic and ticker

Request: SearchEntitiesRequest

Response: SearchEntitiesResponse

ImportJobService

exabel.api.data.v1.ImportJobService

Service for managing import jobs.

As set of import job stages is run as a single import job task. See the User Guide for more
information on import jobs: https://help.exabel.com/docs/importing-via-import-jobs

The only current supported operation is run a given import job task.

Method NameRequest TypeResponse TypeDescription
RunTaskRunTaskRequestRunTaskResponseRuns an import task.

RunTask

Runs an import task.

Runs all the stages of an import job task.

Request: RunTaskRequest

Response: RunTaskResponse

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:
https://help.exabel.com/docs/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.

It is also possible to create a relationship type by calling UpdateRelationshipType
with allow_missing set to true.

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 this method update all fields unless update_mask is set.

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 of a specific type.

If neither from_entity or to_entity is given, it is expected that this call will
take some time to complete.

Request: ListRelationshipsRequest

Response: ListRelationshipsResponse

GetRelationship

Gets one relationship.

Request: GetRelationshipRequest

Response: Relationship

CreateRelationship

Creates one relationship and returns it.

It is also possible to create a relationship by calling UpdateRelationship
with allow_missing set to true.

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.

Note that this method will update all fields unless update_mask is set.

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: https://help.exabel.com/docs/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.

It is also possible to create a signal by calling UpdateSignal
with allow_missing set to true.

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.

Note that this method will update all fields unless update_mask is set.

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:
https://help.exabel.com/docs/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 default known_time for a data point is insertion time, i.e. same as setting
current_time to true. To override the default behaviour, set one of the
default_known_time fields.

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.

It is also possible to create a time series by calling UpdateTimeSeries
with allow_missing set to true.

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.

The default known_time for a data point is insertion time, i.e. same as setting
current_time to true. To override the default behaviour, set one of the
default_known_time fields.

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.

If you would like to import multiple time series belonging to different signals, specify -
as the signal identifier. (Signal identifiers are part of each time series' resource name, so
your time series will still be assigned to their corresponding signals.)

The default known_time for a data point is insertion time, i.e. same as setting
current_time to true. To override the default behaviour, set one of the
default_known_time fields.

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

BatchDeleteTimeSeriesPoints

Deletes specific time series points for multiple time series.

Delete multiple time series points in bulk, by erasing the points from the storage. Use with
care: 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 deleted, it is therefore recommended to perform a full
backload from this version on.

Deleting a value is both different from inserting NaN values, or inserting no value.

If you would like to delete multiple time series points belonging to different signals,
specify - as the signal identifier. (Signal identifiers are part of each time series'
resource name, so your time series will still be assigned to their corresponding signals.)

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: BatchDeleteTimeSeriesPointsRequest

Response: BatchDeleteTimeSeriesPointsResponse

DeleteTimeSeries

Deletes one time series.

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

Request: DeleteTimeSeriesRequest

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 display_name to update only the display name. If the signals field is updated, the new list will replace the existing list. If allow_missing is set, this field is ignored.

For REST requests, this is a comma-separated string. |
| allow_missing | bool | | If 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.
descriptionstringUsed when showing the entity in the Exabel app.
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.
descriptionstringUsed when showing the entity type in the Exabel app.
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. The end of the list is reached when the number of results is less than the page size (NOT when the token is empty).
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. The end of the list is reached when number of results is less than the page size (NOT when the token is empty).
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.
optionsSearchOptionsOptions on how the search should be performed. Currently only affects company search using field 'text'.
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 display_name to update only the display name. If allow_missing is set, this field is ignored.

For REST requests, this is a comma-separated string. |
| allow_missing | bool | | If 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 display_name to update only the display name. If allow_missing is set, this field is ignored.

For REST requests, this is a comma-separated string. |
| allow_missing | bool | | If set to true, a new entity type will be created if it did not exist, and update_mask is ignored. |

RunTaskRequest

exabel.api.data.v1.RunTaskRequest

The request run task.

FieldTypeLabelDescription
namestringThe resource name of the task to run, for example tasks/123.

RunTaskResponse

exabel.api.data.v1.RunTaskResponse

The response to run task.

No fields

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. The end of the list is reached when the number of results is less than the page size (NOT when the token is empty).
total_sizeint32Total number of results, irrespective of paging.

ListRelationshipsRequest

exabel.api.data.v1.ListRelationshipsRequest

The request to list relationship of a specific type.

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.

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. The end of the list is reached when the number of results is less than the page size (NOT when the token is empty).
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.

For REST requests, this is a comma-separated string. |
| allow_missing | bool | | If 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.

For REST requests, this is a comma-separated string. |
| allow_missing | bool | | If set to true, a new relationship type will be created if it did not exist, and update_mask is ignored. |

SearchOptions

exabel.api.data.v1.SearchOptions

Options on how the search should be performed.

FieldTypeLabelDescription
universeSearchUniverseThe entity universe to search. Currently only supported for 'text' search for entityType/company.

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.

SearchUniverse

Enum to select search universe.

NameNumberDescription
SEARCH_UNIVERSE_UNSPECIFIED0No search universe specified. This is the default behaviour. For text search for entityTypes/company, this searches the Exabel company universe.
EXABEL_COMPANIES1Search all companies in the Exabel company universe. This includes all companies with price data or a directly connected time series. Only supported for text search for entityTypes/company.
ALL_COMPANIES2Search all companies, including companies not in the Exabel company universe. This includes all FactSet companies of type 'SUB' and 'PVT'. Only supported for text search for entityTypes/company.

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.
descriptionstringUsed when showing the signal in the Exabel app.
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. The end of the list is reached when the number of results is less than the page size (NOT when the token is empty).
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 display_name to update only the display name. If allow_missing is set, this field is ignored.

For REST requests, this is a comma-separated string. |
| allow_missing | bool | | If set to true, a new raw data signal will be created if it did not exist, and update_mask is ignored. |
| create_library_signal | bool | | Set 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.
unitsUnitsThe units of this time series. Not all time series have known units, in which case this field is not present. Once set, only the description field of units may be updated.

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.

Unit

exabel.api.data.v1.Unit

An individual unit, measuring one dimension.

FieldTypeLabelDescription
dimensionUnit.DimensionThe dimension of this unit.
unitstringThe short hand symbol of a dimension of this unit, for instance "m" or "EUR". Required, except for ratio units.
exponentsint32The exponent (power) of this unit. It can be positive or negative, but if it is 0, the unit's exponent defaults to the value 1.

Units

exabel.api.data.v1.Units

The units of a time series. Not all time series have known units, in which case its units
field is not present. If present, but empty, the unit of the time series is known to be
dimensionless and unscaled.

FieldTypeLabelDescription
unitsUnitrepeatedThe product of all individual unit parts of this unit. For instance, if a time series measures speed and is given in meters per second, it would have one unit { dimension: DIMENSION_LENGTH, unit: 'm' } and one unit { dimension: DIMENSION_TIME, unit: 's', exponent: -1 }. And if a time series measures a monetary amount and is specified in United States dollars, it would have the single unit { dimension: DIMENSION_CURRENCY, unit: 'USD' }.
multipliergoogle.type.DecimalThe multiplier of the time series, with default value "1". For instance, if the time series is measured in millions, the multiplier would be "1000000" or "1e6", or if the time series is measured in percent, but given as values from 0 to 100, the multiplier would be "0.01".
descriptionstringOptionally a more detailed description of the units of this time series, for instance "Number of customers" or "Gross value in millions (EUR)".

Unit.Dimension

The supported dimensions in the Exabel platform.

NameNumberDescription
DIMENSION_UNKNOWN0The dimension of this unit is unknown, but may be inferred from the unit's symbol.
DIMENSION_CURRENCY1The dimension is a monetary currency. A unit of this dimension must be one of the ISO-4217 three letter currency codes.
DIMENSION_MASS2The dimension is a mass. The SI unit of mass is "kg", but other units may also be used.
DIMENSION_LENGTH3The dimension is a one dimensional size. The SI unit of length is "m", but other units may also be used.
DIMENSION_TIME4The dimension is an amount of time. The SI unit of time is "s", but other units may also be used.
DIMENSION_RATIO5This unit is a ratio (strictly speaking without a dimension). Symbol is typically empty or "%".

BatchDeleteTimeSeriesPointsRequest

exabel.api.data.v1.BatchDeleteTimeSeriesPointsRequest

The request to batch delete specific points of one or more time series.

FieldTypeLabelDescription
parentstringThe common parent of all time series to delete points from, for example entityTypes/ns.type1/entities/ns.entity1/signals/ns.signal1 or signals/ns.signal1/entityTypes/ns.type1/entities/ns.entity1. May include - as a wild card.
time_seriesTimeSeriesrepeatedThe list of time series points to delete. If a known_time is empty, all data for the time series at that time is deleted. For all points, value is ignored. Trying to delete points from a non-existing time series will result in an error, but trying to delete a non-existing point from an existing time series will not result in an error.
status_in_responseboolSet to true to report the status of each time series in the response. If false, a failure for one time series will fail the entire request, and a sample of the failures will be reported in the trailers.

BatchDeleteTimeSeriesPointsResponse

exabel.api.data.v1.BatchDeleteTimeSeriesPointsResponse

The response to batch delete multiple time series points.

FieldTypeLabelDescription
responsesBatchDeleteTimeSeriesPointsResponse.BatchDeleteTimeSeriesResponserepeatedOne response for each time series, in order. This list is populated if and only if status_in_response was set to true in the request.

BatchDeleteTimeSeriesPointsResponse.BatchDeleteTimeSeriesResponse

exabel.api.data.v1.BatchDeleteTimeSeriesPointsResponse.BatchDeleteTimeSeriesResponse

The status for one time series.

FieldTypeLabelDescription
time_series_namestringThe resource name of the time series, for example entityTypes/store/entities/ns.apple_store_fifth_avenue/signals/ns.visitors.
statusgoogle.rpc.StatusThe status for this time series. A status.code = OK indicates that all time series points was deleted successfully.

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.
insert_optionsInsertOptionsInsert options for this request.
default_known_timeDefaultKnownTimeDeprecated. This field is deprecated and replaced with insert_options.default_known_time.
create_tagboolDeprecated. This field is not in use anymore.
should_optimisebooloptionalDeprecated. This field is deprecated and replaced with insert_options.should_optimise.

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.
status_in_responseboolSet to true to report the status of each time series in the response. If false, a failure for one time series will fail the entire request, and a sample of the failures will be reported in the trailers.
insert_optionsInsertOptionsInsert options for this request.
update_optionsUpdateOptionsUpdate uptions for this request.
default_known_timeDefaultKnownTimeDeprecated. This field is deprecated and replaced with insert_options.default_known_time.
allow_missingboolDeprecated. This field is deprecated and replaced with update_options.allow_missing.
create_tagboolDeprecated. This field is not in use anymore.
replace_existing_time_seriesboolDeprecated. This field is deprecated and replaced with update_options.replace_existing_time_series.
should_optimisebooloptionalDeprecated. This field is deprecated and replaced with insert_options.should_optimise.
replace_known_timeboolDeprecated. This field is deprecated and replaced with update_options.replace_known_time.

ImportTimeSeriesResponse

exabel.api.data.v1.ImportTimeSeriesResponse

The response to import multiple time series.

FieldTypeLabelDescription
responsesImportTimeSeriesResponse.SingleTimeSeriesResponserepeatedOne response for each time series, in order. This list is populated if and only if status_in_response was set to true in the request.

ImportTimeSeriesResponse.SingleTimeSeriesResponse

exabel.api.data.v1.ImportTimeSeriesResponse.SingleTimeSeriesResponse

The status for one time series.

FieldTypeLabelDescription
time_series_namestringThe resource name of the time series, for example entityTypes/store/entities/ns.apple_store_fifth_avenue/signals/ns.visitors.
statusgoogle.rpc.StatusThe status for this time series. A status.code = OK indicates that the time series was imported successfully.

InsertOptions

exabel.api.data.v1.InsertOptions

Common options when insert time series values.

FieldTypeLabelDescription
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_tagboolDeprecated. This field is not in use anymore.
should_optimisebooloptionalWhether time series storage optimisation should be enabled or not. If not set, optimisation is at the discretion of the server.

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. The end of the list is reached when the number of results is less than the page size (NOT when the token is empty).
total_sizeint32Total number of results, irrespective of paging.

UpdateOptions

exabel.api.data.v1.UpdateOptions

Common options when updating one or more time series.

FieldTypeLabelDescription
allow_missingboolIf set to true, new time series will be created if they did not exist.
replace_existing_time_seriesboolSet to true to first delete all data from existing time series, including units. This means that all historical, point-in-time and units data for the time series will be destroyed and replaced with the data in this call. Use with care! For instance: If this flag is set, and an import job splits one time series over multiple calls, only the data in the last call will be kept.
replace_known_timeboolSpecifies that the known times of all inserted points are a fixed timestamp specified in insert_options.default_known_time, and additionally that all existing values of the time series should be unset at this timestamp. If this is set, either insert_options.default_known_time.current_time or insert_options.default_known_time.known_time must be set, and it is an error to specify the known time of any inserted points. Use with care! For instance: If this flag is set, and an import job splits one time series over multiple calls, only the data in the last call will be kept.
replace_existing_data_pointsboolWhether to remove existing data points for other known times of the the inserted time series points. Data points for times not present in the request will be left untouched.

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.
insert_optionsInsertOptionsInsert options for this request.
update_optionsUpdateOptionsUpdate uptions for this request.
default_known_timeDefaultKnownTimeDeprecated. This field is deprecated and replaced with insert_options.default_known_time.
allow_missingboolDeprecated. This field is deprecated and replaced with update_options.allow_missing.
create_tagboolDeprecated. This field is not in use anymore.
should_optimisebooloptionalDeprecated. This field is deprecated and replaced with insert_options.should_optimise.
replace_known_timeboolDeprecated. This field is deprecated and replaced with update_options.replace_known_time.

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.