Here are some of the most common use cases of Select Star API. We recommend using the API for understanding multi-level downstream lineage of a table, table/dashboard usage and many such use cases.
Check out the examples below:
BI/Dashboards
To learn more about Dashboard metadata, see Dashboard.
When you want to identify most frequent users of a given dashboard, you can use the frequent_dsusers endpoint.
frequent-dsusers - This endpoint is only available for dashboards.
Path Parameters
Name
Type
Description
guid*
String
GUID of the dashboard
{"count": 1, #Number of users"next": null,"previous": null,"results": [ {"guid":"du_kJEyvzXcGEkLGzCjWQ5DZp", #GUID of the user"name":"product@getselectstar.com","display_name":"product@getselectstar.com", #The username field for the user used by the datasource"user":null,"query_count":7, #Number of times user executed the dashboard"last_queried":"2022-10-28","data_source": {"guid":"ds_HPqMxFcUsNmNmhQNPbiEEJ","type":"tableau","name":"Tableau","last_ingested_on":"2022-11-22T20:00:59.761699Z" } } ]}
{"detail": "You do not have permission to perform this action."}
<!doctype html><htmllang="en"><head> <title>Not Found</title></head><body> <h1>Not Found</h1> <p>The requested resource was not found on this server.</p></body></html>
Get a list of related dashboard used in a Looker Explore
related-dashboards - All Looker Dashboards that were created from the Looker Explore are considered as related-dashboards.
This endpoint is only available for Looker Explore.
Path Parameters
Name
Type
Description
guid*
String
GUID of the Looker Explore
Query Parameters
Name
Type
Description
page_size
Integer
Number of results to return per page.
{"count":2, #Number of related dashboards"next":null,"previous":null,"results": [ {"dashboard": {"guid":"da_TYR2MoHpGYVftsspXsXzR4", #GUID of the related Dashboard"name":"Brand Lookup","data_type":"dashboard","description":"","dashboard_created_at":"2022-08-05T22:03:49Z","dashboard_updated_at":"2022-08-05T22:03:49Z","last_successful_run":"2022-11-15T18:15:03Z","last_run_at":"2022-11-15T18:15:03Z","dsuser_created_by": {"guid":"du_kRtTNGNtQh23Cbbn6yWhpm","data_source": {"guid":"ds_NTAQWUYKfUyQ5DwpevfK4G","type":"looker","name":"Looker","last_ingested_on":"2022-11-22T20:00:32.805990Z" },"user":null,"name":"bsandell@looker.com","display_name":"Bruce Sandell","email":"bsandell@looker.com","is_active":true,"is_service_account":false,"is_mode_service_account":false,"is_periscope_service_account":false,"is_sigma_service_account":false },"top_dsuser": {"guid":"du_BUkH62VCEbPKK4Z6kyavGs","data_source": {"guid":"ds_NTAQWUYKfUyQ5DwpevfK4G","type":"looker","name":"Looker","last_ingested_on":"2022-11-22T20:00:32.805990Z" },"user": {"guid":"us_WyVTwTHrBS3b6Tq8GsAPfF","first_name":"Chloe","last_name":"Kim","email":"chloe@getselectstar.com", "avatar": "https://select-star-media-bucket.s3.amazonaws.com/production/us_WyVTwTHrBS3b6Tq8GsAPfF/avatar.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAZZIYXDRAF3BQM7DP%2F20221122%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20221122T212836Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEKX%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLWVhc3QtMiJGMEQCIAkQlfjJKgC2otdEDKnWT1Um5%2BiULfTjiBbv2IG0OvGEAiAgsUgeAmn2gf2fcnkYZZtbi1lz3LFp8HADHslhd9iUlyqcBQiv%2F%2F%2F%2F%2F%2F%2F%2F%2F%2F8BEAAaDDY3Mjc1MTA5ODk0NCIMPZ1u2QMQlDd8c6D4KvAEZ7Oj7DOYCUBCDZ8GGHwHz%2FgWiPTzNdsfg7TNua7hUqabRTZchaG2zaVXqrXO2zh%2BS5m66RamHVQ%2BvmuT7%2B8YcKROqOY%2Fn50EKiO1MiDEyY4MpERAHRNAr%2F1XZyoPEcrZ7JKuZCXf3v7gBGyVOhw%2BsFnrSsaij6Tr5M8zFwURcsDv0EtLCxSbr4EZwYlXI%2FnUoPU53xhLPmL%2FR5wR7pBAA9C8LK4q9D%2FwT8hG9tE3IR7KmIq9xE7kX6%2BlExVyGrW%2F7nOwZ7a1Q0cAIPRvNV6xi0OlVts%2BSGzxDwoSsZQKVaWQn9w%2FzMWW%2FDk3FhfpWXvjUXNbVLNcaCgdk7K%2BgH4K78%2BUerIksgMSQxLU0pL6qGpnDTeH4EdkJobOmOnKnYXWN06ZKtNsgvLOEPPdL2XUaP5NdB3wr%2FJhqTW95av0kBgm%2Bxz10W4T%2FKgQpVOjYuyQcUYYI1IoBH4KydRe6OK5RcntcGA5qVHJCKjUWlQ2juDa8FvGTB89mIQDDU8M629W35xgLeDGlP7IcKNBeDOrB%2BUHVrXLR24a%2BcHYuGDNvaNLBp2%2BFTMut902XCSlxyZZ8UaYSOe14xFkAm5l1UkQyy4qwkdAqGbSfh8WVfaJac%2FESw1%2Bh9InVqWUKbhk5G8tMSIPprhZCJMbVPuhc2Et4M45a5RcHNa2JC6TAoLdOOE8XRPMy5CGMHUL64Us3%2BbhmWo7CwyhroSqBDwe4u7dhPsM%2BvJq6I3okQrixFB6FeJgTS4hnVZNtYPXPkul3etV5T6s5kjdZTw%2BtjpIdgFZ9bJ4Hh9tCbCNy6xzZyLXBayXKQKpPDvrKuNtHQtIK26nMIT%2B9JsGOpwBCOHPoCx6IYGmBJWGjMujH%2Bkn%2BgcIY1YSHRrg4zzKfJ2l8ohdCUXhXnNwhnSv%2B9TojxfLP2lzl4bIdwEH6tCbq4ObqM6q1eevqlpDutqU16BpClCs9Kpvi7%2FNSZ2HA4DFgel7kitH%2BseJDseNxhIjpPj%2BZNAViBoPGOJ6eog0jyd8KkLivsZSMg2Ko6ALNejQ56r%2BAb4jxPmRWKHq&X-Amz-Signature=1b3d1381149a15aab1a7846160123d6f8163ba8d5b4e89fbcf780678c450bdac",
"title":"","team": {"guid":"te_FWt5jxgH8gkaCbajP4E3Lj","name":"Design" },"last_login":"2022-11-10T18:28:06.627246Z","last_activity":"2022-11-22T21:27:55.584456Z","has_usable_password":true,"is_invitation_pending":false,"is_active":true,"is_verified":true,"is_agreed_to_terms":true,"settings": {"enable_email_notifications":true,"is_newsletter_subscribed":true },"created_on":"2021-07-19T14:35:19.717934Z" },"name":"chloe@getselectstar.com","display_name":"Chloe Kim","email":"chloe@getselectstar.com","is_active":true,"is_service_account":false,"is_mode_service_account":false,"is_periscope_service_account":false,"is_sigma_service_account":false },"url":"https://selectstar.cloud.looker.com/dashboards/34","popularity": {"timeframe":90,"user_count":0,"view_count":8,"service_query_count":0,"popularity":25,"ends_on":"2022-11-22" },"full_path":"Shared.Looker eCommerce.Brand Lookup" },"view_count":8,"field_count":14,"rank":8 }, {"dashboard": {"guid":"da_oGJGhbwvKiPpZL2GCHKde9", #GUID of the related Dashboard"name":"Similar Audience Optimizer","data_type":"dashboard","description":"","dashboard_created_at":"2022-08-05T22:03:56Z","dashboard_updated_at":"2022-08-05T22:03:56Z","last_successful_run":null,"last_run_at":null,"dsuser_created_by": {"guid":"du_kRtTNGNtQh23Cbbn6yWhpm","data_source": {"guid":"ds_NTAQWUYKfUyQ5DwpevfK4G","type":"looker","name":"Looker","last_ingested_on":"2022-11-22T20:00:32.805990Z" },"user":null,"name":"bsandell@looker.com","display_name":"Bruce Sandell","email":"bsandell@looker.com","is_active":true,"is_service_account":false,"is_mode_service_account":false,"is_periscope_service_account":false,"is_sigma_service_account":false },"top_dsuser":null,"url":"https://selectstar.cloud.looker.com/dashboards/41","popularity": {"timeframe":90,"user_count":0,"view_count":0,"service_query_count":0,"popularity":0,"ends_on":"2022-11-22" },"full_path":"Shared.Looker eCommerce.Similar Audience Optimizer" },"view_count":0,"field_count":12,"rank":0 } ]}
{"detail": "You do not have permission to perform this action."}
<!doctype html><htmllang="en"><head> <title>Not Found</title></head><body> <h1>Not Found</h1> <p>The requested resource was not found on this server.</p></body></html>
Databases/Tables
Get GUID for a table using full path of the object
When you want to get the GUID for a specific table, you can use the tables API command.
If you want to get the GUID of a specific column, use the columns API command with the search_name parameter and provide the full path of the object, including the column name.
search_name - Please specify a search term i.e. full path of the object.
{"detail":"You do not have permission to perform this action."}
<!doctype html>
<html lang="en">
<head>
<title>Not Found</title>
</head>
<body>
<h1>Not Found</h1>
<p>The requested resource was not found on this server.</p>
</body>
</html>
Get GUIDs for the tables with popularity over 90% (Top 10 percent of most used tables)
popularity - If you want to search for tables based on popularity, include this parameter. You will need to provide a comma separated list of popularity ranges (inclusive), which can include integers from 1-100, like 1-10,90-100 , which in this case would be the bottom 10 percent and the top 10 percent, respectively. In the example above, popularity=90-100 will search for tables with popularity 90% or higher, i.e. in the top 10 percent.
order - If you want to specify the ordering for the results, include this parameter. Provide a comma separated list for ordering by multiple fields and a preceding - indicates reverse order. Supported fields: ['description', 'name', 'popularity']. In the example above, -popularity will sort results in desc order by popularity.
search_name - If you want to specify a search term i.e. table name, include this parameter.
If you want to filter objects by last_queried_on, use these parameters -
last_queried_on__gte - gte stands for greater than or equal. You can also use gt, which is greater than.
last_queried_on__lte - lte stands for less than or equal. You can also use lt, which is less than.
Query Parameters
Name
Type
Description
popularity
String
A comma separated list of popularity ranges (inclusive) can include integers from 1-100.
order
String
Values: ['description', 'name', 'popularity'].
search_name
String
Enter the table name
last_queried_on__gte
String
Enter upper bound Date/Datetime (in UTC)
last_queried_on__lte
String
Enter lower bound Date/Datetime (in UTC)
page_size
String
Number of results to return per page.
{"count":1,"schema_count":1,"model_count":0,"next":null,"previous":null,"results": [ {"guid":"ta_kfxXdgsDoihByBFJ6g3XCY", #GUID for Table"database": {"guid":"db_GpL8TFT7Fij78t5CkDkr4x","data_source": {"guid":"ds_8dwHHgh72GXApBmdWTjmYQ","type":"snowflake","name":"Snowflake","last_ingested_on":"2022-12-02T15:17:43.892332Z","last_fully_ingested_on":"2022-12-02T15:13:47.673400Z","is_ingesting":false,"connection_status":"OK","connection_error_message":"","is_mode_discovery_db_added":null,"external_uuid":null,"iam_principal":null,"cloudformation_url":"","is_credentials_setup_incomplete":false,"processed_through": {"start_time": [ {"key":"start_time","date":"2022-12-02T06:52:29.870000-08:00" } ] } },"name":"OLIST","description":"This is a Brazilian ecommerce public dataset of orders made at Olist Store.","richtext_description":"{...}","schemata_count":6,"breadcrumbs": [ {"guid":"br_ZzK9mJPiBAXtxNWccWdgN7","target_guid":"ds_8dwHHgh72GXApBmdWTjmYQ","target_name":"Snowflake","target_object_type":"datasource","target_data_type":"snowflake","target_data_source_guid":"ds_8dwHHgh72GXApBmdWTjmYQ","target_data_source_type":"snowflake","ordinal":0 } ],"search_name":"OLIST" },"schema": {... },"technical_owner": {"object_type":"team","obj": {"guid":"te_W5LEtHQyu9Y8yzh85JazSD","name":"Engineering","members_count":14 } },"updates_on":null,"last_updated_on":"2022-04-17T12:33:24.511000Z","last_queried_on":"2022-12-02T10:03:07.446000Z", #Table last queried on Datetime"last_refreshed_on":null,"db_created_on":"2020-09-10T02:42:42.719000Z","popularity": {"timeframe":90,"user_count":4,"query_count":170,"service_query_count":517,"popularity":100,"ends_on":"2022-12-02" },"tags": [....]"updated_on": "2022-09-30T13:23:57.507452Z","created_on":"2021-07-22T16:08:10.654995Z","table_type":"table","data_type":"table","bytes":9049088,"row_count":99442,"is_hidden":false,"downstream_objects_counts": {... },"upstream_objects_counts": {... },"extra":null,"breadcrumbs": [ {... } ],"suggested_description_source":"unknown","suggested_description_source_object":null } ]}
{"detail":"You do not have permission to perform this action."}
<!doctype html><html lang="en"><head> <title>Not Found</title></head><body> <h1>Not Found</h1> <p>The requested resource was not found on this server.</p></body></html>
When you want to get the GUID for a list of tables with no usage, you can use the tables API command with no_popularity parameter.
no_popularity - If you want to search for tables with no usage, include this parameter. No popularity (popularity: null) means the table was not queried in the last 90 days or since the day Select Star started ingesting usage data.
search_name - If you want to specify a search term i.e. table name, include this parameter.
If you want to filter objects by updated_on, use these parameters -
updated_on__gte - gte stands for greater than or equal. You can also use gt, which is greater than.
updated_on__lte - lte stands for less than or equal. You can also use lt, which is less than.
Query Parameters
Name
Type
Description
no_popularity
Boolean
No value needed
search_name
String
Enter the table name
updated_on__gte
String
Enter upper bound Date/Datetime (in UTC)
updated_on__lte
String
Enter lower bound Date/Datetime (in UTC)
{"count":1,"schema_count":1,"model_count":0,"next":null,"previous":null,"results":[ {"guid":"ta_oAUa3ddfXwMQQ5hEXc5uue", #GUID of the Table"database":{"guid":"db_HdpA4kRmvVRzk5dNgXJF4b","data_source":{"guid":"ds_FR4y4JxHHhSpfHhkGMMDNN","type":"postgres","name":"Postgres","last_ingested_on":"2022-12-06T09:49:29.372114Z","last_fully_ingested_on":"2022-12-06T10:36:18.608792Z","is_ingesting":false,"connection_status":"OK","connection_error_message":"","is_mode_discovery_db_added":null,"external_uuid":null,"iam_principal":null,"cloudformation_url":"","is_credentials_setup_incomplete":false,"processed_through":{"start_time":[ {"key":"start_time","date":"2022-12-06T08:07:14+00:00" } ] } },"name":"olist","description":"...","richtext_description":"{...}","schemata_count":3,"breadcrumbs":[ {... } ],"search_name":"olist" },"schema":{... },.... },"name":"city_fields","search_name":"olist.analytics.city_fields","description":"Mention test Jakub Pyszka","richtext_description":"{...}","suggested_description":null,"created_by":null,"dsuser_created_by":{"guid":"du_LYsq6MoMjN2ux54yyaJVdR","display_name":null,"name":"postgres","data_source":{"guid":"ds_FR4y4JxHHhSpfHhkGMMDNN","type":"postgres","name":"Postgres","last_ingested_on":"2022-12-06T09:49:29.372114Z" } }, },"updates_on":null,"last_updated_on":null,"last_queried_on":"2022-07-07T01:16:53Z", #Table last queried on datetime"last_refreshed_on":null,"db_created_on":null,"columns":[ { ... } ],"popularity":null, #Popularity of the Table"tags":[ ],"tagged_items":[... ],"updated_on":"2022-06-07T13:46:59.740062Z", #Table updated on datetime"created_on":"2022-06-02T14:31:47.040289Z","table_type":"table","data_type":"table","bytes":null,"row_count":0,"is_hidden":false,"downstream_objects_counts":{"chart":0,"column":0,"dashboard":0,"dashboardelement":0,"explore":0,"explorefield":0,"lookmlfield":0,"lookmlview":0,"metabasecolumn":0,"metabasetable":0,"powerbicolumn":0,"powerbitable":0,"reportquery":0,"table":0,"tableaucolumn":0,"tableaudatasource":0,"tableaufield":0,"tableautable":0,"tableauview":0,"source_table":0,"total":0 },"upstream_objects_counts":{"chart":0,"column":0,"dashboard":0,"dashboardelement":0,"explore":0,"explorefield":0,"lookmlfield":0,"lookmlview":0,"metabasecolumn":0,"metabasetable":0,"powerbicolumn":0,"powerbitable":0,"reportquery":0,"table":0,"tableaucolumn":0,"tableaudatasource":0,"tableaufield":0,"tableautable":0,"tableauview":0,"source_table":0,"total":0 },"extra":null,"breadcrumbs":[... ],"suggested_description_source":"unknown","suggested_description_source_object":null }}
{"detail": "You do not have permission to perform this action."}
<!doctype html><htmllang="en"><head> <title>Not Found</title></head><body> <h1>Not Found</h1> <p>The requested resource was not found on this server.</p></body></html>
Lineage
To learn more about data lineage, see Data Lineage.
When you want to run an impact analysis for all the downstream tables and dashboards, prior to a code change in your ETL job, you can use the lineage API command.
max_depth - If you want to specify depth of lineage to load, use this parameter. Range includes 1 to 20 or you can specify the value as max. max is a special value that is used as alias for 20.
direction - If you want to specify which direction of lineage to load, use this parameter. If this field is skipped, source & downstream lineage will be calculated. In the example above, direction=right will display all the downstream lineage for the given table.
mode - If you want to limit lineage calculation to table or column only, use this parameter. This should reduce payload size as well as computation time but is not fully supported in all Lineage objects (e.g. Looker Lineage doesn't support it fully).
{"detail": "You do not have permission to perform this action."}
<!doctype html><htmllang="en"><head> <title>Not Found</title></head><body> <h1>Not Found</h1> <p>The requested resource was not found on this server.</p></body></html>
To create a user using the API, you must include userName, password, name and active. There are a number of optional parameters that can be set as well.
Query Parameters
Name
Type
Description
userName*
String
User's unique login identifier (email)
password*
String
Human readable password given by the customer and after being hashed by our system is stored as the user password.
name*
Object
contains a users's givenName and familyName
role
String
The role of the user, can be user, data_manager or admin
active*
Boolean
This should generally be set to true. If false, the user will not be able to login.