Jentic API

The Jentic API is the hosted agent control plane. It exposes a small, stable surface that lets any agent dynamically discover, load, and execute API operations and Arazzo workflows from the Jentic catalog. Authentication uses an agent-scoped API key (X-JENTIC-API-KEY). The canonical flow is search to load to execute: search the catalog by natural language, load the schema and auth requirements for the returned operation or workflow UUIDs, and execute with managed server-side credential injection. Operation UUIDs are prefixed op_ and workflow UUIDs are prefixed wf_, and both are accepted by the execute endpoint.

Documentation

Specifications

Examples

Schemas & Data

Other Resources

OpenAPI Specification

jentic-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Jentic API
  description: >-
    The Jentic API is the hosted agent control plane that lets any AI agent
    dynamically discover, load, and execute API operations and Arazzo
    workflows from the Jentic catalog. The canonical flow is search → load
    → execute. Operation UUIDs are prefixed `op_` and workflow UUIDs are
    prefixed `wf_`. Authentication uses an agent-scoped API key
    (`X-JENTIC-API-KEY`). Credentials for upstream APIs are injected
    server-side at execution time and are never exposed to the agent.
  version: '1'
  contact:
    name: Jentic Support
    url: https://docs.jentic.com/community/support/
  termsOfService: https://jentic.com/terms
  license:
    name: Jentic Terms of Service
    url: https://jentic.com/terms
externalDocs:
  description: Jentic Documentation
  url: https://docs.jentic.com/
servers:
  - url: https://api.jentic.com/api/v1
    description: Production
tags:
  - name: Authentication
    description: >-
      Registration and API key management for accessing the Jentic
      platform.
  - name: Search
    description: >-
      Semantic search over the Jentic API and workflow catalog using
      natural language queries.
  - name: Execution
    description: >-
      Load execution details and execute API operations or Arazzo
      workflows with managed authentication and credential injection.
security:
  - apiKeyAuth: []
paths:
  /auth/register:
    post:
      operationId: registerAccount
      summary: Register A New Jentic Account
      description: >-
        Registers a new account with the Jentic platform and returns an API
        key. An optional email address can be provided to receive higher
        rate limits. The returned API key must be stored securely and used
        in subsequent requests via the `X-JENTIC-API-KEY` header.
      tags:
        - Authentication
      security: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RegisterRequest'
            examples:
              anonymous:
                summary: Anonymous registration
                value: {}
              withEmail:
                summary: Registration with email
                value:
                  email: [email protected]
      responses:
        '200':
          description: Successfully registered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RegisterResponse'
              example:
                api_key: jen_live_8K7vBxAQ2y1eDqU5wRpL9z0c
                uuid: 7c3e8d10-6b9a-4f5d-8e21-1a7c4b9d0fe2
        '400':
          $ref: '#/components/responses/BadRequest'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /agents/search:
    post:
      operationId: searchApis
      summary: Search For APIs And Workflows
      description: >-
        Searches the Jentic catalog for APIs and workflows that match the
        provided natural language query. Results are semantically ranked
        based on relevance. Returns operation identifiers prefixed `op_`
        (single OpenAPI operations) or `wf_` (Arazzo workflows) that can
        be passed to the load and execute endpoints. Supports limiting the
        number of results returned.
      tags:
        - Search
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SearchRequest'
            examples:
              email:
                summary: Search for an email-sending capability
                value:
                  query: send an email
                  limit: 3
              restaurant:
                summary: Search for a restaurant lookup workflow
                value:
                  query: find a restaurant in Dublin
                  limit: 5
      responses:
        '200':
          description: Search results returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
  /agents/load:
    post:
      operationId: loadExecutionInfo
      summary: Load Execution Information For Operations
      description: >-
        Retrieves the full execution specification for one or more API
        operations or Arazzo workflows from the Jentic catalog. Returns
        HTTP method, path, input JSON Schema, authentication requirements,
        and other metadata needed to call the operation. Use the UUIDs
        returned from the search endpoint.
      tags:
        - Execution
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoadRequest'
            example:
              ids:
                - op_d3a91c6f0b1c4a6c8e2f7b5d9c1a2b3c
                - wf_22b8d9e1c8014a2f9c1e3b7a8d4e5f60
      responses:
        '200':
          description: Execution information loaded successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoadResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /agents/execute:
    post:
      operationId: executeOperation
      summary: Execute An API Operation Or Workflow
      description: >-
        Executes a specific API operation or Arazzo workflow through the
        Jentic platform. Credentials for the upstream API are injected
        server-side by Jentic and are never sent to or stored by the
        agent. The operation or workflow is identified by its UUID, and
        the required inputs must match the JSON Schema returned by the
        load endpoint. Supports both single OpenAPI operations
        (`execution_type: operation`) and multi-step Arazzo workflows
        (`execution_type: workflow`).
      tags:
        - Execution
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ExecutionRequest'
            examples:
              singleOperation:
                summary: Execute a single API operation
                value:
                  execution_type: operation
                  uuid: op_d3a91c6f0b1c4a6c8e2f7b5d9c1a2b3c
                  inputs:
                    to: [email protected]
                    subject: Hello from Jentic
                    body: This was sent by an agent.
              arazzoWorkflow:
                summary: Execute a multi-step Arazzo workflow
                value:
                  execution_type: workflow
                  uuid: wf_22b8d9e1c8014a2f9c1e3b7a8d4e5f60
                  inputs:
                    city: Dublin
                    party_size: 2
      responses:
        '200':
          description: Operation executed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExecutionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          description: Unprocessable Entity — missing or invalid inputs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '502':
          description: Upstream API Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: X-JENTIC-API-KEY
      description: >-
        Agent-scoped API key obtained either by calling `/auth/register`
        or by clicking Generate API Key on an agent in the Jentic console
        at app.jentic.com. The key authorizes only the APIs and workflows
        in that agent's scope.
  responses:
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: Unauthorized — invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    NotFound:
      description: Operation Or Workflow Not Found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    TooManyRequests:
      description: Rate Limit Exceeded
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    RegisterRequest:
      type: object
      description: Request body for registering a new Jentic account.
      properties:
        email:
          type: string
          format: email
          description: >-
            Optional email address for the account. Providing an email
            grants higher rate limits.
    RegisterResponse:
      type: object
      description: >-
        Response containing the newly generated API key and account
        details.
      required:
        - api_key
      properties:
        api_key:
          type: string
          description: >-
            The generated API key to use in subsequent requests via the
            `X-JENTIC-API-KEY` header.
        uuid:
          type: string
          description: The unique identifier for the registered account.
    SearchRequest:
      type: object
      description: >-
        Request body for searching the Jentic API catalog using a natural
        language query.
      required:
        - query
      properties:
        query:
          type: string
          minLength: 1
          description: >-
            Natural language query describing the desired capability
            (e.g. "send an email", "find a restaurant in Dublin",
            "create a Linear issue").
        limit:
          type: integer
          minimum: 1
          default: 5
          description: Maximum number of search results to return.
    SearchResponse:
      type: object
      description: >-
        Response containing semantically ranked search results from the
        Jentic catalog.
      properties:
        results:
          type: array
          description: >-
            List of matching API operations and workflows, ranked by
            semantic relevance.
          items:
            $ref: '#/components/schemas/SearchResult'
    SearchResult:
      type: object
      description: A single search result representing an API operation or workflow.
      properties:
        uuid:
          type: string
          pattern: '^(op_|wf_).+'
          description: >-
            Unique identifier for the operation, prefixed `op_` for single
            OpenAPI operations or `wf_` for Arazzo workflows.
        name:
          type: string
          description: Human-readable name of the operation or workflow.
        description:
          type: string
          description: Detailed description of what the operation does.
        api_name:
          type: string
          description: Name of the upstream API that provides this operation.
        type:
          type: string
          enum:
            - operation
            - workflow
          description: >-
            Whether this result is an individual OpenAPI operation or a
            multi-step Arazzo workflow.
        score:
          type: number
          format: float
          description: >-
            Semantic relevance score indicating how well this result
            matches the search query.
    LoadRequest:
      type: object
      description: >-
        Request body for loading detailed execution information for one or
        more operations.
      required:
        - ids
      properties:
        ids:
          type: array
          minItems: 1
          description: >-
            List of operation or workflow UUIDs (from `/agents/search`) to
            load execution information for.
          items:
            type: string
    LoadResponse:
      type: object
      description: >-
        Response containing detailed execution information keyed by UUID.
      properties:
        tool_info:
          type: object
          description: >-
            Map of operation UUIDs to their detailed execution information
            including input JSON Schema, HTTP method, path, and
            authentication requirements.
          additionalProperties:
            $ref: '#/components/schemas/ToolInfo'
    ToolInfo:
      type: object
      description: Detailed execution information for a single operation or workflow.
      properties:
        name:
          type: string
        description:
          type: string
        method:
          type: string
          enum:
            - GET
            - POST
            - PUT
            - PATCH
            - DELETE
        path:
          type: string
          description: URL path template for the upstream API operation.
        inputs:
          type: object
          additionalProperties: true
          description: >-
            JSON Schema describing the required and optional input
            parameters for the operation.
        auth_required:
          type: boolean
          description: >-
            Whether this operation requires upstream API credentials to be
            configured in the Jentic credential vault.
    ExecutionRequest:
      type: object
      description: >-
        Request body for executing an API operation or Arazzo workflow
        through the Jentic platform.
      required:
        - execution_type
        - uuid
      properties:
        execution_type:
          type: string
          enum:
            - operation
            - workflow
          description: >-
            Whether to execute a single OpenAPI operation or a multi-step
            Arazzo workflow.
        uuid:
          type: string
          pattern: '^(op_|wf_).+'
          description: >-
            The unique identifier of the operation or workflow to
            execute, as returned by `/agents/search`.
        inputs:
          type: object
          additionalProperties: true
          description: >-
            Input parameters for the operation, matching the JSON Schema
            returned by `/agents/load`.
    ExecutionResponse:
      type: object
      description: >-
        Response containing the results of executing an API operation or
        workflow.
      properties:
        output:
          description: >-
            The output data returned by the executed operation or
            workflow. Structure varies depending on the upstream API.
        status:
          type: string
          enum:
            - success
            - error
          description: The execution status.
        execution_id:
          type: string
          description: >-
            Unique identifier for this execution, useful for debugging
            and observability.
    ErrorResponse:
      type: object
      description: Standard error response returned when a request fails.
      required:
        - error
      properties:
        error:
          type: string
          description: Human-readable error message describing what went wrong.
        code:
          type: string
          description: Machine-readable error code for programmatic handling.
        details:
          type: object
          additionalProperties: true
          description: Additional error details when available.