Tecton HTTP API (1.0)
Tecton provides a HTTP API to read feature data and perform administrative tasks. Please see the individual services below for more information on their function and how to use them.
Postman Definitions: You can also load our API definitions as a Postman Collection for use in Postman.
Tecton provides a low-latency feature server that exposes HTTP endpoints to retrieve feature values and metadata from the online store. These endpoints are typically used during model predictions. The feature servers retrieve data from the online store and perform any additional aggregations and filtering as necessary.
GetFeatures
Get Features API to retrieve feature values from Tecton's online store
Authorizations:
Request Body schema: application/jsonrequired
object (GetFeaturesParameters) Parameters for get-features. Exactly one of | |||||||||||||||||
|
Responses
Request samples
- Payload
{- "params": {
- "featureServiceName": "fraud_detection_feature_service",
- "workspaceName": "prod",
- "joinKeyMap": {
- "user_id": "A123",
- "ad_id": "5417"
}, - "requestContextMap": {
- "amount": 500
}, - "metadataOptions": {
- "includeSloInfo": true,
- "includeEffectiveTimes": true,
- "includeNames": true,
- "includeDataTypes": true,
- "includeServingStatus": true
}
}
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 503
- 504
{- "result": {
- "features": [
- true,
- null,
- null,
- null,
- "669",
- 58.349395161290275,
- 40.13619047619047,
- 59.59825688073392,
- 28941.299999999977,
- 842.8599999999999,
- 90946.93999999996,
- [
- "892054b9598370dce846bb6e4b5805a1",
- "cc9f13814a736160984bc9896222e4d9",
- "43a9799c961de6ebb22c122d8c7eb340"
]
]
}, - "metadata": {
- "features": [
- {
- "name": "transaction_amount_is_higher_than_average.transaction_amount_is_higher_than_average",
- "dataType": {
- "type": "boolean"
}, - "status": "PRESENT"
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_1d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "MISSING_DATA"
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_30d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "MISSING_DATA"
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_90d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "MISSING_DATA"
}, - {
- "name": "user_distinct_merchant_transaction_count_30d.distinct_merchant_transaction_count_30d",
- "effectiveTime": "2023-05-04T00:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1h_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_3d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1h_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_3d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_counts.transaction_id_last_3_1d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "array",
- "elementType": {
- "type": "string"
}
}, - "status": "PRESENT"
}
], - "sloInfo": {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.015835683,
- "dynamodbResponseSizeBytes": 23722,
- "serverTimeSeconds": 0.016889888,
- "storeMaxLatency": 0.02687345,
- "storeResponseSizeBytes": 23722
}
}
}
GetFeaturesBatch
Batch GetFeatures API to retrieve feature values in batch from Tecton's online store. The maximum batch size for a single batch request is 10. NOTE: This endpoint is only for feature services with Redis feature views.
Authorizations:
Request Body schema: application/jsonrequired
object (GetFeaturesBatchParameters) Parameters for get-features-batch. Exactly one of | |||||||||||
|
Responses
Request samples
- Payload
{- "params": {
- "featureServiceName": "fraud_detection_feature_service",
- "requestData": [
- {
- "joinKeyMap": {
- "user_uuid": "6c423390-9a64-52c8-9bb3-bbb108c74198"
}, - "requestContextMap": {
- "amount": 2000
}
}, - {
- "joinKeyMap": {
- "user_uuid": "6c423390-9a64-52c8-9bb3-bbb108c74198"
}, - "requestContextMap": {
- "amount": 500
}
}
], - "workspaceName": "prod",
- "metadataOptions": {
- "includeSloInfo": true,
- "includeEffectiveTimes": true,
- "includeNames": true,
- "includeDataTypes": true,
- "includeServingStatus": true
}
}
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 503
- 504
{- "result": [
- {
- "features": [
- null,
- null,
- null,
- "37",
- "3",
- "138",
- "307",
- "37",
- "3",
- "138"
]
}, - {
- "features": [
- null,
- null,
- null,
- "43",
- null,
- "128",
- "254",
- "43",
- null,
- "128"
]
}
], - "metadata": {
- "features": [
- {
- "name": "user_ad_impression_counts.impression_count_1d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "MISSING_DATA",
- "MISSING_DATA"
]
}, - {
- "name": "user_ad_impression_counts.impression_count_1h_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "MISSING_DATA",
- "MISSING_DATA"
]
}, - {
- "name": "user_ad_impression_counts.impression_count_3d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "MISSING_DATA",
- "MISSING_DATA"
]
}, - {
- "name": "user_click_counts.clicked_count_1d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_click_counts.clicked_count_1h_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "MISSING_DATA"
]
}, - {
- "name": "user_click_counts.clicked_count_3d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_distinct_ad_count_7d.distinct_ad_count",
- "effectiveTime": "2023-05-26T00:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_impression_counts.impression_count_1d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_impression_counts.impression_count_1h_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "MISSING_DATA"
]
}, - {
- "name": "user_impression_counts.impression_count_3d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}
], - "sloInfo": [
- {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.001231726,
- "dynamodbResponseSizeBytes": 1873,
- "serverTimeSeconds": 0.001231726,
- "storeMaxLatency": 0.000877174,
- "storeResponseSizeBytes": 1873
}, - {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.001329688,
- "dynamodbResponseSizeBytes": 1937,
- "serverTimeSeconds": 0.001329688,
- "storeMaxLatency": 0.000791104,
- "storeResponseSizeBytes": 1937
}
], - "batchSloInfo": {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.001329688,
- "serverTimeSeconds": 0.00181146,
- "storeMaxLatency": 0.000877174
}
}
}
Metadata
Get Metadata about the feature service from Tecton
Authorizations:
Request Body schema: application/jsonrequired
Returns metadata about a FeatureService, including the schema for join keys and request context, as well as the in-order output schema of returned feature values.
object (FeatureServiceLocator) | |||||||
|
Responses
Request samples
- Payload
{- "params": {
- "featureServiceName": "fraud_detection_feature_service",
- "workspaceName": "prod"
}
}
Response samples
- 200
- 401
- 403
- 404
- 429
- 503
- 504
{- "featureServiceType": "DEFAULT",
- "inputJoinKeys": [
- {
- "name": "user_id",
- "dataType": {
- "type": "string"
}
}, - {
- "name": "merchant",
- "dataType": {
- "type": "string"
}
}
], - "inputRequestContextKeys": [
- {
- "name": "amt",
- "dataType": {
- "type": "float64"
}
}
], - "featureValues": [
- {
- "name": "transaction_amount_is_higher_than_average.transaction_amount_is_higher_than_average",
- "dataType": {
- "type": "boolean"
}
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_1d_1d",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_30d_1d",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_90d_1d",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_distinct_merchant_transaction_count_30d.distinct_merchant_transaction_count_30d",
- "dataType": {
- "type": "int64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1h_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_3d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1h_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_3d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_counts.transaction_id_last_3_1d_1d",
- "dataType": {
- "type": "array",
- "elementType": {
- "type": "string"
}
}
}
]
}
The Ingestion Service, or Stream Ingest API, is an endpoint to ingest or update features in the Tecton Feature Store with sub-second latency. Records sent to the Stream Ingest API are immediately written to the Tecton Feature Store and made available for training and inference. The Stream Ingest API seamlessly integrates with Rift, Tecton's managed compute engine, to optionally execute feature transformations.
Ingest records
Submit feature data as records to be written into the Tecton Feature Store
Authorizations:
Request Body schema: application/jsonrequired
workspaceName required | string Workspace containing the target Tecton Feature Store. Snake case |
dryRun required | boolean Dry-run flag. Enable to issue a request without persisting data to online or offline stores.Snake-case |
records required | object Each key-value pair in this Limits: Each stream source came can be mapped to a maximum of 10 records to be ingested. |
Responses
Request samples
- Payload
{- "workspaceName": "my_workspace",
- "dryRun": false,
- "records": {
- "stream_source_1": [
- {
- "record": {
- "timestamp": "2024-01-01T00:00:01Z",
- "user_id": "123",
- "value": 1
}
}, - {
- "record": {
- "timestamp": "2024-01-01T00:00:02Z",
- "user_id": "123",
- "value": 2
}
}
], - "stream_source_2": [
- {
- "record": {
- "timestamp": "2024-01-01T00:00:03Z",
- "user_id": "456",
- "value": 3
}
}, - {
- "record": {
- "timestamp": "2024-01-01T00:00:04Z",
- "user_id": "456",
- "value": 4
}
}
]
}
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "workspaceName": "my_workspace",
- "ingestMetrics": {
- "featureViewIngestMetrics": [
- {
- "featureViewName": "my_feature_view",
- "onlineRecordIngestCount": "10",
- "featureViewId": "12341234123412341234123412341234"
}
]
}
}
Tecton's SCIM implementation allows you to control provisioning of users, service accounts, groups, group memberships and access controls from within your Identity Provider so that you can manage onboarding and guarantee off-boarding through your existing processes.
The SCIM API contains resources for users, groups and service accounts. While group memberships are returned on all resources, they are modifiable on the Groups resources. Role assignments are manageable directly on the Users, Groups and Service Accounts resources.
⚠️ Private Preview
Note that this API is currently in Private Preview. To learn more, please contact your Tecton representative.
Groups - Get all groups
Retrieve information on all Tecton Groups. Note that role assignments and members are not returned for each group (call "Get a group" instead). Implements RFC-7644 section 3.4.2.
Authorizations:
query Parameters
filter | string An optional filter. Filtering by displayName with the equality operator is the only supported filter
(e.g. |
startIndex | integer <int64> This represents the 1-based index of the first query result. A value less than 1 SHALL be interpreted as 1. Default is 1. See here for information on pagination. |
count | integer <int64> Specifies the desired maximum number of query results per page. Non-negative integer. Less than 0 is treated as 0. No default value. |
sortBy | string Sorting is optional. See here for more information on this field. |
sortOrder | string Allowed values are |
Responses
Response samples
- 200
- 401
- 403
{- "schemas": [
- "string"
], - "startIndex": 0,
- "itemsPerPage": 0,
- "totalResults": 0,
- "Resources": [
- {
- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "displayName": "string",
- "urn:ietf:params:scim:schemas:extension:tecton:1.0:Group": {
- "description": "string",
- "idpMappingNames": [
- "string"
]
}
}
]
}
Groups - Create a group
Create a new group. Note that displayName
must be unique.
See: Creating Resources.
Authorizations:
Request Body schema: application/jsonrequired
schemas | Array of strings Expected to be |
object (scimResourceMeta) A complex attribute containing resource metadata. This is optional on requests. See the specification. | |
displayName | string A human-readable name for the Group. It must be unique. |
Array of objects (scimAttributeMember) A list of members of the Group. | |
Array of objects (scimAttributeRole) The roles directly assigned to the group. | |
object (scimGroupExtension) |
Responses
Request samples
- Payload
{- "schemas": [
- "string"
], - "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "displayName": "string",
- "members": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
], - "urn:ietf:params:scim:schemas:extension:tecton:1.0:Group": {
- "description": "string",
- "idpMappingNames": [
- "string"
]
}
}
Response samples
- 201
- 401
- 403
- 409
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "displayName": "string",
- "members": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
], - "urn:ietf:params:scim:schemas:extension:tecton:1.0:Group": {
- "description": "string",
- "idpMappingNames": [
- "string"
]
}
}
Groups - Get a group
Retrieve information on a Tecton Group. Implements RFC-7644 section 3.4.1.
Authorizations:
path Parameters
id required | string A unique identifier for the Group as defined by Tecton. |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "displayName": "string",
- "members": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
], - "urn:ietf:params:scim:schemas:extension:tecton:1.0:Group": {
- "description": "string",
- "idpMappingNames": [
- "string"
]
}
}
Groups - Delete a group
See: Deleting Resources.
Authorizations:
path Parameters
id required | string A unique identifier for the Group as defined by Tecton. |
Responses
Response samples
- 204
- 401
- 403
- 404
{ }
Groups - Replace a group
Update a Group (i.e. update their displayName, description, members and/or roles). See: Replacing with PUT.
Authorizations:
path Parameters
id required | string A unique identifier for the Group as defined by Tecton. |
Request Body schema: application/jsonrequired
schemas | Array of strings Expected to be |
object (scimResourceMeta) A complex attribute containing resource metadata. This is optional on requests. See the specification. | |
displayName | string A human-readable name for the Group. It must be unique. |
Array of objects (scimAttributeMember) A list of members of the Group. | |
Array of objects (scimAttributeRole) The roles directly assigned to the group. | |
object (scimGroupExtension) |
Responses
Request samples
- Payload
{- "schemas": [
- "string"
], - "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "displayName": "string",
- "members": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
], - "urn:ietf:params:scim:schemas:extension:tecton:1.0:Group": {
- "description": "string",
- "idpMappingNames": [
- "string"
]
}
}
Response samples
- 200
- 401
- 403
- 404
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "displayName": "string",
- "members": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
], - "urn:ietf:params:scim:schemas:extension:tecton:1.0:Group": {
- "description": "string",
- "idpMappingNames": [
- "string"
]
}
}
Service Accounts - Get all service accounts
Note that role assignments and memberships are not returned for each service account (call "Get a service account" instead). See: Query Resources.
Authorizations:
query Parameters
filter | string An optional filter. Filtering by name with the equality operator is the only supported filter
(e.g. |
startIndex | integer <int64> This represents the 1-based index of the first query result. A value less than 1 SHALL be interpreted as 1. Default is 1. See here for information on pagination. |
count | integer <int64> Specifies the desired maximum number of query results per page. Non-negative integer. Less than 0 is treated as 0. No default value. |
sortBy | string Sorting is optional. See here for more information on this field. |
sortOrder | string Allowed values are |
Responses
Response samples
- 200
- 401
- 403
{- "schemas": [
- "string"
], - "startIndex": 0,
- "itemsPerPage": 0,
- "totalResults": 0,
- "Resources": [
- {
- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "name": "string",
- "active": true,
- "description": "string"
}
]
}
Service Accounts - Create a service account
Create a new Service Account. Note that the name must be unique. Group memberships must be set after the service account is created. See: Creating Resources.
Authorizations:
Request Body schema: application/jsonrequired
schemas | Array of strings Expected to be |
object (scimResourceMeta) A complex attribute containing resource metadata. This is optional on requests. See the specification. | |
name | string The Service Account's name. The name must be unique. It is editable. |
active | boolean Whether the Service Account is active or not. Setting a Service Account as inactive will preserve their group memberships and role assignments. Inactive Service Accounts can not call Tecton APIs. Inactive Service Accounts may be reactivated by setting active to true. |
description | string Text to describe the Service Account, typically what the Service Account is used for. |
Array of objects (scimAttributeRole) The roles directly assigned to the service account. |
Responses
Request samples
- Payload
{- "schemas": [
- "string"
], - "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "name": "string",
- "active": true,
- "description": "string",
- "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Response samples
- 201
- 401
- 403
- 409
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "name": "string",
- "active": true,
- "description": "string",
- "apiKey": "string",
- "groups": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Service Accounts - Get a service account
Implements Retrieving a Known Resource from the SCIM protocol specification for Tecton service accounts.
Authorizations:
path Parameters
id required | string A unique identifier for the Service Account as defined by Tecton. |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "name": "string",
- "active": true,
- "description": "string",
- "groups": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Service Accounts - Delete a service account
See: Deleting Resources.
Authorizations:
path Parameters
id required | string A unique identifier for the Service Account as defined by Tecton. |
Responses
Response samples
- 204
- 401
- 403
- 404
{ }
Service Accounts - Replace a service account
Update a Service Account (i.e. update their name, description, active and/or roles). See: Replacing with PUT.
Authorizations:
path Parameters
id required | string A unique identifier the Service Account as defined by Tecton. |
Request Body schema: application/jsonrequired
schemas | Array of strings Expected to be |
object (scimResourceMeta) A complex attribute containing resource metadata. This is optional on requests. See the specification. | |
name | string The Service Account's name. The name is unique. It is editable. |
active | boolean Whether the Service Account is active or not. Setting a Service Account as inactive will preserve their group memberships and role assignments. Inactive Service Accounts can not call Tecton APIs. Inactive Service Accounts may be reactivated by setting active to true. |
description | string Text to describe the Service Account, typically what the Service Account is used for. |
Array of objects (scimAttributeRole) The roles directly assigned to the service account. This property is editable. |
Responses
Request samples
- Payload
{- "schemas": [
- "string"
], - "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "name": "string",
- "active": true,
- "description": "string",
- "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Response samples
- 200
- 401
- 403
- 404
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "name": "string",
- "active": true,
- "description": "string",
- "groups": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Users - Get all users
Implements Query Resources for users from the SCIM protocol specification. Note that role assignments and memberships are not returned for each user (call "Get a user" instead).
Authorizations:
query Parameters
filter | string See filtering logic in SCIM specification.
Tecton only supports "equality" filtering at this time, e.g. |
startIndex | integer <int64> This represents the 1-based index of the first query result. A value less than 1 SHALL be interpreted as 1. Default is 1. See here for information on pagination. |
count | integer <int64> Specifies the desired maximum number of query results per page. Must be non-negative: negative numbers will be treated as 0. No default value. |
sortBy | string Sorting is optional. See here for more information on this field. |
sortOrder | string Allowed values are |
Responses
Response samples
- 200
- 401
- 403
{- "schemas": [
- "string"
], - "startIndex": 0,
- "itemsPerPage": 0,
- "totalResults": 0,
- "Resources": [
- {
- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "userName": "string",
- "name": {
- "familyName": "string",
- "givenName": "string"
}, - "active": true,
- "emails": [
- {
- "type": "string",
- "primary": true,
- "value": "string"
}
]
}
]
}
Users - Create a user
Create a new user. Note that the userName must be an email and must be unique. Group memberships must be set after the user is created. See: Creating Resources.
Authorizations:
Request Body schema: application/jsonrequired
schemas | Array of strings Expected to be |
object (scimResourceMeta) A complex attribute containing resource metadata. This is optional on requests. See the specification. | |
userName | string A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider. This attribute is required and is case-sensitive. In Tecton, this must be an email. |
object (scimUserName) The components of the user's name. See the specification. | |
active | boolean A Boolean value indicating the user's administrative status. True means the user is able to log in. Tecton does not have a concept of inactive users; instead, they will be deleted. |
Array of objects (scimAttributeEmail) The user's email. Only a single primary email is supported and others will be ignored. | |
Array of objects (scimAttributeRole) The roles directly assigned to the user. |
Responses
Request samples
- Payload
{- "schemas": [
- "string"
], - "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "userName": "string",
- "name": {
- "familyName": "string",
- "givenName": "string"
}, - "active": true,
- "emails": [
- {
- "type": "string",
- "primary": true,
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Response samples
- 201
- 401
- 403
- 409
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "userName": "string",
- "name": {
- "familyName": "string",
- "givenName": "string"
}, - "active": true,
- "emails": [
- {
- "type": "string",
- "primary": true,
- "value": "string"
}
], - "groups": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Users - Get a user
Implements Retrieving a Known Resource from the SCIM protocol specification.
Authorizations:
path Parameters
id required | string A unique identifier for the User as defined by Tecton. |
Responses
Response samples
- 200
- 401
- 403
- 404
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "userName": "string",
- "name": {
- "familyName": "string",
- "givenName": "string"
}, - "active": true,
- "emails": [
- {
- "type": "string",
- "primary": true,
- "value": "string"
}
], - "groups": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Users - Delete a user
See: Deleting Resources.
Authorizations:
path Parameters
id required | string A unique identifier for the User as defined by Tecton. |
Responses
Response samples
- 204
- 401
- 403
- 404
{ }
Users - Replace a user
Update a user (i.e. update their roles).
Note that setting a user to active: false
will delete the user from Tecton
and all of their role assignments and group memberships will be removed.
See: Replacing with PUT.
Authorizations:
path Parameters
id required | string A unique identifier for the User as defined by Tecton. |
Request Body schema: application/jsonrequired
schemas | Array of strings Expected to be |
object (scimResourceMeta) A complex attribute containing resource metadata. This is optional on requests. See the specification. | |
userName | string A service provider's unique identifier for the user, typically used by the user to directly authenticate to the service provider. This attribute is required and is case-sensitive. In Tecton, this must be an email. |
object (scimUserName) The components of the user's name. See the specification. | |
active | boolean A Boolean value indicating the user's administrative status. True means the user is able to log in. Tecton does not have a concept of inactive users; instead, they will be deleted. |
Array of objects (scimAttributeEmail) The user's email. Only a single primary email is supported and others will be ignored. | |
Array of objects (scimAttributeRole) The roles directly assigned to the user. |
Responses
Request samples
- Payload
{- "schemas": [
- "string"
], - "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "userName": "string",
- "name": {
- "familyName": "string",
- "givenName": "string"
}, - "active": true,
- "emails": [
- {
- "type": "string",
- "primary": true,
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Response samples
- 200
- 401
- 403
- 404
{- "schemas": [
- "string"
], - "id": "string",
- "meta": {
- "resourceType": "string",
- "created": "string",
- "lastModified": "string"
}, - "userName": "string",
- "name": {
- "familyName": "string",
- "givenName": "string"
}, - "active": true,
- "emails": [
- {
- "type": "string",
- "primary": true,
- "value": "string"
}
], - "groups": [
- {
- "type": "string",
- "display": "string",
- "value": "string"
}
], - "roles": [
- {
- "type": "string",
- "value": "string"
}
]
}
Tecton Secrets provides a way to store and retrieve secrets for use in your feature pipelines and data sources. This API allows you to securely store and delete secrets in Tecton, as well as create, list, and delete the scopes these secrets belong to.
💡 Private Preview
Note that this API is currently in private preview. To request access, please contact your Tecton representative.
Assign role(s) on secret scope(s)
Make one or more role assignments to grant principals roles on Secret Scopes. Grant a user, service account, or group a role to allow them to read or update secrets in the scope. Grant a workspace a role to apply objects and materialize features using secrets in the scope.
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (authAssignment) | |||||||||||
Array
|
Responses
Request samples
- Payload
{- "assignments": [
- {
- "principal_type": "PRINCIPAL_TYPE_WORKSPACE",
- "principal_id": "my-workspace",
- "resource_type": "RESOURCE_TYPE_SECRET_SCOPE",
- "resource_id": "my-secret-scope",
- "role": "read_scope_role"
}
]
}
Response samples
- 200
- 401
- 403
{ }
View principals with access to a secret scope
View all principals and their role assignments on a particular secret scope
Authorizations:
Request Body schema: application/jsonrequired
resourceType | string (authResourceType) Value: "RESOURCE_TYPE_SECRET_SCOPE" |
resourceId | string Secret scope name |
roles | Array of strings (optional) Optional list containing a subset of |
principalTypes | Array of strings (optional) Items Enum: "PRINCIPAL_TYPE_USER" "PRINCIPAL_TYPE_SERVICE_ACCOUNT" "PRINCIPAL_TYPE_GROUP" "PRINCIPAL_TYPE_WORKSPACE" |
Responses
Request samples
- Payload
{- "resource_type": "RESOURCE_TYPE_SECRET_SCOPE",
- "resource_id": "my-secret-scope",
- "principal_types": [
- "PRINCIPAL_TYPE_SERVICE_ACCOUNT"
]
}
Response samples
- 200
- 401
- 403
{- "assignments": [
- {
- "principal": {
- "service_account": {
- "id": "98be6e950d8c4b14aeb32f48b20a9245",
- "name": "my-service-account",
- "description": "desc",
- "is_active": true,
- "creator": {
- "principal_type": "PRINCIPAL_TYPE_USER",
- "id": "user-id"
}
}
}, - "role_assignments": [
- {
- "resource_type": "RESOURCE_TYPE_SECRET_SCOPE",
- "resource_id": "my-secret-scope",
- "roles_granted": [
- {
- "role": "read_scope_role",
- "role_assignment_sources": [
- {
- "assignment_type": "ROLE_ASSIGNMENT_TYPE_DIRECT"
}
]
}
]
}
]
}
]
}
View a principal's role(s) on secret scope(s)
View roles granted to a particular User, Service Account, Principal Group, or Workspace on Secret Scopes.
Authorizations:
Request Body schema: application/jsonrequired
principalType | string (authPrincipalType) Enum: "PRINCIPAL_TYPE_USER" "PRINCIPAL_TYPE_SERVICE_ACCOUNT" "PRINCIPAL_TYPE_GROUP" "PRINCIPAL_TYPE_WORKSPACE" |
principalId | string User ID, Service Account ID, Group ID, or Workspace name |
resourceType | string (authResourceType) Value: "RESOURCE_TYPE_SECRET_SCOPE" |
resourceIds | Array of strings (optional) Optional list of secret scope names |
roles | Array of strings (optional) Optional list containing a subset of |
Responses
Request samples
- Payload
{- "principal_type": "PRINCIPAL_TYPE_SERVICE_ACCOUNT",
- "principal_id": "service-account-id",
- "resource_type": "RESOURCE_TYPE_SECRET_SCOPE"
}
Response samples
- 200
- 401
- 403
{- "assignments": [
- {
- "resource_type": "RESOURCE_TYPE_SECRET_SCOPE",
- "resource_id": "my-secret-scope",
- "roles_granted": [
- {
- "role": "write_scope_role",
- "role_assignment_sources": [
- {
- "assignment_type": "ROLE_ASSIGNMENT_TYPE_DIRECT"
}
]
}
]
}
]
}
Unassign role(s) on secret scope(s)
Remove one or more role assignments to revoke principals' roles on Secret Scopes
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (authAssignment) | |||||||||||
Array
|
Responses
Request samples
- Payload
{- "assignments": [
- {
- "principal_type": "PRINCIPAL_TYPE_WORKSPACE",
- "principal_id": "my-workspace",
- "resource_type": "RESOURCE_TYPE_SECRET_SCOPE",
- "resource_id": "my-secret-scope",
- "role": "read_scope_role"
}
]
}
Response samples
- 200
- 401
- 403
{ }
Delete a secret
Deletes a secret key/value pair within a secret scope. This operation will immediately delete the secret key/value pair with no grace period.
Authorizations:
path Parameters
scope required | string |
key required | string |
Responses
Response samples
- 200
- 401
- 403
{ }
Put a secret value
Puts a secret value in a secret scope with a given key and value. Note that this operation is idempotent: it will create the secret key/value pair if the key does not exist, and it will overwrite an existing value if the key does exist. It will not return an error if the key and value are already present.
Therefore, this operation can be called multiple times without error.
Authorizations:
path Parameters
scope required | string |
key required | string |
Request Body schema: application/jsonrequired
value | string |
Responses
Request samples
- Payload
{- "value": "shhh"
}
Response samples
- 200
- 401
- 403
{ }
Tecton Service Accounts can authenticate requests to Feature Service using either long-lived API keys or OAuth 2.0 client credentials with access tokens. For Service Accounts with OAuth credentials, the client secrets used to generate access tokens can also be rotated via HTTP APIs.
Use these API endpoints to manage your Service Accounts. For full usage instructions, see this page.
⚠️ Private Preview
Note that OAuth Service Accounts is currently in Private Preview. To learn more, please contact your Tecton representative.
Create a service account
Create a new Service Account.
Service Accounts can be created using one of two possible authentication methods:
- The API Key option provides a single randomly generated key (returned in the
'api_key'
field). - The Client Credentials option provides an OAuth client with its client id (returned in the
'id'
field) and client secret (returned in the'client_secret'
field).
Note that the Service Account name must be unique.
Authorizations:
Request Body schema: application/jsonrequired
name | string The Service Account's display name. The name must be unique. It is editable. |
description | string Text to describe the Service Account, typically what the Service Account is used for. It is editable. |
credentialsType | string (dataServiceAccountCredentialsType) Enum: "SERVICE_ACCOUNT_CREDENTIALS_TYPE_API_KEY" "SERVICE_ACCOUNT_CREDENTIALS_TYPE_OAUTH_CLIENT_CREDENTIALS" Authentication method assigned to a Service Account.
|
Responses
Request samples
- Payload
{- "name": "my-service-account",
- "description": "description of my-service-account",
- "credentials_type": "SERVICE_ACCOUNT_CREDENTIALS_TYPE_OAUTH_CLIENT_CREDENTIALS"
}
Response samples
- 200
- 400
- 401
- 403
{- "id": "0oa1a45o42rZDl3g4358",
- "name": "my-service-account",
- "description": "description of my-service-account",
- "is_active": true,
- "created_at": "2024-12-05T16:40:23.674137Z",
- "credentials_type": "SERVICE_ACCOUNT_CREDENTIALS_TYPE_OAUTH_CLIENT_CREDENTIALS",
- "client_secret": "XDuLEgl_uxbhuQMowe8VrD_WC15en_659NQ7tThj0n7rb3aSrpKcp3saxF0pYv_w"
}
Delete a service account
Delete an existing Service Account. Note that Service Accounts must be deactivated before deletion.
Authorizations:
Request Body schema: application/jsonrequired
id | string Unique identifier of the Service Account as defined by Tecton. |
Responses
Request samples
- Payload
{- "id": "0oa1a45o42rZDl3g4358"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{ }
Get multiple service accounts
Retrieve multiple Service Accounts filtering by name, description or id.
Authorizations:
Request Body schema: application/jsonrequired
search | string Search string filter that partially matches the name, description, or id of Service Accounts. Note that matches are case-insensitive. |
ids | Array of strings List of Service Accounts ids to be included in the search. If the list is null then all Service Accounts are included. |
Responses
Request samples
- Payload
{- "search": "my",
- "ids": [
- "0oa1a45o42rZDl3g4358",
- "d3a38a4be4bc45a58c8223ae57b0d267"
]
}
Response samples
- 200
- 401
- 403
{- "service_accounts": [
- {
- "id": "0oa1a45o42rZDl3g4358",
- "name": "my-service-account",
- "description": "description of my-service-account",
- "is_active": true,
- "created_by": {
- "user": {
- "okta_id": "00u18938zqdN98Gzq358",
- "first_name": "FirstName",
- "last_name": "LastName",
- "login_email": "firstname.lastname@tecton.ai"
}
}, - "created_at": "2024-12-05T18:46:50.927807Z",
- "credentials_type": "SERVICE_ACCOUNT_CREDENTIALS_TYPE_OAUTH_CLIENT_CREDENTIALS"
}, - {
- "id": "d3a38a4be4bc45a58c8223ae57b0d267",
- "name": "my-service-account-api-key",
- "description": "description of my-service-account-api-key",
- "is_active": true,
- "created_by": {
- "user": {
- "okta_id": "00u18938zqdN98Gzq358",
- "first_name": "FirstName",
- "last_name": "LastName",
- "login_email": "firstname.lastname@tecton.ai"
}
}, - "created_at": "2024-12-06T05:57:40.428939Z",
- "credentials_type": "SERVICE_ACCOUNT_CREDENTIALS_TYPE_API_KEY"
}
]
}
Update a service account
Update a Service Account (i.e. update their name, description, active status). Note that updating the active status of a Service Account triggers its activation or deactivation.
Authorizations:
Request Body schema: application/jsonrequired
id | string Unique identifier of the Service Account as defined by Tecton. |
name | string The Service Account's display name. The name must be unique. |
description | string Text to describe the Service Account, typically what the Service Account is used for. |
isActive | boolean Whether the Service Account is to be activated or deactivated.
Setting a Service Account as inactive will preserve their group memberships and role assignments. Inactive Service Accounts can not call Tecton APIs. Inactive Service Accounts may be reactivated by setting active to true. |
Responses
Request samples
- Payload
{- "id": "0oa1a45o42rZDl3g4358",
- "name": "updated-my-service-account",
- "description": "updated description of my-service-account",
- "is_active": true
}
Response samples
- 200
- 401
- 403
- 404
{- "id": "0oa1a45o42rZDl3g4358",
- "name": "updated-my-service-account",
- "description": "updated description of my-service-account",
- "is_active": true,
- "created_at": "2024-12-06T06:47:28.184810Z"
}
Activate a client secret
Activate a single client secret of a Service Account with OAuth credentials. Note that this endpoint can only be called for Service Accounts with OAuth credentials.
Authorizations:
Request Body schema: application/jsonrequired
serviceAccountId | string |
secretId | string |
Responses
Request samples
- Payload
{- "service_account_id": "0oa1a45o42rZDl3g4358",
- "secret_id": "ocs1di9xhlvn2shQU358"
}
Response samples
- 200
- 401
- 403
- 404
{- "secret": {
- "secret_id": "ocs1di9xhlvn2shQU358",
- "created_at": "2024-11-28T06:21:10.000Z",
- "updated_at": "2024-12-30T06:21:10.000Z",
- "status": "ACTIVE",
- "masked_secret": "************hbDU"
}
}
Create a client secret
Create a new client secret for a Service Account with OAuth credentials. Please save the secret value. It will never be displayed again. Note that this endpoint can only be called for Service Accounts with OAuth credentials.
Authorizations:
Request Body schema: application/jsonrequired
id | string (Service Account ID) |
Responses
Request samples
- Payload
{- "id": "0oa1a45o42rZDl3g4358"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "secret": {
- "secret_id": "ocs1di9xhlvn2shQU358",
- "created_at": "2024-11-28T06:21:10.000Z",
- "status": "ACTIVE",
- "secret": "VKm812sgpyj-DordNyGbe8vTA4se_x1z4nDiXomBO1ByMOYVPH9C4JBJOLEFhbDU"
}
}
Deactivate a client secret
Deactivate a single client secret of a Service Account with OAuth credentials. Note that this endpoint can only be called for Service Accounts with OAuth credentials.
Authorizations:
Request Body schema: application/jsonrequired
serviceAccountId | string |
secretId | string |
Responses
Request samples
- Payload
{- "service_account_id": "0oa1a45o42rZDl3g4358",
- "secret_id": "ocs1di9xhlvn2shQU358"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{- "secret": {
- "secret_id": "ocs1di9xhlvn2shQU358",
- "created_at": "2024-11-28T06:21:10.000Z",
- "updated_at": "2024-12-30T06:21:10.000Z",
- "status": "ACTIVE",
- "masked_secret": "************hbDU"
}
}
Delete a client secret
Delete a single client secret of a Service Account with OAuth credentials. The client secret must be deactivated first before deletion. Note that this endpoint can only be called for Service Accounts with OAuth credentials.
Authorizations:
Request Body schema: application/jsonrequired
serviceAccountId | string |
secretId | string |
Responses
Request samples
- Payload
{- "service_account_id": "0oa1a45o42rZDl3g4358",
- "secret_id": "ocs1di9xhlvn2shQU358"
}
Response samples
- 200
- 400
- 401
- 403
- 404
{ }
List all client secrets
Retrieve all the client secrets of a Service Account with OAuth credentials. Secret values cannot be retrieved, only masked values. Note that this endpoint can only be called for Service Accounts with OAuth credentials.
Authorizations:
Request Body schema: application/jsonrequired
id | string (Service Account ID) |
Responses
Request samples
- Payload
{- "id": "0oa1a45o42rZDl3g4358"
}
Response samples
- 200
- 401
- 403
- 404
{- "clientSecrets": [
- {
- "secret_id": "ocs1di9xhlvn2shQU358",
- "created_at": "2024-11-28T06:21:10.000Z",
- "updated_at": "2024-12-30T06:21:10.000Z",
- "status": "ACTIVE",
- "masked_secret": "************hbDU"
}
]
}
GetFeaturesV2
Get Features V2 API to retrieve feature values from Tecton's online store
Authorizations:
path Parameters
params.workspaceName required | string |
params.featureServiceName required | string FeatureService name. Exactly one of this field and |
Request Body schema: application/jsonrequired
object (GetFeaturesParametersV2)
| |||||||||||
|
Responses
Request samples
- Payload
{- "params": {
- "featureServiceName": "fraud_detection_feature_service",
- "workspaceName": "prod",
- "joinKeyMap": {
- "user_id": "A123",
- "ad_id": "5417"
}, - "requestContextMap": {
- "amount": 500
}, - "metadataOptions": {
- "includeSloInfo": true,
- "includeEffectiveTimes": true,
- "includeNames": true,
- "includeDataTypes": true,
- "includeServingStatus": true
}
}
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 503
- 504
{- "result": {
- "features": [
- true,
- null,
- null,
- null,
- "669",
- 58.349395161290275,
- 40.13619047619047,
- 59.59825688073392,
- 28941.299999999977,
- 842.8599999999999,
- 90946.93999999996,
- [
- "892054b9598370dce846bb6e4b5805a1",
- "cc9f13814a736160984bc9896222e4d9",
- "43a9799c961de6ebb22c122d8c7eb340"
]
]
}, - "metadata": {
- "features": [
- {
- "name": "transaction_amount_is_higher_than_average.transaction_amount_is_higher_than_average",
- "dataType": {
- "type": "boolean"
}, - "status": "PRESENT"
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_1d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "MISSING_DATA"
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_30d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "MISSING_DATA"
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_90d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "MISSING_DATA"
}, - {
- "name": "user_distinct_merchant_transaction_count_30d.distinct_merchant_transaction_count_30d",
- "effectiveTime": "2023-05-04T00:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1h_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_3d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1h_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_3d_10m",
- "effectiveTime": "2023-05-04T15:50:00Z",
- "dataType": {
- "type": "float64"
}, - "status": "PRESENT"
}, - {
- "name": "user_transaction_counts.transaction_id_last_3_1d_1d",
- "effectiveTime": "2023-05-03T00:00:00Z",
- "dataType": {
- "type": "array",
- "elementType": {
- "type": "string"
}
}, - "status": "PRESENT"
}
], - "sloInfo": {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.015835683,
- "dynamodbResponseSizeBytes": 23722,
- "serverTimeSeconds": 0.016889888,
- "storeMaxLatency": 0.02687345,
- "storeResponseSizeBytes": 23722
}
}
}
GetFeaturesBatchV2
Batch GetFeatures v2 API to retrieve feature values in batch from Tecton's online store. The maximum batch size for a single batch request is 10. NOTE: This endpoint is only for feature services with Redis feature views.
Authorizations:
path Parameters
params.workspaceName required | string |
params.featureServiceName required | string FeatureService name. Exactly one of this field and |
Request Body schema: application/jsonrequired
object (GetFeaturesBatchParameters) Parameters for get-features-batch-v2.
| |||||
|
Responses
Request samples
- Payload
{- "params": {
- "featureServiceName": "fraud_detection_feature_service",
- "requestData": [
- {
- "joinKeyMap": {
- "user_uuid": "6c423390-9a64-52c8-9bb3-bbb108c74198"
}, - "requestContextMap": {
- "amount": 2000
}
}, - {
- "joinKeyMap": {
- "user_uuid": "6c423390-9a64-52c8-9bb3-bbb108c74198"
}, - "requestContextMap": {
- "amount": 500
}
}
], - "workspaceName": "prod",
- "metadataOptions": {
- "includeSloInfo": true,
- "includeEffectiveTimes": true,
- "includeNames": true,
- "includeDataTypes": true,
- "includeServingStatus": true
}
}
}
Response samples
- 200
- 400
- 401
- 403
- 404
- 429
- 503
- 504
{- "result": [
- {
- "features": [
- null,
- null,
- null,
- "37",
- "3",
- "138",
- "307",
- "37",
- "3",
- "138"
]
}, - {
- "features": [
- null,
- null,
- null,
- "43",
- null,
- "128",
- "254",
- "43",
- null,
- "128"
]
}
], - "metadata": {
- "features": [
- {
- "name": "user_ad_impression_counts.impression_count_1d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "MISSING_DATA",
- "MISSING_DATA"
]
}, - {
- "name": "user_ad_impression_counts.impression_count_1h_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "MISSING_DATA",
- "MISSING_DATA"
]
}, - {
- "name": "user_ad_impression_counts.impression_count_3d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "MISSING_DATA",
- "MISSING_DATA"
]
}, - {
- "name": "user_click_counts.clicked_count_1d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_click_counts.clicked_count_1h_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "MISSING_DATA"
]
}, - {
- "name": "user_click_counts.clicked_count_3d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_distinct_ad_count_7d.distinct_ad_count",
- "effectiveTime": "2023-05-26T00:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_impression_counts.impression_count_1d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}, - {
- "name": "user_impression_counts.impression_count_1h_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "MISSING_DATA"
]
}, - {
- "name": "user_impression_counts.impression_count_3d_1h",
- "effectiveTime": "2023-05-26T18:00:00Z",
- "dataType": {
- "type": "int64"
}, - "status": [
- "PRESENT",
- "PRESENT"
]
}
], - "sloInfo": [
- {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.001231726,
- "dynamodbResponseSizeBytes": 1873,
- "serverTimeSeconds": 0.001231726,
- "storeMaxLatency": 0.000877174,
- "storeResponseSizeBytes": 1873
}, - {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.001329688,
- "dynamodbResponseSizeBytes": 1937,
- "serverTimeSeconds": 0.001329688,
- "storeMaxLatency": 0.000791104,
- "storeResponseSizeBytes": 1937
}
], - "batchSloInfo": {
- "sloEligible": true,
- "sloServerTimeSeconds": 0.001329688,
- "serverTimeSeconds": 0.00181146,
- "storeMaxLatency": 0.000877174
}
}
}
ServiceMetadataV2
Get Metadata V2 API about the feature service from Tecton
Authorizations:
path Parameters
workspaceName required | string Workspace name. |
featureServiceName required | string The name of the feature service |
Responses
Response samples
- 200
- 401
- 403
- 404
- 429
- 503
- 504
{- "featureServiceType": "DEFAULT",
- "inputJoinKeys": [
- {
- "name": "user_id",
- "dataType": {
- "type": "string"
}
}, - {
- "name": "merchant",
- "dataType": {
- "type": "string"
}
}
], - "inputRequestContextKeys": [
- {
- "name": "amt",
- "dataType": {
- "type": "float64"
}
}
], - "featureValues": [
- {
- "name": "transaction_amount_is_higher_than_average.transaction_amount_is_higher_than_average",
- "dataType": {
- "type": "boolean"
}
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_1d_1d",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_30d_1d",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "merchant_fraud_rate.is_fraud_mean_90d_1d",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_distinct_merchant_transaction_count_30d.distinct_merchant_transaction_count_30d",
- "dataType": {
- "type": "int64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_1h_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_mean_3d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_1h_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_amount_metrics.amt_sum_3d_10m",
- "dataType": {
- "type": "float64"
}
}, - {
- "name": "user_transaction_counts.transaction_id_last_3_1d_1d",
- "dataType": {
- "type": "array",
- "elementType": {
- "type": "string"
}
}
}
]
}