The Finout API provides seamless access to powerful cloud cost management tools, enabling you to integrate, analyze, and optimize your cloud expenses. With endpoints for cost insights, tagging, forecasting, and more, the API empowers teams to automate workflows, track spending, and drive efficiency across their cloud environments.
The following APIs are available:
Finout API is fully secured using a secret key and client token, which can be managed from your Finout account. Your Finout account allows for five concurrent requests per API key. When you generate the API token, it creates both a secret key and a client ID (token). These parameters will be passed in the Authorization header when invoking any Finout API methods.c
Click Admin Portal. The Profile window appears.
Select API Tokens. The API Token screen appears.
Click Generate Token. The Generate Token window appears.
Enter a Description, choose a Role, choose token expiration, and click Create. Your token is generated.
Copy the Client ID and the Secret Key, which won't be accessible later, and then click Done.
Add the Client ID and Secret Key in Headers when invoking any of the Finout endpoints:
x-finout-client-id
x-finout-secret-key
In the Finout Virtual Tags API documentation, the structure of the filters object can be explained by starting with simpler usage and then detailing more complex scenarios:
Simple Conditions Without Logical Operators:
Use direct condition keys for single-condition requirements.
Example JSON:
Complex Conditions with Nested Logical Operators:
AND and OR keys represent logical operators for grouping multiple conditions.
You can nest multiple layers of AND and OR for intricate conditional logic.
Example JSON:
costCenter
string
The cost center associated with the filter.
"AWS" , "GCP", "Kubernetes" , "Snowflake" , "Virtual Tags" , "Datadog" , "Azure" , "Custom Cost"
operator
string
The comparison operator to apply for the filter (e.g., "oneOf", "equal", "greaterThan").
"oneOf"
value
array
An array of values to use the operator against.
["Amazon Web Services EMEA KFIR"]
key
string
The key in Finout filters.
For non-unique keys or specific keys (finrichment), a transform function is applied as follows:
finrichment is returned as f_
plus the Kubernetes key and the node/pod label is returned as nl_<key>/pl_<key>
“1233442423423”
“finrichment_usage_type” -> “f_usage_type”
Use Finout’s Query Language API to get a list of the available keys.
Note: "displayName" is retrieved in the GET API call. This parameter should not be sent in the POST/PUT API calls.
The following operators can be used in the rule definitions to specify filtering conditions:
oneOf: Matches the resource value if it is equal to any of the specified values.
notOneOf: Matches the resource value if it is not equal to any of the specified values.
is: Matches the resource value if it is exactly equal to the specified value.
isNot: Matches the resource value if it is not equal to the specified value.
contains: Matches the resource value if it contains the specified substring.
notContains: Matches the resource value if it does not contain the specified substring.
exists: Matches the resource value if it exists (not null or empty).
notExists: Matches the resource value if it does not exist (null or empty).
In the example above, the rule engine is configured with two rules. The first rule filters resources with costCenter equal to "virtualTag" and type equal to "virtual_tag" using the oneOf operator, matching the values "Aged", "AllArid", "BidBare", "Calm", or "Coal". The matching resources are then directed to the "Application" destination.
The second rule filters resources with costCenter equal to "virtualTag" and type equal to "virtual_tag" using the contains operator, matching the value "Jet". The matching resources are directed to the "Backend" destination.
In the provided example, the third rule illustrates complex conditional logic using both "AND" and "OR" operators. This rule's filter conditions demonstrate the logic: "(condition 1 AND condition 2) OR (condition 1 AND condition 3)". This showcases how multiple conditions can be intricately grouped within "AND" or "OR" relationships, allowing for the creation of sophisticated filtering logic for virtual tags. This example serves to show the versatility and depth of the filtering system in handling diverse and complex tagging scenarios.
Finout Cost API enables you to query and analyze costs using user-defined Finout Views. You can easily get a list of your views and retrieve the costs for a specified view. You can query the costs for any date range of up to 90 days specified in UTC timestamps. The results are returned in JSON format for easy processing.
Note: Only cost data is returned when querying a view via the Cost API.
GET
/Views
Description
Gets a list of all your account views. For more information on views, see Finout Views.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
You must create a view in the MegaBill before querying the GET view. There is currently no 'Create View' API option.
Request
https://app.finout.io/v1/view
Response
400
Bad Request
401
Unauthorized
429
Too many requests
503
Server unavailable
504
Gateway Timeout
sdvs
Returns a JSON object with the following properties:
name: The names of your account's views.
id: The unique identifier of your account's views.
POST
/Query by view
Description
Return all costs for a specified view and date range for up to 90 days. For more information on views, see Finout Views.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
You must first GET the view you want to query
Add the GET view ID to the body of the POST query. Example:
You must either specify dates or delete them completely. The query won't work when blank dates are still present. Example:
Request
https://app.finout.io/v1/cost/query-by-view
Body of Request
viewId
string
The ID of the view that the user queries
date
object
“unixTimeMillSecondsStart” and “unixTimeMillSecondsEnd” keys
unixTimeMillSecondsStart
Numeric
Start Date represented in Unix Epoch time
unixTimeMillSecondsEnd
Numeric
End Date represented in Unix Epoch time
costType
String
Types of costs: - blendedCost - unblendedCost - netUnblendedCost - amortizedCost - netAmortizedCost See Cost and Usage Types for an explanation of each cost.
Response
400
Bad Request
401
Unauthorized
429
Too many requests
503
Server unavailable
504
Gateway Timeout
The MegaBill filter API allows users to query and retrieve metadata for building filters on a huge dataset. This API provides endpoints to fetch MegaBill keys, values, virtual tags, and specific metadata for individual keys. This API is used to understand the different building blocks of Finout’s MegaFilter, and the information needed to build Virtual Tags and views.
GET
/Keys
Retrieves all MegaBill keys.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/megabill/query-language/keys
Response
Returns a JSON object with the following properties:
keys
array
An array of key metadata objects.
requestId
number
The ID of the request in the Finout system.
accountId
number
The ID of the account that made the request.
The key_metadata array has the following fields:
costCenter
string
The cost center associated with the key (display name).
"databricks"
key
string
The unique identifier in Finout.
"a3ViZXJuZXRlczpsYWJlbF9zcGFya19zcGFya19leGVjX2lk"
displayName
string
The external name identifier in Finout, is only used in Finout’s app.
"job-id"
GET
/KeyValues
Retrieve all values associated with a specific key. A successful response allows you to construct a virtual tag condition based on the key values and operators.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
You must first GET the key you want to query and then find the "cost center and "key".
Request
http://app.finout.io/v1/megabill/query-language/values/{costcenter}/{key}
Path Parameters
cost_center
string
The ID of the cost center.
key
string
The ID of the key.
Response
The Virtual Tags API allows you to create, retrieve, update, and delete Virtual Tag configurations. Virtual Tags organize and categorize data based on custom rules and filters.
Note: The Reallocation and MegaBill Key segmentation are currently unsupported in the Virtual Tag API.
GET
/Virtual Tags
Retrieves all virtual tag configurations.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/virtual-tags
Response
400 - Bad Request
401 - Unauthorized
403 - Forbidden
404- Not Found
429 - Too Many Request
500 - Internal Server Error
Unprocessable Request
POST
/Virtual Tag
Create a new virtual tag.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/virtual-tags
Body parameters
name
string
The name of the virtual tag.
rules
array
An array of rules defines the filters and conditions for the virtual tag. See Virtual Tag Objects.
defaultValue
string
The defaultValue object.
Response
PUT
/Virtual Tags
Update a current virtual tag.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Get a virtual tag ID.
Request
https://app.finout.io/v1/virtual-tags/{id}
Path parameter
ID
String
The ID of the Virtual Tag is to be updated.
Request Body Parameters
name
string
The name of the Virtual Tag.
rules
array
An array of rules defines the filters and conditions for the virtual tag. See Virtual Tag Objects.
defaultValue
string
The defaultValue object.
Response
GET
/Virtual Tag By ID
Retrieves the specified Virtual Tag configuration.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Get a virtual tag ID.
Request
https://app.finout.io/v1/virtual-tags/{id}
Path Parameter
id
String
The id of the Virtual Tag to retrieve.
Response
DELETE
/Virtual Tag
Deletes the specified Virtual Tag.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Get a virtual tag ID.
Request
https://app.finout.io/v1/virtual-tags/{id}
Path parameter
id
string
The id of the Virtual Tag to delete.
Response
The Virtual tag is deleted.
The Virtual Tags object represents a configuration used for resource allocation and filtering. It contains the following fields:
accountId
string
The unique identifier of the account is associated with the Virtual Tag.
"e12498cc-594a-4740-94a5-8324e7399bb2"
name
string
The name of the Virtual Tag.
"nir test"
rules
array
An array of RULE objects that defines the filtering criteria for the Virtual Tag.
See Filter Object Definition for more information.
createdBy
string
The name of the user who created the Virtual Tag.
"Nir"
updatedBy
string
The name of the user who last updated the Virtual Tag.
"Asaf Liveanu"
defaultValue
string
An object defining the default value for the Virtual Tag.
“untagged”
createdAt
string
The date and time when the Virtual Tag was created.
"Tue May 16 2023 13:15:53 GMT+0000 (Greenwich Mean Time)"
updatedAt
string
The date and time when the Virtual Tag was last updated.
"Sat Jun 10 2023 16:06:25 GMT+0000 (Greenwich Mean Time)"
id
string
The unique identifier of the Virtual Tag.
"b11c9be2-b7a0-4209-a00e-44ac2ccce0f7"
“Rules” object definition
Field
Type
Description
Example Value
to
string
The destination or target for the filtered data.
"Data Team"
filters
object
An object containing the filter conditions for the rule.
See Filter Object Definition for more information.
The API returns standard HTTP error codes to indicate the success or failure of a request. The following common HTTP errors may be returned:
400 Bad Request: The request is malformed or missing the required parameters. Check the request structure carefully for syntax typos and resubmit the request.
401 Unauthorized: The request lacks valid authentication credentials. Ensure that you have added your credentials to the request header and resubmit your request. If this still doesn't work, contact Finout Support.
403 Forbidden: The request is understood, but the server refuses to fulfill it due to access restrictions. Contact Finout Support.
404 Not Found: The requested resource is not found. Resubmit the request with a valid resource ID.
429 Too Many Requests: The user has sent too many requests in a given period.
422 Unprocessable Request: Check the virtual tag composition and structures.
500 Internal Server Error: An unexpected error occurred on the server.
CostGuard enables you to identify areas within your infrastructure that are ripe for cost optimization. Finout’s CostGuard API lets you retrieve all your CostGuard Scans and their relevant recommendations. This guide offers comprehensive information on interacting with the API endpoints to retrieve scan data, access recommendations, and manage resources.
GET
/Scans
Retrieves all CostGuard scan options. For more information, see CostGuard - Scans.
Prerequisite
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/cost-guard/scans
Response
400 - Bad Request
401 - Unauthorized
429 - Too many requests
503 - Server unavailable
504 - Gateway Timeout
Returns a JSON object with the following properties:
request Id - The ID of this specific request.
scanName: The names of the scan.
scanId: The unique identifier of the scan.
scanLastRunTime: The last time the scan was run.
scanMetadata: Information about the scan.
type - The scan type.
costCenter - Origin of the scan’s cloud provider.
analysisDays - The number of days on which the scan analysis is based.
POST
/Scan Recommendations
Retrieves all resources identified in a scan based on scanId, optional filters, and groupBy. For more information, see CostGuard - Scans.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
You must first GET the scan you want to query
Add the scan ID to the body of the POST query. Example:
{
"scanId": "scan_id"
}
Request
https://app.finout.io/v1/cost-guard/scans-recommendations
Body of Request
Parameter
Type
Description
scanId
string
The ID of the scan.
Example:
{
"scanId":"scan_id"
}
filters
Optional:
For Finout Megabill filters, see the Finout API language query doc.
Example:
"filters": {
"costCenter": "AWS",
"key": "parent_cloud_service",
"operator": "is",
"value": "AmazonAthena"
},
groupBy
Optional:
Group data elements together based on common attributes or values.
For Finout Megabill groupBy, see the Finout API language query doc.
Example:
"groupBy": {
"costCenter": "AWS",
"key": "parent_cloud_service"
}
Response
400 - Bad Request
401 - Unauthorized
429 - Too many requests
503 - Server unavailable
504 - Gateway Timeout
Returns a JSON object with the following properties:
requestId -The ID of this specific request.
scanName - The name of the scan.
scanLastRunTime - The last time the scan was run.
scanTotalCost - The sum of resources cost identified by the scan during the analysisDays.
scanTotalWaste - Waste of the scan during the analysisDays.
scanYearlyPotentialSavings - Yearly potential savings for the scan based on the scan's total waste.
scanMetadata - Additional information on the scan:
type - Scan type: rightsizing/idle
analysisDays - The duration in days on which the scan analysis is based
costCenter - scan cloud provider origin
data - All resources in a scan’s results
group - The value of the group. If there is no groupBy value, the value will be “Total”.
groupTotalCost - Cost of the scans during the analysisDays.
groupTotalWaste - Waste of the scan during analysisDays.
groupYearlyPotentialSavings - Yearly potential savings for the group based on the group's total waste.
resources - All resources in a scan’s results.
The details for the AWS, K8S, Datadog, and GCP scan recommendation queries.
EC2 - Idle
resourceMetadata
accountId
string
The account ID of the resource.
“1234”
accountName
string
The account name of the resource.
"finout"
instanceType
string
The type of the instance.
“t2.medium”
productVCPU
number
The core quantity.
“4”
resourceMetrics
maxEC2CpuUtilization
float
CPU Utilization percentage represents the peak CPU usage within the scan analysisDays. This value is determined by identifying the highest recorded CPU usage during the specified period, expressed as a percentage of the total CPU capacity.
“1.96721311475231”
totalEC2NetworkIn
float
The resource "NetworkIn'' represents the total amount of incoming network traffic within the scan analysis days. This value is determined by aggregating all recorded incoming network traffic data, providing a comprehensive measure of the total network usage for incoming data.
“2847257.3333333335”
totalEC2NetworkOut
float
The resource Networkout-
The resource "NetworkOut" represents the total amount of outgoing network traffic within the scan analysisDays. This value is determined by compiling all outgoing network traffic data recorded and provides a comprehensive measure of the total network usage for outgoing data.
“1976763”
EC2 - Rightsizing
resourceMetadata
accountId
string
The account ID of the resource.
“1234”
accountName
string
Account of the resource.
"finout"
instanceType
string
The size of the instance.
“t2.medium”
productVCPU
number
The core quantity.
“4”
resourceMetrics
maxEC2CpuUtilization
float
The maximum CPU usage during the analysis days.
“1.235593220338884”
usedCpu
float
The maximum CPU used during the analysisDays.
“1.235593220338884”
resourceRecommendations
targetCpu
float
Number of vCPU of the target instance.
1
targetMemory
float
The target of the memory.
512
targetInstanceType
string
The recommended instance type.
“t2.nano”
RDS- idle
resourceMetadata
accountName
string
The AWS account ID.
"finout"
instanceType
string
The size of the instance.
“t2.medium”
resourceMetrics
maxRDSDatabaseConnections
float
The maximum daily total of connections during the scan analysisDays.
0
RDS - Rightsizing
resourceMetadata
accountId
string
The account ID of the resource.
“1234”
accountName
string
AWS account ID.
"finout"
instanceType
string
The size of the instance.
db.r5.xlarge”
resourceMetrics
usedCpu
float
The maximum CPU used during the analysisDays.
“1.235593220338884”
usedMemory
float
The mximum memory that was used during the day's analysis.
“1.235593220338884”
maxRDSCpuUtilization
float
CPU utilization percentage- represents the peak CPU usage within the scan analysisDays. This value is determined by identifying the highest recorded CPU usage during the specified period and expressed as a percentage of the total CPU capacity.
“0.2”
resourceRecommendations
targetInstanceCpu
float
The scan results determined that the CPU of the target machine enables maximum CPU utilization without impacting performance.
1
targetInstanceMemory
float
The memory of the target machine.
512
targetInstanceType
string
The recommended instance type is based on the CPU scan result.
“db.r5.large”
Scans: EBS-Idle, EBS- rightsizing
Metadata
accountId
string
The account ID of the resource.
“1234”
accountName
string
Account of the resource.
"finout"
usageType
string
The type of the EBS.
“EBS:VolumeUsage.gp2”
state
string
The state of the EBS: Available - The EBS volume is not attached to any EC2 instance and is considered idle.
“Available”
Scans: EBS - gp2
Metadata
accountId
string
The account id of the resource.
“1234”
accountName
string
Account of the resource.
"finout"
usageType
string
The type of the EBS.
“EBS:VolumeUsage.gp2”
resourceRecommendations
targetVolumeType
string
The target volume type for the EBS.
gp3
Scans: Application Load Balancer - Idle, Network Load Balancer - Idle, Classic Load Balancer - Idle, Gateway Load Balancer - Idle
Metadata
accountId
string
The account IDof the resource.
“1234”
accountName
string
The account of the resource.
"finout"
apiOperation
string
The type of the Load Balancer.
“Load Balancing”
resourceMetrics
totalELBRequestCount
float
Indicates the total number of HTTP or HTTPS requests received by the Elastic Load Balancer within the scan timeframe.
0
Scans: Elastic IP - Idle
Metadata
accountId
string
The account ID of the resource.
“1234”
accountName
string
The account of the resource.
"finout"
region
string
The region of the account.
“us-east-1”
resourceMetrics
totalIdleHours
float
The total hours of idle Elastic IPs during the analysis period.
722
Scans: elasticache - Idle
Metadata
accountId
string
The account IDof the resource.
“1234”
accountName
string
The account of the resource.
"finout"
instanceType
string
The size of the instance.
“cache.m5.large
resourceMetrics
maxElastiCacheCpuUtilization
float
CPU utilization percentage represents the peak CPU usage within the scan analysisDays. This value is determined by identifying the highest recorded CPU usage during the specified period and is expressed as a percentage of the total CPU capacity.
“1.21”
Scans: S3 - Idle
Metadata
accountId
string
The account IDof the resource.
“1234”
accountName
string
Account of the resource.
"finout"
instanceType
string
The size of the instance.
“cache.m5.large
resourceMetrics
s3AllRequests
float
Represents the total number of requests sent to an S3 bucket. For an idle bucket, the expected result would be 0, indicating no requests have been made.
“0”
Scans: K8s - Deployment/StatefulSet/CronJob/DaemonSet/ReplicaSet
resourceMetadata
cloudOrigin
string
The cloud platform where the Kubernetes resources are running.
“amazon-cur”
resourceMetrics
maxCpuUsage
float
Resource maximum CPU used during the analysis days.
0.064450918833
maxCpuRequest
float
Resource maximum CPU request during the analysis time frame.
1
avgCpuUsage
float
Resource average CPU used during the analysis time frame.
0.00067
avgCpuRequest
float
Resource average CPU request during the analysis time frame.
1
maxMemoryUsage
float
Resource maximum memory used during the analysis time frame.
521.361
maxMemoryRequest
float
Resource maximum meme request during the analysis time frame.
12980
avgMemoryUsage
Resource average mem used during the analysis days.
322
avgMemoryRequest
Resources average mem request during the analysis time frame.
12980
Scans: Logs - Idle (debug)
Metadata
product
string
Datadog service
“Logs indexed 3day”
service
string
Datadog tag: service
“Internal service”
datadogIndex
string
Datadog tag: index
“production”
status
string
The status of the log is "debug," and is therefore considered idle.
“debug”
Scans: Custom Metrics - Idle
Metadata
product
string
Datadog sub service.
“Timeseries”
wasteType
string
Custom metrics that are not being used in any dashboards.
“idle”
VM - Idle
resourceMetadata
projectId
string
The project ID of the resource.
“1234”
projectName
string
Project of the resource.
"finout"
computeMachineSpec
string
Current machine type.
“n1-standard-4”
computeCores
number
Number of cores on the machine.
6
computeMemory
number
Amount of Memory configured to the machine (In MegaBytes).
30720
resourceMetrics
maxComputeCpuUtilization
float
The maximum CPU usage during the analysis days.
“1.235593220338884”
avgBytesReceived
float
Average amounts of data received daily by the resource (in bytes) during the analysis timeframe.
889167
avgBytesSent
float
Average amounts of data sent daily by the resource (in bytes) during the analysis time frame.
889167
VM - Rightsizing resourceMetadata
projectId
string
The project ID of the resource.
“1234”
projectName
string
Project of the resource.
"finout"
computeMachineSpec
string
Current machine type.
“n1-standard-4”
computeCores
number
Number of cores on the machine.
“6”
computeMemory
number
Amount of Memory configured to the machine (In MegaBytes).
30720
resourceMetrics
maxComputeCpuUtilization
float
Maximum CPU usage during the analysis days (in %).
“4.0”
resourceRecommendations
targetMachineSpec
String
The recommended machine type for rightsizing.
“custom-32-262144”
targetMemory
number
Target of the memory (In GigaBytes).
512
targetCpu
number
Target of the CPU.
2
Snapshot - Idle
Metadata
projectId
string
The project ID of the resource.
“1234”
projectName
string
The project of the resource.
"finout"
Scans: Persistent Disk - Idle
Metadata
projectId
string
The project ID of the resource.
“1234”
projectName
string
Project of the resource.
"finout"
SQL - Idle
resourceMetadata
projectId
string
The project ID of the resource.
“1234”
projectName
string
Project of the resource.
"finout"
instanceType
string
The size of the instance.
“t2.medium”
resourceMetrics
maxSqlCpuUtilization
float
CPU utilization percentage represents the peak CPU usage within the scan analysisDays. This value is determined by identifying the highest recorded CPU usage during the specified period, expressed as a percentage of the total CPU capacity
“1.21”
maxSqlMemoryUtilization
float
The maximum memory used during the scan analysisDays (In GigaBytes).
“4.2”
Finout’s Endpoint API provides functionalities to query existing endpoints and create new ones effortlessly. You can retrieve a list of current endpoints or create new ones, with all results returned in JSON format for seamless integration and processing.
GET
/Endpoints
Gets a list of all your account endpoints.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/endpoints
Response
Bad Request
Unauthorized
Too many requests
Server unavailable
Gateway Timeout
Returns a JSON object with the following properties:
type: The endpoint type - email or Slack.
name: The name of the endpoint.
configuration: The Slack or email URL that is configured for the endpoint.
to: The destination address or endpoint for the notification.
createdBy: The creator of the endpoint.
createdAt: The time and date the endpoint was created.
id: The unique identifier of your account's views.
requestId: The ID of this specific request.
POST
/Endpoints
Creates an email or Slack endpoint in Finout.
Prerequisites
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/endpoints
Body of Request
type
string
Email or Slack
name
string
The name of the endpoint.
configuration
Object
The address where notifications or messages are sent. to: The destination address or endpoint for the notification.
Note: For MS Teams - All public channels in a Team will automatically mapped to an endpoint ID in Finout.
Response
Bad Request
Unauthorized
Too many requests
Server unavailable
Gateway Timeout
Returns a JSON object with the following properties:
accountId: The account id of the endpoint.
createdby: The creator of the endpoint.
type: the endpoint type - email or Slack.
name: The name of the endpoint.
configuration: What the endpoint was configured to.
to: The destination address or endpoint for the notification.
createdAt: The time and date the endpoint was created.
updatedAt: The time and date the endpoint was updated.
id: The unique identifier of your account's views.
requestId: The ID of this specific request.
The Finout Metadata API allows you to query, analyze, and manage metadata associated with virtual tag values. It provides functionalities to retrieve existing metadata lists and add metadata for specific virtual tags. Results are returned in JSON format, facilitating seamless data processing and integration.
GET
/Virtual Tag Metadata
Returns a list of virtual tag values and their corresponding Metadata
Prerequisites
You must obtain the Virtual Tag ID by querying GET/virtual-tags.
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/virtual-tags/virtualtagid/metadata
Response
Bad Request
Unauthorized
Too many requests
Server unavailable
Gateway Timeout
Returns a JSON object with the following properties:
Request Id - The unique identifier for the API request.
Custom Metadata - Any metadata attached to the virtual tag.
PUT
/Virtual Tag Metadata
Enrich your virtual tag values with groups and custom metadata by adding them to your virtual tag and specifying them per value. This metadata is also used with other objects in Finout.
Note:
Currently, using virtual tag values metadata is only available in Financial Plans.
Adding virtual tag metadata using the PUT query overrides the current data in the virtual tag.
Documentation to learn more about utilizing metadata in financial plans is coming soon.
Prerequisites
You must obtain the Virtual Tag ID by querying a GET/virtual-tags.
Generate a Client ID and Secret Key from Finout to add in Headers.
Request
https://app.finout.io/v1/virtual-tags/virtualtagID/metadata
Use Case:
Assume your organization has three teams: App Team, Data Team, and DevOps Team. You need to configure groups for each team and assign an owner name for each team.
Body of Request
Virtual Tag Value
String
The object that defines the value for the virtual tag. This can be of any value. Limitation: Virtual tag values in this specific endpoint cannot include dots. For more information, see Virtual Tags.
customMetadata
Object
Any type of metadata can be attached to the virtual tag’s value. You must specify the custom metadata key and value.
Example:
If you want to assign an owner to a virtual tag’s value, you can set "owner" as the custom metadata key and "owner_name" as the custom metadata value. For more information, see Financial Plans.
groups
Array
The group of this specific value. You can use one or more groups.
To get account group IDs, contact your customer success representative. For more information, see Financial Plans.
endpoints
Array
An endpoint of this specific value. You can set one or more endpoints.
Example:
If the virtual tag’s value is "app team," you can provide the endpoint ID of the app team.
{
"endpoint":"endpoint-app-team-id"
}
To learn how to get a list of your account's endpoints, see Endpoint API. See Reports to learn how to send reports to various endpoints.
Response
400
Bad Request
401
Unauthorized
429
Too many requests
503
Server unavailable
504
Gateway Timeout
Returns a JSON object with the following properties:
Request Id - The unique identifier for the API request.
Custom Metadata - Any metadata attached to the virtual tag.