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_tags
Optional
boolean (default true) Include run-tag facets. When false, run_tags is an empty object.
include_customer_tags
Optional
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_tags
Optional
boolean (default true) Include each customer’s tags. When false, customer_tags is an empty object.
limit
Optional
integer (default 100, max 1000) Numbers of customers to fetch.
cursor
Optional
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.