Inngest Functions API

List and invoke deployed Inngest functions.

Operations 3

GET /apps/{appId}/functions Get functions #
GET /apps/{appId}/functions/{functionId} Get function #
POST /apps/{appId}/functions/{functionId}/invoke Invoke function #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/inngest:inngest-functions-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

inngest-functions-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: The v2 API delivers a significantly improved developer experience with consistent design patterns and enhanced functionality.
  title: Inngest REST API v2 Functions API
  version: 2.0.0
servers:
- description: Production server
  url: https://api.inngest.com/v2
- description: Development server
  url: http://localhost:8288/api/v2
tags:
- description: Invoke and manage functions
  name: Functions
paths:
  /apps/{appId}/functions:
    get:
      description: Lists function configuration and status details for an app
      operationId: V2_GetFunctions
      parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - description: Pagination cursor from previous response
        in: query
        name: cursor
        schema:
          type: string
      - description: 'Number of functions to return per page (min: 1, max: 100)'
        in: query
        name: limit
        schema:
          default: '20'
          format: int32
          type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                default:
                  value:
                    data:
                    - app:
                        id: production-app
                      configuration:
                        retries:
                          isDefault: true
                          value: 3
                      id: send-welcome-email
                      isArchived: false
                      isPaused: false
                      name: Send welcome email
                      slug: send-welcome-email
                      triggers:
                      - type: EVENT
                        value: user.created
                    metadata:
                      fetchedAt: '2026-06-10T12:00:00Z'
                    page:
                      cursor: null
                      hasMore: false
                      limit: 20
              schema:
                $ref: '#/components/schemas/v2GetFunctionsResponse'
          description: A successful response.
      security:
      - BearerAuth: []
      summary: Get functions
      tags:
      - Functions
      x-beta: true
  /apps/{appId}/functions/{functionId}:
    get:
      description: Fetches function configuration and status details for a function within an app
      operationId: V2_GetFunction
      parameters:
      - in: path
        name: appId
        required: true
        schema:
          type: string
      - in: path
        name: functionId
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2GetFunctionResponse'
          description: A successful response.
      security:
      - BearerAuth: []
      summary: Get function
      tags:
      - Functions
      x-beta: true
  /apps/{appId}/functions/{functionId}/invoke:
    post:
      description: Invokes a function, executing the function either asynchronously or synchronously based on the mode parameter in the request body
      operationId: V2_InvokeFunction
      parameters:
      - description: The ID of the app containing the function
        in: path
        name: appId
        required: true
        schema:
          type: string
      - description: The ID of the function to invoke
        in: path
        name: functionId
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2InvokeFunctionBody'
        required: true
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2InvokeFunctionResponse'
          description: Function invoked asynchronously
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2InvokeFunctionResponse'
          description: Function invoked synchronously but has not yet finished executing
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Bad Request - invalid input data
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Unauthorized - authentication required
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Forbidden - insufficient permissions
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Not Found - function not found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2InvokeFunctionResponse'
          description: Conflict - this function has already been invoked using the given idempotency key.  Note that this returns the previously invoked run's data.
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Unprocessable Entity - function was rate limited, debounced, skipped, or otherwise could not be invoked
        '429':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Too Many Requests - API rate limit exceeded.  The request was entirely rejected, and no function was invoked.
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v2ErrorResponse'
          description: Internal Server Error
      security:
      - BearerAuth: []
      summary: Invoke function
      tags:
      - Functions
components:
  schemas:
    v2FunctionConfiguration:
      properties:
        cancellations:
          items:
            $ref: '#/components/schemas/v2FunctionCancellationConfiguration'
          type: array
        concurrency:
          items:
            $ref: '#/components/schemas/v2FunctionConcurrencyConfiguration'
          type: array
        debounce:
          $ref: '#/components/schemas/v2FunctionDebounceConfiguration'
        eventsBatch:
          $ref: '#/components/schemas/v2FunctionEventsBatchConfiguration'
        priority:
          type: string
        rateLimit:
          $ref: '#/components/schemas/v2FunctionRateLimitConfiguration'
        retries:
          $ref: '#/components/schemas/v2FunctionRetryConfiguration'
        singleton:
          $ref: '#/components/schemas/v2FunctionSingletonConfiguration'
        throttle:
          $ref: '#/components/schemas/v2FunctionThrottleConfiguration'
      type: object
    v2FunctionConcurrencyConfiguration:
      properties:
        key:
          type: string
        limit:
          $ref: '#/components/schemas/v2FunctionConcurrencyLimitConfiguration'
        scope:
          $ref: '#/components/schemas/v2FunctionConcurrencyScope'
      type: object
    V2InvokeFunctionBody:
      properties:
        data:
          description: JSON object containing the input data for the function
          example:
            message: Hello, World!
          type: object
        idempotencyKey:
          description: Optional idempotency key to handle duplicate requests within a given idempotency period.
          example: user-action-123
          type: string
      type: object
    v2FunctionThrottleConfiguration:
      properties:
        burst:
          format: int32
          type: integer
        key:
          type: string
        limit:
          format: int32
          type: integer
        period:
          type: string
      type: object
    v2FunctionConcurrencyLimitConfiguration:
      properties:
        isPlanLimit:
          type: boolean
        value:
          format: int32
          type: integer
      type: object
    v2ResponseMetadata:
      properties:
        cachedUntil:
          format: date-time
          type: string
        fetchedAt:
          format: date-time
          type: string
        timeRange:
          $ref: '#/components/schemas/v2TimeRange'
      type: object
    v2Error:
      properties:
        code:
          type: string
        message:
          type: string
      type: object
    v2FunctionEventsBatchConfiguration:
      properties:
        key:
          type: string
        maxSize:
          format: int32
          type: integer
        timeout:
          type: string
      type: object
    v2TimeRange:
      properties:
        from:
          format: date-time
          type: string
        until:
          format: date-time
          type: string
      type: object
    v2FunctionSingletonConfiguration:
      properties:
        key:
          type: string
        mode:
          $ref: '#/components/schemas/v2FunctionSingletonMode'
      type: object
    v2FunctionFailureHandler:
      properties:
        name:
          type: string
        slug:
          type: string
      type: object
    v2FunctionRetryConfiguration:
      properties:
        isDefault:
          type: boolean
        value:
          format: int32
          type: integer
      type: object
    v2FunctionTrigger:
      properties:
        if:
          type: string
        type:
          $ref: '#/components/schemas/v2FunctionTriggerType'
        value:
          type: string
      type: object
    v2FunctionTriggerType:
      default: UNSPECIFIED
      enum:
      - UNSPECIFIED
      - EVENT
      - CRON
      type: string
    v2FunctionDebounceConfiguration:
      properties:
        key:
          type: string
        period:
          type: string
      type: object
    v2FunctionSingletonMode:
      default: UNSPECIFIED
      enum:
      - UNSPECIFIED
      - SKIP
      - CANCEL
      type: string
    v2FunctionConcurrencyScope:
      default: UNSPECIFIED
      enum:
      - UNSPECIFIED
      - ACCOUNT
      - ENVIRONMENT
      - FUNCTION
      type: string
    v2FunctionApp:
      properties:
        id:
          type: string
      type: object
    v2GetFunctionsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/v2Function'
          type: array
        metadata:
          $ref: '#/components/schemas/v2ResponseMetadata'
        page:
          $ref: '#/components/schemas/v2Page'
      type: object
    v2GetFunctionResponse:
      properties:
        data:
          $ref: '#/components/schemas/v2Function'
        metadata:
          $ref: '#/components/schemas/v2ResponseMetadata'
      type: object
    v2ErrorResponse:
      properties:
        errors:
          items:
            $ref: '#/components/schemas/v2Error'
          type: array
      type: object
    v2Function:
      properties:
        app:
          $ref: '#/components/schemas/v2FunctionApp'
        configuration:
          $ref: '#/components/schemas/v2FunctionConfiguration'
        failureHandler:
          $ref: '#/components/schemas/v2FunctionFailureHandler'
        id:
          type: string
        isArchived:
          type: boolean
        isPaused:
          type: boolean
        name:
          type: string
        slug:
          type: string
        triggers:
          items:
            $ref: '#/components/schemas/v2FunctionTrigger'
          type: array
      type: object
    v2Page:
      properties:
        cursor:
          type: string
        hasMore:
          type: boolean
        limit:
          format: int32
          type: integer
      type: object
    v2FunctionCancellationConfiguration:
      properties:
        condition:
          type: string
        event:
          type: string
        timeout:
          type: string
      type: object
    v2FunctionRateLimitConfiguration:
      properties:
        key:
          type: string
        limit:
          format: int32
          type: integer
        period:
          type: string
      type: object
    v2InvokeFunctionResponse:
      properties:
        data:
          $ref: '#/components/schemas/v2InvokeFunctionData'
        metadata:
          $ref: '#/components/schemas/v2ResponseMetadata'
      type: object
    v2InvokeFunctionData:
      properties:
        completedAt:
          description: Timestamp when the function execution completed (if finished)
          format: date-time
          type: string
        error:
          description: Error message if the function execution failed
          type: string
        queuedAt:
          description: Timestamp when the function execution was enqueued
          format: date-time
          type: string
        result:
          description: JSON string containing the function result (only available for completed synchronous invocations)
          example: '{"success": true, "data": "Hello, World!"}'
          type: string
        runId:
          description: Unique identifier for this function execution
          example: 01hp1zx8m3ng9vp6qn0xk7j4cy
          type: string
        startedAt:
          description: Timestamp when the function execution started (if started)
          format: date-time
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      description: 'Bearer token authentication. Format: `Bearer {key}`'
      in: header
      name: Authorization
      type: apiKey
x-provenance:
  method: harvested
  publisher: Inngest
  source: https://api-docs.inngest.com/api-specs/v2.json
  note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
    stamped by stamp-openapi-provenance.py (roadmap#793)