Metadata
Get the project’s identity, and the distinct dimensions (models, providers, features, tags, customers) it has seen. The reference values used to configure dashboards, filters, and other API calls.
import weflayr
client = weflayr.client(api_key="wf-...")
const weflayr = require('weflayr');
const client = weflayr.client({ apiKey: 'wf-...' });
# Passed as a Bearer token on every request
export WEFLAYR_API_KEY="wf-..."
Get project
client.get_project()
await weflayr.api.getProject({
client,
throwOnError: true,
});
curl "https://app.weflayr.com/api/project/" \
-H "Authorization: Bearer $WEFLAYR_API_KEY"
Output:
{
"name": "My Project",
"project_type": "revenue",
"key_metric_names": [],
"environment": "prod",
"created_at": "2026-01-15T09:30:00Z"
}
Input params: none.
Get tags
Get the {key: list[string]} facets of every tag dimension seen on the project. It concerns both run tags (the
metadata you attach to your LLM calls) and customer tags.
client.get_tags(include_run_tags=True, include_customer_tags=True)
await weflayr.api.getTags({
client,
throwOnError: true,
query: { includeRunTags: true, includeCustomerTags: true },
});
curl "https://app.weflayr.com/api/tags/" \
-H "Authorization: Bearer $WEFLAYR_API_KEY"
Output:
{
"run_tags": {"environment": ["production", "staging"]},
"customer_tags": {"plan": ["enterprise", "free"], "region": ["EU", "US"]}
}
Input params:
| Field | Accepts | Behaviour |
|---|---|---|
include_run_tagsOptional |
boolean (default true) |
Include run-tag facets. When false, run_tags is an empty object. |
include_customer_tagsOptional |
boolean (default true) |
Include customer-tag facets. When false, customer_tags is an empty object. |
Get models
client.get_models()
await weflayr.api.getModels({
client,
throwOnError: true,
});
curl "https://app.weflayr.com/api/models/" \
-H "Authorization: Bearer $WEFLAYR_API_KEY"
Output:
{"models": ["gpt-4o", "gpt-4o-mini", "claude-sonnet-5"]}
Input params: none.
Get providers
client.get_providers()
await weflayr.api.getProviders({
client,
throwOnError: true,
});
curl "https://app.weflayr.com/api/providers/" \
-H "Authorization: Bearer $WEFLAYR_API_KEY"
Output:
{"providers": ["openai", "anthropic"]}
Input params: none.
Get customers
Get every known customer of the project, with its customer tags.
client.get_customers(include_customer_tags=True)
await weflayr.api.getCustomers({
client,
throwOnError: true,
query: { includeCustomerTags: true },
});
curl "https://app.weflayr.com/api/customers/" \
-H "Authorization: Bearer $WEFLAYR_API_KEY"
Output:
{
"customers": [
{"customer_name": "c_123", "customer_tags": {"plan": "enterprise", "region": "EU"}},
{"customer_name": "c_456", "customer_tags": {}}
],
"next_cursor": null,
"has_more": false
}
Input params:
| Field | Accepts | Behaviour |
|---|---|---|
include_customer_tagsOptional |
boolean (default true) |
Include each customer’s tags. When false, customer_tags is an empty object. |
limitOptional |
integer (default 100, max 1000) |
Numbers of customers to fetch. |
cursorOptional |
string | The route is paginated: pass the previous page’s next_cursor to fetch the next page. PS: has_more from the output says whether another page exists. |
Get features
client.get_features()
await weflayr.api.getFeatures({
client,
throwOnError: true,
});
curl "https://app.weflayr.com/api/features/" \
-H "Authorization: Bearer $WEFLAYR_API_KEY"
Output:
{"features": ["chatbot", "summarization"]}
Input params: none.