Virtual Tag Metadata API V2 (Beta)
The Finout Virtual Tag Metadata API V2 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.
Prerequisites
Before using the Virtual Tag Metadata API V2, generate a Finout API token and include the following headers in every request:
x-finout-client-idx-finout-secret-key
The same credentials are used across all Finout API endpoints.
You must also obtain the Virtual Tag ID before calling either endpoint. Use GET /v2/virtual-tags to retrieve your Virtual Tag IDs.
Rate Limits
GET /v2/virtual-tags/{id}/metadata
100 req / min
PUT /v2/virtual-tags/{id}/metadata
100 req / min
GET /Virtual Tag Metadata
GET /Virtual Tag MetadataReturns a list of virtual tag values and their corresponding metadata.
Request
GET https://app.finout.io/v2/virtual-tags/{id}/metadataPath parameter
id
string
The ID of the Virtual Tag. Obtain this from GET /v2/virtual-tags.
Response
200 — Success
Response when no metadata has been set:
Returns a JSON object with the following properties:
requestId
Unique identifier for the API request.
data.metadata
Map of Virtual Tag values to their associated metadata. Empty object {} if no metadata has been set.
data.metadata.[value].groups
Array of group IDs assigned to this value.
data.metadata.[value].customMetadata
Key-value pairs of custom metadata attached to this value.
data.metadata.[value].endpoints
Array of endpoint IDs assigned to this value.
Error responses
400
Bad Request
401
Unauthorized
429
Too many requests
503
Server unavailable
504
Gateway Timeout
PUT /Virtual Tag Metadata
PUT /Virtual Tag MetadataEnrich 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.
Request
Path parameter
id
string
The ID of the Virtual Tag to update. Obtain this from GET /v2/virtual-tags.
Request body parameters
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 endpoint cannot include dots. See Virtual Tags.
customMetadata
object
Any type of metadata to attach to the virtual tag value. You must specify the custom metadata key and value. Example: set "owner" as the key and "owner_name" as the value to assign an owner to a virtual tag value. See Financial Plans.
groups
array
The group for this specific value. You can use one or more groups. To get account group IDs, contact your customer success representative. See Financial Plans.
endpoints
array
An endpoint for this specific value. You can set one or more endpoints. Example: if the virtual tag value is "app team," provide the endpoint ID of the app team. To get a list of your account's endpoints, see Endpoint API. See Reports to learn how to send reports to various endpoints.
mergeValuesAndMetadata
boolean
Determines how virtual tag metadata is updated. If false (default), all existing metadata and values are overridden. If true, the payload is merged with existing data instead of replacing it.
Use case example
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.
Option 1: Replace all (default)
Omitting mergeValuesAndMetadata or setting it to false replaces all existing metadata for the Virtual Tag.
Request body example
Response
200 — Success
Returns a JSON object with the following properties:
requestId — The unique identifier for the API request.
data.metadata — The updated map of virtual tag values to their associated metadata.
data.virtualTagId — The ID of the virtual tag that was updated.
Option 2: Merge
Setting mergeValuesAndMetadata: true merges the payload into existing metadata instead of replacing it. Useful for adding or updating a single value without touching the others.
Request body example
Response
200 — Success
Error responses
400
Bad Request
401
Unauthorized
429
Too many requests
503
Server unavailable
504
Gateway Timeout
FAQ
What are the rate limits for V2?
Both Virtual Tag Metadata API V2 endpoints are limited to 100 requests per minute, applied per route per account. If you exceed the limit, you will receive a 429 Too Many Requests response. Wait before retrying.
Does PUT always overwrite all existing metadata?
By default, yes — a PUT request replaces all existing metadata for the virtual tag. To merge your payload with existing data instead of replacing it, set mergeValuesAndMetadata to true in your request body.
How do I get a Virtual Tag ID?
Query GET /v2/virtual-tags to retrieve a list of your virtual tags and their IDs. See Virtual Tags API V2.
How do I get group IDs for the groups field?
Group IDs are account-specific. Contact your customer success representative to retrieve them.
Where is metadata used in Finout?
Currently, virtual tag value metadata is used in Financial Plans. Groups and custom metadata set here are available when configuring financial plan line items.
Should I use V1 or V2?
Use V2 for all new integrations. V1 remains available but V2 offers higher rate limits and continued investment going forward.
Last updated
Was this helpful?