Every permission you can put on a StickyPrompts API key, what it unlocks in the REST API and the MCP server, and suggested sets for common integrations.
8 min read·Updated 28 September 2026
Permissions decide what an API key may do. You tick them when you create or edit a key in Settings > API keys, and you can change them later without rotating the key. A key never gets more than its owner has: permissions only narrow what you can already do in the app.
How permissions work
Each REST route accepts a list of permissions. The key needs at least one of them. The reference pages show them on every endpoint, and each links to its row below.
Each MCP tool needs exactly one permission. A key without it does not see the tool in tools/list, and calling it returns the same error as calling a tool that does not exist.
Permissions marked MCP work in both places. They gate at least one MCP tool as well as REST routes. All others are REST only. The same badge appears next to permissions in the app.
The three verbs._get reads, _manage creates, updates and runs, _delete deletes. Delete is always separate, so you can give an integration write access without the power to remove things.
Workspace rules still apply. Model access, data residency and guardrails are enforced on every call, and integration connections keep their own access level (for example a database connection set to Read only accepts only SELECT, whatever the key holds).
When a key is missing a permission, REST answers:
HTTP 403{"error": "This api key does not have any of the required permissions. You need at least one of: conversations_get"}
All permissions
Chat and conversations
Permission
What it unlocks
MCP
conversations_get
Read conversations and their messages, follow a conversation live over its WebSocket, list a conversation’s files, export messages. MCP: get_conversation, list_conversations.
MCP
conversations_manage
Create conversations and send messages, fork, retry, share, compare models (sub-conversations), add or remove agents in a conversation. MCP: send_message.
Create and edit CRM contacts, create deals. MCP: add_crm_contact, edit_crm_contact, create_crm_deal. The CRM connection itself must also allow write access.
MCP
integration_database_get
Read database schema and connection info. MCP: list_database_connections, list_database_tables, describe_database_tables.
MCP
integration_database_manage
Run a query on a connected database. MCP: run_database_query. What the query may do is set by the connection’s own permission level.
MCP
integration_storage_get
Browse, search and read entries on a connected cloud drive. MCP: list_storage_connections, browse_storage_folder, search_storage_files, get_storage_entry.
MCP
integration_storage_manage
Import files from, and export files to, a connected cloud drive. MCP: import_storage_files, export_file_to_storage.
MCP
Permissions that currently unlock nothing
You may see prompt_variables_get, prompt_categories_get, prompt_categories_manage, prompt_categories_delete, image_generation_get and image_generation_delete in the list. No customer-facing route or MCP tool uses them today, so ticking them has no effect.
Staff only, not grantable
statistics_get, ai_models_manage, invite_codes_get, invite_codes_manage and invite_codes_delete are reserved for StickyPrompts staff. They are hidden from the permission list, and a request to put them on a key is refused with 403 {"error":"You are using permissions that are restricted"}. This is why the MCP tool get_usage_statistics never appears for customer keys. Workspace usage is available to admins in the app under Usage, credits and billing.
Suggested permission sets
Start from one of these and add only what your integration turns out to need.
Read-only reporting bot
Answers questions from a database and your documents, writes nothing back.
Permissions
Why
ai_models_get, custom_run
Pick a model and summarise the results.
integration_database_get
Find the connection and read the schema.
integration_database_manage
Needed to run any query at all. Connect the database as Read only so only SELECT statements are accepted.
knowledge_bases_get
Search documents for context.
Chat bot
A front end (for example an internal Slack bot) that talks to your agents and knowledge.
Permissions
Why
ai_models_get
Choose the model for new conversations.
conversations_manage, conversations_get
Start conversations, send messages and read replies.
agents_get
Find agents to @mention or chat with.
knowledge_bases_get
Pass knowledge bases to a conversation.
Content generator
Fills in your saved prompts and produces text and images.
Permissions
Why
ai_models_get
Choose a model.
prompts_get, run_prompt
Find saved prompts and run them with variables.
custom_run
One-off generations without a saved prompt.
image_generation_manage, files_get
Generate images and look up the resulting files.
CRM assistant
Looks up contacts and deals, keeps the CRM up to date and sends follow-ups.
Permissions
Why
integration_crm_get
Search and list contacts and deals.
integration_crm_manage
Add and edit contacts, create deals. The CRM connection must have Allow write access turned on.
One choice for the docs and stickyprompts.com. We count visits without cookies either way. If you allow it, we also replay sessions to see where pages
confuse people, and let Google and Meta know you visited so our ads reach the right people.
How we use them