Skip to main content
Metadata is data you store on a key, like a plan tier. It comes back on every verification, so your backend doesn’t need a database lookup. Tags are labels you send with each verification, like the endpoint called. They go only to analytics, so you can break usage down later.

Metadata

object | null
A JSON object with at most 100 top-level properties. Nesting is allowed. Set it on keys.createKey or replace it on keys.updateKey, where leaving it out keeps the current value and null removes it. Every keys.verifyKey response returns it as data.meta.
Keep metadata to what your request handler needs right away, like a plan tier, feature flags, or a tenant ID. Anything large slows every verification, and any service that calls keys.verifyKey can see it, so don’t store secrets. To change one property, send the whole object again. Metadata on an identity comes back separately as data.identity.meta. Put facts shared by all of a user’s keys there, and key-specific facts on the key.

Tags

string[]
On keys.verifyKey. Up to 20 strings of 1 to 512 characters each. They’re recorded with the verification and don’t change the result.
Tags land in the tags column of the verifications table in analytics, so you can break usage down by endpoint, client version, or anything else. A key=value format makes them easy to filter. Don’t put anything sensitive in a tag, because tags show up in analytics and the dashboard’s verification logs. The key verifications table shows how to query them.

Which one to use

Last modified on September 29, 2026