Inversion
Back to API Reference

GraphQL API Reference

Comprehensive documentation for Inversion's GraphQL API, including schema, queries, mutations, and subscriptions.

Overview

Inversion's GraphQL API provides a flexible and powerful way to interact with our platform. GraphQL allows you to request exactly the data you need, making it ideal for complex data requirements and reducing the number of API calls needed.

Endpoint

https://api.inversion.ai/graphql

Authentication

All GraphQL API requests must be authenticated using API keys. You can obtain an API key from your Inversion dashboard. API keys should be included in the Authorization header of your requests.

Authorization: Bearer YOUR_API_KEY

GraphQL Schema

The GraphQL schema defines the types, queries, mutations, and subscriptions available in the API. Here's an overview of the main components:

Types

type Source { id: ID! name: String! type: SourceType! config: JSONObject createdAt: DateTime! updatedAt: DateTime } type Process { id: ID! name: String! description: String status: ProcessStatus! source: Source! transformations: [Transformation!]! sink: Sink createdAt: DateTime! updatedAt: DateTime startedAt: DateTime completedAt: DateTime error: String } type Result { id: ID! processId: ID! data: JSONObject! createdAt: DateTime! } enum SourceType { KAFKA KINESIS MQTT FILE DATABASE API SIMULATOR } enum ProcessStatus { CREATED RUNNING COMPLETED FAILED CANCELLED } scalar DateTime scalar JSONObject

Queries

type Query { # Sources sources(limit: Int, offset: Int): [Source!]! source(id: ID!): Source # Processes processes(limit: Int, offset: Int, status: ProcessStatus): [Process!]! process(id: ID!): Process # Results results(processId: ID!, limit: Int, offset: Int): [Result!]! result(id: ID!): Result }

Mutations

type Mutation { # Sources createSource(input: CreateSourceInput!): Source! updateSource(id: ID!, input: UpdateSourceInput!): Source! deleteSource(id: ID!): Boolean! # Processes createProcess(input: CreateProcessInput!): Process! startProcess(id: ID!): Process! cancelProcess(id: ID!): Process! deleteProcess(id: ID!): Boolean! # Results deleteResult(id: ID!): Boolean! }

Subscriptions

type Subscription { # Real-time process updates processUpdated(id: ID!): Process! # Real-time data streaming dataStream(processId: ID!): JSONObject! }

Example Queries

Here are some example GraphQL queries to help you get started:

Fetching Sources

query GetSources { sources(limit: 10) { id name type createdAt } }

Creating a Process

mutation CreateProcess { createProcess(input: { name: "Real-time Analytics", description: "Process sensor data in real-time", sourceId: "source_123", transformations: [ { type: "FILTER", config: { field: "temperature", operator: "GT", value: 30 } }, { type: "ENRICH", config: { source: "weather-api", joinField: "location" } } ], sinkId: "sink_456" }) { id name status createdAt } }

Subscribing to Process Updates

subscription WatchProcess { processUpdated(id: "process_123") { id status completedAt error } }

GraphQL Explorer

You can explore and test our GraphQL API using the interactive GraphQL Explorer. This tool allows you to build and execute queries, mutations, and subscriptions directly in your browser.

Try It Out

Use our interactive GraphQL Explorer to build and test queries against the Inversion API.

Client Libraries

We provide client libraries for various programming languages to make it easier to work with our GraphQL API:

Best Practices

Here are some best practices for working with our GraphQL API:

  • Use fragments to reuse common fields across multiple queries
  • Request only the fields you need to minimize response size
  • Use variables for dynamic values in your queries
  • Implement proper error handling in your client code
  • Consider using persisted queries for production applications

Need Help?

If you have questions or need assistance with our GraphQL API, please contact our support team or join our community forum.

Related Documentation

Schema Reference

Detailed documentation of the GraphQL schema.

Read More →

JavaScript SDK

Use our JavaScript SDK for GraphQL integration.

Read More →

Tutorials

Learn how to use GraphQL with Inversion.

Read More →