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

KpiService

exabel.api.analytics.v1.KpiService

Service to retrieve KPI results.

Method NameRequest TypeResponse TypeDescription
ListKpiMappingResultsListKpiMappingResultsRequestListKpiMappingResultsResponseList KPI mapping results.

ListKpiMappingResults

List KPI mapping results.

Request: ListKpiMappingResultsRequest

Response: ListKpiMappingResultsResponse

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. |
| display_name | string | | The human readable name of the signal. |
| 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.
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.
changeexabel.api.math.ChangeThe method used to calculate changes in this signal.
entity_setexabel.api.data.v1.EntitySetThe set of entities that this signal is valid for.

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.

Kpi

exabel.api.analytics.v1.Kpi

A KPI.

FieldTypeLabelDescription
typestringThe type of the KPI. A KPI is one of the following types: - FACTSET_ESTIMATES: FactSet actuals/estimates. - FACTSET_FUNDAMENTALS: FactSet fundamentals. - FACTSET_SEGMENTS: FactSet segments. - VISIBLE_ALPHA_STANDARD_KPI: Visible Alpha standard KPI.
valuestringoptionalA value which is dependent on the type: - FACTSET_ESTIMATES: Reporting number, e.g. SALES. - FACTSET_FUNDAMENTALS: Reporting number, e.g. SALES. - FACTSET_SEGMENTS: Factset segment resource name, e.g. entityTypes/geo_segment/entities/factset.segment_123. - VISIBLE_ALPHA_STANDARD_KPI: Line item parameter id. For example, the "Total revenue" parameter has a parameter id of 190.
display_namestringThe display name of the KPI.
freqstringoptionalA textual representation of the KPI frequency. Either FQ, FS or FY.
is_ratiobooloptionalWhether this KPI is a ratio or not.

KpiEntity

exabel.api.analytics.v1.KpiEntity

An entity from which there are KPI results.

FieldTypeLabelDescription
namestringThe resource name of the entity.
display_namestringThe display name of the entity.
bloomberg_tickerstringThe bloomberg ticker of the entity.

KpiMappingEntityResults

exabel.api.analytics.v1.KpiMappingEntityResults

KPI mapping results for one entity.

FieldTypeLabelDescription
entityKpiEntityThe entity these results apply to.
kpi_resultsKpiResultrepeatedThe KPI results of this entity.

KpiProxyData

exabel.api.analytics.v1.KpiProxyData

Data for a KPI proxy.

FieldTypeLabelDescription
sourceKpiProxySourceThe source of this KPI proxy.
model_mapedoubleoptionalMean absolute percentage error for a model built using this proxy.
model_maedoubleoptionalMean absolute error for a model built using this proxy.
model_hit_ratedoubleoptionalHit rate for a model built using this proxy.
last_value_dateexabel.api.time.DateThe date of the last observed proxy value.
number_of_data_pointsint32optionalNumber of data points (after resampling). This is the number of data points where both the KPI and the proxy have data.
period_over_period_maedoubleoptionalPeriod-over-period mean absolute error.
year_over_year_maedoubleoptionalYear-over-year mean absolute error.
absolute_correlationdoubleoptionalAbsolute correlation.
period_over_period_correlationdoubleoptionalPeriod-over-period correlation.
year_over_year_correlationdoubleoptionalYear-over-year correlation.
absolute_p_valuedoubleoptionalAbsolute P-value.
period_over_period_p_valuedoubleoptionalPeriod-over-period P-value.
year_over_year_p_valuedoubleoptionalYear-over-year P-value.

KpiProxySource

exabel.api.analytics.v1.KpiProxySource

A KPI proxy source.

FieldTypeLabelDescription
namestringThe resource name of the KPI proxy.
display_namestringThe display name of the KPI proxy.

KpiResult

exabel.api.analytics.v1.KpiResult

Result for a single KPI for an entity.

FieldTypeLabelDescription
kpiKpiThe KPI this data is from.
dataKpiProxyDatarepeatedThe proxy result data of this KPI.

ListKpiMappingResultsRequest

exabel.api.analytics.v1.ListKpiMappingResultsRequest

Request to ListKpiMappingResults.

FieldTypeLabelDescription
parentstringResource name of the KPI mapping to list results of. Example: kpiMappings/123.
page_sizeint32Maximum number of entities to return. Defaults to 20, and the maximum allowed value is 100.
page_tokenstringToken for a specific page of results, as returned from a previous list request with the same query parameters.

ListKpiMappingResultsResponse

exabel.api.analytics.v1.ListKpiMappingResultsResponse

Response from ListKpiMappingResults.

FieldTypeLabelDescription
resultsKpiMappingEntityResultsrepeatedList of results, one for each entity. The end of the list is reached when the token is empty.
next_page_tokenstringToken for the next page of results, which can be sent to a subsequent list query.
total_sizeint32Total number of rows, irrespective of paging.

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. |