Skip to main content

Sharing Queries

Sharing turns a saved query into something other people — or other systems — can use without logging into Kvery. When you enable sharing, Kvery generates a stable hash that identifies the query.

Enabling sharing​

Toggle sharing on for a query. Kvery assigns it a hash and the query becomes reachable in two complementary ways:

  • As a link — open the query's results in the browser via its share URL.
  • As a REST API — call the query programmatically at its hash endpoint. See Public Query API.

Both use the same hash, so enabling sharing unlocks both at once.

The group's owner, its editors and its managers can change a query's sharing settings. See Members and permissions.

Protecting a shared query​

A shared query can be locked down so it is not open to the world:

  • Password — require a password to access the shared query. Useful for links you send to people outside your group. A query that another shared query opens (a link field or the add button) asks for its own password too, and an import that runs such a query is refused until its password has been entered. Wrong passwords are counted per address and per link: once there are too many, every attempt from that address for that link is refused, even with the right password, until a while has passed since the last wrong attempt.
  • Expiry date — set a date/time after which the share stops working automatically. Ideal for temporary access.
  • Custom hash — set your own hash value instead of the generated one, giving you a cleaner, more memorable URL.

Combine these with the group's IP whitelist and rate limits for stronger control over who can call a query and how often.

Form variables in shared queries​

If the query has form variables, shared viewers get the same form. When called as an API, those variables are passed as request parameters — see Public Query API.

Turning sharing off​

Disable sharing at any time to revoke the public link and the anonymous API access immediately. The API endpoint then only answers calls authenticated with the Basic Auth credentials of a Kvery user who can access the query (see Public Query API). Re-enabling generates access again (you can keep or change the hash).

Security checklist​

  • Use a password for anything sensitive.
  • Set an expiry for temporary shares.
  • Add a group IP whitelist for API endpoints that should only be called from your servers.
  • Set a rate limit to prevent abuse of public endpoints.