You need an API key to access the Writer API. Get an API key by following the steps in the API quickstart.We recommend setting the API key as an environment variable in a
.env file with the name WRITER_API_KEY.Knowledge Graphs can be deployed org-wide (accessible to every team in the organization) or deployed to specific teams. Both are accessible via the API and SDK.
- With an org-scoped API key, control team scope from the request body: pass
team_idson create or update, or filter list with theteam_idsquery parameter. Omitteam_idson list to see only org-wide Knowledge Graphs. - With a team-scoped API key, every request is automatically restricted to the key’s team. Create assigns to that team; list and retrieve return only that team’s Knowledge Graphs; body
team_idsis not accepted.
Create a Knowledge Graph
A Knowledge Graph is a collection of files that are used to answer questions. To start working with a Knowledge Graph, create an empty Knowledge Graph that you can add files to. Endpoint:POST https://api.writer.com/v1/graphs
Request body
The request body is a JSON object that contains the following fields:Response format
The response has the following structure:Deploy a Knowledge Graph to specific teams
Pass one or more team IDs in theteam_ids array to deploy a new Knowledge Graph to those teams instead of the whole organization. Members of any listed team can use the Knowledge Graph; members of other teams cannot.
Find your Knowledge Graph ID using one of these methods:
- Call the Knowledge Graph list endpoint to retrieve all Knowledge Graphs with their IDs.
- Locate the ID in the URL of the Knowledge Graph page in AI Studio.
Add a file to a Knowledge Graph
Once you’ve created a Knowledge Graph, you can add files to it. The files you add to a Knowledge Graph are used to answer questions and enhance the accuracy of the responses from the LLM You must upload the file to the Writer API before adding it to a Knowledge Graph. See Manage files for more information about how to upload files. Endpoint:POST /v1/graphs/{graph_id}/file
Path parameters
Request body
The request body is a JSON object that contains the following fields:
You must upload the file to the Writer API before adding it to a Knowledge Graph. See Manage files for more information about how to upload files.
Remove a file from a Knowledge Graph
Endpoint:DELETE /v1/graphs/{graph_id}/file/{file_id}
Path parameters
Response format
The response has this structure:List Knowledge Graphs by team
Retrieve Knowledge Graphs in an organization with the list endpoint. By default, the response contains only org-wide Knowledge Graphs. To also include Knowledge Graphs deployed to specific teams, pass those team IDs in theteam_ids query parameter.
Endpoint: GET /v1/graphs
Update team assignment
Change the teams a Knowledge Graph is deployed to by includingteam_ids in a PUT /v1/graphs/{graph_id} request. The array you pass replaces the whole team assignment:
- Omit
team_idsto leave the current team assignment unchanged. - Pass one or more team IDs to scope the Knowledge Graph to exactly those teams.
- Pass an empty array (
[]) to remove every team assignment and make the Knowledge Graph org-wide again.
Use a team-scoped API key
Team-scoped API keys restrict every Knowledge Graph API request to a single team, without any per-request configuration. They are useful when a team owns its own API integration and should not see other teams’ Knowledge Graphs. When a team-scoped API key is used:POST /v1/graphsautomatically assigns the new Knowledge Graph to the key’s team. Passingteam_idsin the request body is rejected.PUT /v1/graphs/{graph_id}cannot change the team assignment of a Knowledge Graph. Passingteam_idsin the request body is rejected.GET /v1/graphs/{graph_id},DELETE /v1/graphs/{graph_id}, and the file endpoints return only Knowledge Graphs deployed to the key’s team. Org-wide Knowledge Graphs and Knowledge Graphs deployed to other teams are not visible.GET /v1/graphsreturns only Knowledge Graphs deployed to the key’s team. Passingteam_idsin the query string is only accepted when it matches the key’s team.
Add URLs to a Knowledge Graph
You can add URLs to a Knowledge Graph to enhance the model’s knowledge with content from websites. The LLM can then query and use this information when responding to questions. This example adds a web connector URL to a Knowledge Graph. It first retrieves the Knowledge Graph to see the current URLs and then adds a new URL to the Knowledge Graph. Note that this operation replaces the entire list of URLs attached to the Knowledge Graph, which is why it is important to retrieve the existing list of URLs first.Add a Knowledge Graph to a no-code agent
After you’ve created a Knowledge Graph, you can add it to a no-code agent to add RAG capabilities. You can use this endpoint to add or remove Knowledge Graphs from a no-code agent. Endpoint:PUT /v1/applications/{application_id}/graphs
Path parameters
Request body
The request body is a JSON object that contains the following fields:
This method updates the associated Knowledge Graphs to the exact list of IDs provided in the request.
To remove a single Knowledge Graph from the no-code agent, set the
graph_ids parameter to an array containing the IDs of all the other Knowledge Graphs associated with the no-code agent, excluding the ID of the Knowledge Graph to remove. To remove all Knowledge Graphs from the no-code agent, set this parameter to an empty array.
Response format
The response contains the new list of IDs of the Knowledge Graphs associated with the no-code agent.Next steps
- Learn how to ask your Knowledge Graph questions in a chat completion via tool calling
- Query your Knowledge Graph directly using the question endpoint
- Fine-tune how your Knowledge Graph searches and retrieves content using the
query_configparameter in the Knowledge Graph query configuration guide