Welcome to the Ideogram API documentation. Our API provides developers with powerful tools to integrate Ideogram’s diagramming capabilities into your applications. Whether you’re creating diagrams from scratch or generating them from imported data, our API endpoints allow you to harness the full functionality of Ideogram programmatically. Below, you’ll find detailed descriptions of our API endpoints, each designed to give you maximum control and flexibility when working with diagrams.
The base URL for all API requests is https://api.ideogram.cloud
Each endpoint includes a brief overview, input parameters, and expected results to help you get started quickly.
Developers can easily obtain their [API key] by logging into their personal cabinet on the Ideogram platform. Once logged in, navigate to the “API Access” section, where you can generate a new API key with just a few clicks.

This key is essential for authenticating your requests to the Ideogram API, enabling you to securely integrate our diagramming and workflow tools into your applications. Be sure to store your API key securely, as it grants access to your Ideogram account and services.
For developers looking to quickly test and interact with the Ideogram API, we recommend using Postman. Postman is a powerful tool that simplifies API development by allowing you to easily make API calls, view responses, and manage your API requests in an organized environment.

With Postman, you can import the Ideogram API documentation, generate requests, and experiment with various endpoints—all without writing a single line of code. This makes it an ideal solution for developers to explore our API’s capabilities and integrate it seamlessly into their projects.
Ideogram Cloud API Endpoints
1. Create Diagram
Endpoint: POST /v1/diagrams/create
Parameters:
name
(string, required): The name of the new diagram.type
(string, required): The type of diagram (e.g., flowchart, network).template
(string, optional): The ID of a template to use as a starting point.
Results:
Returns the diagramId
of the newly created diagram, along with a status message.
2. Import Data
Endpoint: POST /v1/diagrams/import
Parameters:
diagramId
(string, required): The ID of the diagram where the data will be imported.dataFormat
(string, required): The format of the data being imported (e.g., CSV, JSON).file
(file, required): The data file to be imported.
Results:
Returns a success message with details on the imported elements.
3. Export Diagram
Endpoint: GET /v1/diagrams/{diagramId}/export
Parameters:
diagramId
(string, required): The ID of the diagram to export.exportFormat
(string, required): The desired export format (e.g., PNG, PDF, SVG).
Results:
Provides a download link for the exported file.
4. Get Diagram Details
Endpoint: GET /v1/diagrams/{diagramId}
Parameters:
diagramId
(string, required): The ID of the diagram to retrieve details for.
Results:
Returns details of the specified diagram, including its name, type, creation date, and elements.
5. Update Diagram
Endpoint: PUT /v1/diagrams/{diagramId}
Parameters:
diagramId
(string, required): The ID of the diagram to update.name
(string, optional): The new name for the diagram.type
(string, optional): The new type of the diagram.template
(string, optional): The new template ID to apply.
Results:
Returns a success message confirming the update.
6. Delete Diagram
Endpoint: DELETE /v1/diagrams/{diagramId}
Parameters:
diagramId
(string, required): The ID of the diagram to delete.
Results:
Returns a confirmation message of deletion.
7. List Diagrams
Endpoint: GET /v1/diagrams
Parameters:
userId
(string, required): The ID of the user to list diagrams for.limit
(integer, optional): The maximum number of diagrams to retrieve.
Results:
Returns a list of diagrams with brief details for each.
8. Add Element to Diagram
Endpoint: POST /v1/diagrams/{diagramId}/elements
Parameters:
diagramId
(string, required): The ID of the diagram to add an element to.elementType
(string, required): The type of element to add (e.g., shape, text, connector).properties
(object, required): A JSON object containing properties of the element.
Results:
Returns the elementId
of the newly added element.
9. Update Element
Endpoint: PUT /v1/diagrams/{diagramId}/elements/{elementId}
Parameters:
diagramId
(string, required): The ID of the diagram containing the element.elementId
(string, required): The ID of the element to update.properties
(object, required): A JSON object with updated properties.
Results:
Returns a success message confirming the element update.
10. Delete Element
Endpoint: DELETE /v1/diagrams/{diagramId}/elements/{elementId}
Parameters:
diagramId
(string, required): The ID of the diagram containing the element.elementId
(string, required): The ID of the element to delete.
Results:
Returns a confirmation message of deletion.
11. Get Element Details
Endpoint: GET /v1/diagrams/{diagramId}/elements/{elementId}
Parameters:
diagramId
(string, required): The ID of the diagram containing the element.elementId
(string, required): The ID of the element to retrieve details for.
Results:
Returns detailed information about the specified element.
12. List Elements
Endpoint: GET /v1/diagrams/{diagramId}/elements
Parameters:
diagramId
(string, required): The ID of the diagram to list elements for.
Results:
Returns a list of elements within the specified diagram, including their types and properties.
13. Add Connection Between Elements
Endpoint: POST /v1/diagrams/{diagramId}/connections
Parameters:
diagramId
(string, required): The ID of the diagram where the connection will be made.sourceElementId
(string, required): The ID of the source element.targetElementId
(string, required): The ID of the target element.connectionType
(string, required): The type of connection (e.g., line, arrow).
Results:
Returns the connectionId
of the newly created connection.
14. Update Connection
Endpoint: PUT /v1/diagrams/{diagramId}/connections/{connectionId}
Parameters:
diagramId
(string, required): The ID of the diagram containing the connection.connectionId
(string, required): The ID of the connection to update.properties
(object, required): A JSON object with updated connection properties.
Results:
Returns a success message confirming the connection update.
15. Delete Connection
Endpoint: DELETE /v1/diagrams/{diagramId}/connections/{connectionId}
Parameters:
diagramId
(string, required): The ID of the diagram containing the connection.connectionId
(string, required): The ID of the connection to delete.
Results:
Returns a confirmation message of connection deletion.