Writer
AI · AI
Palmyra chat and text generation, Knowledge Graphs, and no-code apps on their key.
Acts as the person, not as itself
Each user connects their own account. Every call carries both identities — the agent and the person it is acting for — so the agent can never reach past what that individual can already do.
Credentials never touch the agent
Tokens live in the vault and attach server-side at call time. The agent holds a session, not a secret, and revoking access does not mean rotating a key.
Every call on the record
Who asked, which agent acted, which action ran, and the verdict that let it through — one audit trail across every integration, not one per vendor.
What an agent can do
Each action is granted on its own. An agent allowed to read is not thereby allowed to write, and the scope beside each row is what the acting user must have connected for it to run at all.
writer_delete_v1_files_by_file_idWRITEPermanently delete a file from the system. This action cannot be undone. Permanent: Writer documents that this cannot be undone. Needs the `files` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_delete_v1_graphs_by_graph_idWRITEDelete a Knowledge Graph. Deletes the Knowledge Graph itself; the files it held remain in the file store and can be attached elsewhere. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_delete_v1_graphs_by_graph_id_file_by_file_idWRITERemove a file from a Knowledge Graph. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_applicationsREADRetrieves a paginated list of no-code agents (formerly called no-code applications) with optional filtering and sorting capabilities. No-code agents are created in AI Studio (Agent Builder), never through the API; a workspace with none answers an empty `data` array. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_applications_by_application_idREADRetrieves detailed information for a specific no-code agent (formerly called no-code applications), including its configuration and current status. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_applications_by_application_id_graphsREADRetrieve Knowledge Graphs associated with a no-code agent that has chat capabilities. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_applications_by_application_id_jobsREADRetrieve all jobs created via the async API, linked to the provided application ID (or alias). Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_applications_jobs_by_job_idREADRetrieves a single job created via the Async API. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_filesREADRetrieve a paginated list of files with optional filtering by status, graph association, and file type. `file_types` is a comma-joined list of extensions (`pdf,jpg,docx`); an unknown `status` value answers 400 naming the valid ones (measured 2026-09-19). Needs the `files` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_files_by_file_idREADRetrieve detailed information about a specific file, including its metadata, status, and associated graphs. Needs the `files` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_graphsREADRetrieve a list of Knowledge Graphs. By default, the response contains only org-wide Knowledge Graphs. To include Knowledge Graphs that are deployed to specific teams, pass one or more team IDs in the `team_ids` query parameter. Requests authenticated with a team-scoped API key always return only that key's team; passing a different value in `team_ids` is rejected. `team_ids` is sent as a repeated query parameter (`?team_ids=42&team_ids=43`); a team outside the organization answers 403 naming it in `extras.invalidTeamIds` (measured 2026-09-19). Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_graphs_by_graph_idREADRetrieve a Knowledge Graph. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_get_v1_modelsREADRetrieve a list of available models that can be used for text generation, chat completions, and other AI tasks. Needs the `completions` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_applications_by_application_idWRITEGenerate content from an existing no-code agent (formerly called no-code applications) with inputs. Spends generation credits. Streaming is not offered here (`stream` is pinned to false). Applications (no-code agents) are created in AI Studio, not through the API; use `writer_get_v1_applications` to find one. An unknown id answers 404 "Application not found for organization <org> and id <id>" (measured 2026-09-19). Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_applications_by_application_id_jobsWRITEGenerate content asynchronously from an existing no-code agent (formerly called no-code applications) with inputs. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_applications_jobs_by_job_id_retryWRITERe-triggers the async execution of a single job previously created via the Async api and terminated in error. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_chatWRITEGenerate a chat completion based on the provided messages. The response shown below is for non-streaming. To learn about streaming responses, see the [chat completion guide](https://dev.writer.com/home/chat-completion). Spends generation credits. Streaming is not offered here: the response is one complete JSON document (`stream` is pinned to false by this integration). `max_tokens` must be at least 16 (measured 2026-09-19). Needs the `completions` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_completionsWRITEGenerate text completions using the specified model and prompt. This endpoint is useful for text generation tasks that don't require conversational context. Spends generation credits. Streaming is not offered here: the response is one complete JSON document (`stream` is pinned to false). Needs the `completions` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_filesWRITEUpload a new file to the system. Supports various file formats including PDF, DOC, DOCX, PPT, PPTX, JPG, PNG, EML, HTML, SRT, CSV, XLS, and XLSX. File uploads do not accept team parameters. When you attach a file to a Knowledge Graph, the file inherits the team scope of that Knowledge Graph. The file is sent as a JSON envelope: `file_name`, `content_type` and EXACTLY ONE of `content` (UTF-8 text) or `content_base64` (any of the fourteen formats; at most 4 MB decoded). A new file answers `status: in_progress`; poll `writer_get_v1_files_by_file_id` until it is `completed` before adding it to a Knowledge Graph -- measured 2026-09-19, adding a file still processing answers 400 "File <id> is still processing. Try your request later." Needs the `files` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_files_retryWRITERetry processing of files that previously failed to process. This will re-attempt the processing of the specified files. Only files whose status is `failed` qualify; a completed file answers 400 "No errored files associated to the following ids" (measured 2026-09-19). Needs the `files` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_graphsWRITECreate a new Knowledge Graph. By default, the new Knowledge Graph is org-wide (accessible to every team in the organization). To deploy the Knowledge Graph to specific teams instead, provide a `team_ids` array in the request body. When the request is authenticated with a team-scoped API key, the new Knowledge Graph is automatically assigned to that key's team and `team_ids` in the body is not accepted. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_graphs_by_graph_id_fileWRITEAdd a file to a Knowledge Graph. Team access is inherited from the Knowledge Graph; the file itself does not carry team parameters. The file must have finished processing: a file whose status is still `in_progress` answers 400 "File <id> is still processing. Try your request later." (measured 2026-09-19). Poll `writer_get_v1_files_by_file_id` first. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_graphs_questionWRITEAsk a question to specified Knowledge Graphs. Spends generation credits. Streaming is not offered here (`stream` is pinned to false); set `subqueries` for a multi-step answer. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_tools_pdf_parser_by_file_idWRITEParse PDF to other formats. The file must be an uploaded PDF (`writer_post_v1_files` with `content_type: application/pdf`) whose status is `completed`. Needs the `tools` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_tools_web_searchWRITESearch the web for information about a given query and return relevant results with source URLs. Streaming is not offered here (`stream` is pinned to false). Needs the `tools` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_post_v1_visionWRITESubmit images and documents with a prompt to generate an analysis. Supports JPG, PNG, PDF, and TXT files up to 7MB each. Spends generation credits. Upload the images first (`writer_post_v1_files`, image/png or image/jpeg) and reference each file's `name` in the prompt as `{{name}}`; a variable the prompt does not mention answers 400. Use `model: palmyra-x5`: on 2026-09-19 `palmyra-vision` answered 500 "Internal fail" on every call on this workspace while `palmyra-x5` answered 200 with a correct description. Needs the `vision` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_put_v1_applications_by_application_id_graphsWRITEUpdates the list of Knowledge Graphs associated with a no-code chat agent. Needs the `applications` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
writer_put_v1_graphs_by_graph_idWRITEUpdate the name, description, web connector URLs, or team assignment of a Knowledge Graph. Including a `team_ids` array replaces the whole team assignment: an empty array makes the Knowledge Graph org-wide, one or more team IDs scope it to exactly those teams. Omitting `team_ids` leaves the current team assignment unchanged. Team-scoped API keys cannot change the team assignment of a Knowledge Graph. Needs the `knowledge_graphs` capability enabled on the API agent that owns the key: a key whose agent lacks it is refused by Writer with 403 rather than 401, which is a console setting and not a credential fault.
Often connected alongside
Put Writer behind one governed endpoint.
Same permissions, same audit trail, whatever else you connect next.