Analytics API gRPC reference

Services

DerivedSignalService

exabel.api.analytics.v1.DerivedSignalService

Service to manage derived signals.

A derived signal is a DSL expression with a unique label. The label must be unique to the
customer.

Derived signals are stored in Library folders and shared across users through folder sharing.

Requests to the DerivedSignalService are executed in the context of the customer's service
account (SA). The SA is a special user that is a member of the customer user group, giving
it access to all folders that are shared with this user group, but not to private folders.
Hence, only derived signals that are in folders shared to the SA, via the customer user group,
will be accessible via the DerivedSignalService.

GetDerivedSignal

Gets a derived signal.

The derived signal must be in a folder that is shared to your service account (which is always
in your main customer user group).

Request: GetDerivedSignalRequest

Response: DerivedSignal

CreateDerivedSignal

Creates a derived signal.

Request: CreateDerivedSignalRequest

Response: DerivedSignal

UpdateDerivedSignal

Updates a derived signal.

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

Request: UpdateDerivedSignalRequest

Response: DerivedSignal

DeleteDerivedSignal

Deletes a derived signal.

Request: DeleteDerivedSignalRequest

Response: .google.protobuf.Empty

PredictionModelService

exabel.api.analytics.v1.PredictionModelService

Service to manage prediction models.

The only current supported operation is to request to run a given prediction model.

Requests to the PredictionModelService are executed in the context of the customer's service
account (SA). The SA is a special user that is a member of the customer user group, giving
it access to all folders that are shared with this user group, but not to private folders.
Hence, only prediction models that are in folders shared to the SA, via the customer user group,
will be accessible via the PredictionModelService.

Method NameRequest TypeResponse TypeDescription
CreatePredictionModelRunCreatePredictionModelRunRequestPredictionModelRunRuns a prediction model.

CreatePredictionModelRun

Runs a prediction model.

Request: CreatePredictionModelRunRequest

Response: PredictionModelRun

TagService

exabel.api.analytics.v1.TagService

Service for managing tags. See the User Guide for more information about tags:
https://help.exabel.com/docs/tags-screens

Requests to the TagService are executed in the context of the customer's service account (SA).
The SA is a special user that is a member of the customer user group, giving it access to all
folders that are shared with this user group, but not to private folders.
Hence, only tags that are in folders shared to the SA, via the customer user group,
will be accessible via the TagService.

Method NameRequest TypeResponse TypeDescription
CreateTagCreateTagRequestTagCreate a tag.
GetTagGetTagRequestTagGet a tag.
UpdateTagUpdateTagRequestTagUpdate a tag.
DeleteTagDeleteTagRequest.google.protobuf.EmptyDelete a tag.
ListTagsListTagsRequestListTagsResponseList all tags accessible by the user.
AddEntitiesAddEntitiesRequestAddEntitiesResponseAdd entities to a tag. Entities that exist in the tag already will be ignored
RemoveEntitiesRemoveEntitiesRequestRemoveEntitiesResponseRemove a set of entities from tag.
ListTagEntitiesListTagEntitiesRequestListTagEntitiesResponseList all entities in a tag.

CreateTag

Create a tag.

Request: CreateTagRequest

Response: Tag

GetTag

Get a tag.

Request: GetTagRequest

Response: Tag

UpdateTag

Update a tag.

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

Request: UpdateTagRequest

Response: Tag

DeleteTag

Delete a tag.

Request: DeleteTagRequest

Response: .google.protobuf.Empty

ListTags

List all tags accessible by the user.

Request: ListTagsRequest

Response: ListTagsResponse

AddEntities

Add entities to a tag. Entities that exist in the tag already will be ignored

Entities that exist in the tag already will be ignored.

Request: AddEntitiesRequest

Response: AddEntitiesResponse

RemoveEntities

Remove a set of entities from tag.

Request: RemoveEntitiesRequest

Response: RemoveEntitiesResponse

ListTagEntities

List all entities in a tag.

Request: ListTagEntitiesRequest

Response: ListTagEntitiesResponse

Messages

DerivedSignal

exabel.api.analytics.v1.DerivedSignal

A derived signal.

As opposed to raw signals which represents time series on entities, a derived signal
represents a calculation through a DSL expression.

FieldTypeLabelDescription
namestringUnique resource name of the derived signal, e.g. derivedSignals/123. In the "Create derived signal" method, this is ignored and may be left empty.
labelstringLabel of the derived signal. This appears in the Library when browsing for derived signals, and when a derived signal is used in any Exabel feature (e.g. chart, dashboard). It can also be used to reference this derived signal in a second derived signal.

This is required when creating a derived signal. Must be a valid Python identifier between 1-100 characters, match the regex ^[a-zA-Z_]\w{0,99}$, and cannot be a Python keyword. |
| expression | string | | A DSL expression describing the signal transformations to apply. For more information, see the DSL reference. |
| description | string | | Appears in the Exabel Library, when browsing for derived signals. |
| metadata | DerivedSignalMetadata | | Additional metadata to control formatting (decimals and units). |

DerivedSignalMetadata

exabel.api.analytics.v1.DerivedSignalMetadata

Additional metadata to control formatting (decimals and units).

Note: this is only used today when a signal is added to a dashboard table. This will be phased
out in favour of providing formatting controls in the Exabel features (charts, dashboards, etc.)
where signals are used.

FieldTypeLabelDescription
decimalsgoogle.protobuf.Int32ValueNumber of decimals to use when displaying numeric values.
unitDerivedSignalUnitUnit of the signal.
typeDerivedSignalTypeType of the signal. Not relevant for external use.

DerivedSignalType

Type of the signal. Not relevant for external use.

NameNumberDescription
DERIVED_SIGNAL_TYPE_INVALID0Signal type was not specified.
DERIVED_SIGNAL1Signal is a derived signal, with an editable label and expression. This is the default value.
FILE_UPLOADED_SIGNAL2Signal uploaded through the legacy File Uploader. The expression refers to a raw signal and cannot be modified.
FILE_UPLOADED_COMPANY_SIGNAL3Signal uploaded through the legacy File Uploader. The expression refers to a raw signal and cannot be modified.
PERSISTED_SIGNAL4A persisted signal that is evaluated and cached daily. The expression refers to a raw signal and cannot be modified.

DerivedSignalUnit

Unit of the signal.

NameNumberDescription
DERIVED_SIGNAL_UNIT_INVALID0Signal unit was not specified.
NUMBER1Signal represents normal floating point numbers. This is the default value.
RATIO2Signal represents a ratio, typically with values in the interval [0, 1]. Values will be displayed as a percentage.
RATIO_DIFFERENCE3Signal represents a difference in a ratio. Values will be displayed as percentage points.

CreateDerivedSignalRequest

exabel.api.analytics.v1.CreateDerivedSignalRequest

Request to CreateDerivedSignal.

FieldTypeLabelDescription
signalDerivedSignalA derived signal.
folderstringResource name of the Library folder to create the signal in, e.g. folders/123. If not specified, the signal will be created in an “Analytics API” folder that is shared with the customer user group.

DeleteDerivedSignalRequest

exabel.api.analytics.v1.DeleteDerivedSignalRequest

Request to DeleteDerivedSignal.

FieldTypeLabelDescription
namestringThe derived signal resource name.

GetDerivedSignalRequest

exabel.api.analytics.v1.GetDerivedSignalRequest

Request to GetDerivedSignal.

FieldTypeLabelDescription
namestringThe derived signal resource name.

UpdateDerivedSignalRequest

exabel.api.analytics.v1.UpdateDerivedSignalRequest

Request to UpdateDerivedSignal.

FieldTypeLabelDescription
signalDerivedSignalA derived signal.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify expression to update only the expression.

For REST requests, this is a comma-separated string. |

ItemMetadata

exabel.api.analytics.v1.ItemMetadata

Metadata about an item.

FieldTypeLabelDescription
create_timegoogle.protobuf.TimestampWhen the item was created.
update_timegoogle.protobuf.TimestampWhen the item was last updated.
created_bystringResource name of the user who created the item.
updated_bystringResource name of the user who last updated the item.
write_accessbooloptionalWhether the API caller has write access to the item. May not always be populated.

PredictionModelRun

exabel.api.analytics.v1.PredictionModelRun

A prediction model run.

FieldTypeLabelDescription
namestringUnique resource name of the run, e.g. predictionModels/123/runs/3.
descriptionstringYou may use this to record some notes about the run. This is shown in the prediction model interface when viewing all runs, and when viewing the results of a single run.
configurationModelConfigurationWhich model configuration to use. If not specified, the latest model configuration is used. Note that the current signal library is always loaded.
configuration_sourceint32optionalPrediction model run number from which model configuration should be retrieved, e.g. 1. Only relevant when configuration is set to ModelConfiguration.SPECIFIC_RUN.
auto_activateboolWhether to automatically set this run as active once it completes. The run will not be activated if it fails for any of the entities in the model.

ModelConfiguration

Specifies which model configuration to use. If not specified, the latest model configuration is used.
Note that the current signal library is always loaded.

NameNumberDescription
MODEL_CONFIGURATION_NOT_SPECIFIED0Not specified - defaults to use the latest configuration.
LATEST1Latest configuration.
ACTIVE2Configuration of the active run. A specific run may be activated from the prediction model user interface.
SPECIFIC_RUN3Configuration of a specific run. The run number must be specified as well.

CreatePredictionModelRunRequest

exabel.api.analytics.v1.CreatePredictionModelRunRequest

Request to CreatePredictionModelRun.

FieldTypeLabelDescription
parentstringResource name of the prediction model for which the run should be created. Example: predictionModels/123.
runPredictionModelRunThe model run.

Tag

exabel.api.analytics.v1.Tag

Represents a tag.

FieldTypeLabelDescription
namestringUnique resource name of the tag, e.g. tags/user:806f697b-e9fa-4443-9f92-ba46e5b60930.
display_namestringDisplay name of the tag. This is shown wherever the tag is used in the Exabel app.
descriptionstringYou may use this to provide more information about the tag. This is shown in the Library when browsing for tags.
entity_typestringResource name of the tag's entity type.

Tags can only contain entities of one entity type. For new tags, this is set once the first entity is added. |
| metadata | ItemMetadata | | Metadata about the tag. |

AddEntitiesRequest

exabel.api.analytics.v1.AddEntitiesRequest

Request to add entities to tag.

FieldTypeLabelDescription
namestringResource name of the tag to add entities to Example: tags/user:abc123.
entity_namesstringrepeatedList of entity resource names to add to tag. You may find these resource names with the EntityService.

AddEntitiesResponse

exabel.api.analytics.v1.AddEntitiesResponse

Response to add entities to a tag

No fields

CreateTagRequest

exabel.api.analytics.v1.CreateTagRequest

Request to CreateTag.

FieldTypeLabelDescription
tagTagA tag
folderstringResource name of the Library folder to create the signal in, e.g. folders/123. If not specified, the signal will be created in an “Analytics API” folder that is shared with the customer user group.

DeleteTagRequest

exabel.api.analytics.v1.DeleteTagRequest

Request to DeleteTag.

FieldTypeLabelDescription
namestringThe tag resource name.

GetTagRequest

exabel.api.analytics.v1.GetTagRequest

Request to GetTag.

FieldTypeLabelDescription
namestringResource name of the requested tag Example: tags/user:abc123.

ListTagEntitiesRequest

exabel.api.analytics.v1.ListTagEntitiesRequest

Request to list entities in a tag.

FieldTypeLabelDescription
parentstringThe parent tag to list entities for Example: tags/user:abc123.
page_sizeint32Maximum number of results to return. Default is 20 and max is 1000.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListTagEntitiesResponse

exabel.api.analytics.v1.ListTagEntitiesResponse

Response to list entities in a tag.

FieldTypeLabelDescription
entity_namesstringrepeatedList of entity resource names.
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 token is empty.
total_sizeint32Total number of results, irrespective of paging.

ListTagsRequest

exabel.api.analytics.v1.ListTagsRequest

Request to list tags.

FieldTypeLabelDescription
page_sizeint32Maximum number of results to return. Default is 20 and max is 1000.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListTagsResponse

exabel.api.analytics.v1.ListTagsResponse

Response to list tags.

FieldTypeLabelDescription
tagsTagrepeatedThe tags in the requested page.
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 token is empty.
total_sizeint32Total number of results, irrespective of paging.

RemoveEntitiesRequest

exabel.api.analytics.v1.RemoveEntitiesRequest

Request to remove entities from a tag.

FieldTypeLabelDescription
namestringResource name of the tag to remove entities from Example: tags/user:abc123.
entity_namesstringrepeatedList of entity resource names to remove from tag.

RemoveEntitiesResponse

exabel.api.analytics.v1.RemoveEntitiesResponse

Response to remove entities from a tag

No fields

UpdateTagRequest

exabel.api.analytics.v1.UpdateTagRequest

Request to UpdateTag.

FieldTypeLabelDescription
tagTagA tag.
update_maskgoogle.protobuf.FieldMaskUse this to update only selected fields. For example, specify display_name to update only the display name.

For REST requests, this is a comma-separated string. |