Edge Impulse Organization Jobs API

The Organization Jobs API from Edge Impulse — 8 operation(s) for organization jobs.

Operations 8

GET /api/organizations/{organizationId}/jobs List active jobs #
GET /api/organizations/{organizationId}/jobs/history List finished jobs #
GET /api/organizations/{organizationId}/jobs/all List all jobs #
POST /api/organizations/{organizationId}/jobs/{jobId}/cancel Cancel job #
GET /api/organizations/{organizationId}/jobs/{jobId}/status Get job status #
GET /api/organizations/{organizationId}/jobs/{jobId}/stdout Get logs #
GET /api/organizations/{organizationId}/jobs/{jobId}/stdout/download Download logs #
GET /api/organizations/{organizationId}/socket-token Get socket token for an organization #

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/edge-impulse-organization-jobs-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

edge-impulse-organization-jobs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Edge Impulse Organization Jobs API
  version: 1.0.0
  description: 'Operations tagged OrganizationJobs across 2 of this provider''s published API definitions: edge-impulse-openapi.yml, edge-impulse-studio-openapi-2026-09-06.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://studio.edgeimpulse.com/v1
tags:
- name: Organization Jobs
paths:
  /api/organizations/{organizationId}/jobs:
    get:
      summary: List active jobs
      description: Get all active jobs for this organization
      operationId: listActiveOrganizationJobs
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/OnlyRootJobsParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListJobsResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/jobs/history:
    get:
      summary: List finished jobs
      description: Get all finished jobs for this organization
      operationId: listFinishedOrganizationJobs
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/OptionalStartDateParameter'
      - $ref: '#/components/parameters/OptionalEndDateParameter'
      - $ref: '#/components/parameters/LimitResultsParameter'
      - $ref: '#/components/parameters/OffsetResultsParameter'
      - $ref: '#/components/parameters/OnlyRootJobsParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListJobsResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/jobs/all:
    get:
      summary: List all jobs
      description: Get all jobs for this organization
      operationId: listAllOrganizationJobs
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/OptionalStartDateParameter'
      - $ref: '#/components/parameters/OptionalEndDateParameter'
      - $ref: '#/components/parameters/LimitResultsParameter'
      - $ref: '#/components/parameters/OffsetResultsParameter'
      - $ref: '#/components/parameters/ExcludePipelineTransformationJobsParameter'
      - $ref: '#/components/parameters/OnlyRootJobsParameter'
      - $ref: '#/components/parameters/OptionalJobsKeyParameter'
      - $ref: '#/components/parameters/OptionalJobsCategoryParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListJobsResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/jobs/{jobId}/cancel:
    post:
      summary: Cancel job
      description: Cancel a running job.
      operationId: cancelOrganizationJob
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/JobIdParameter'
      - $ref: '#/components/parameters/ForceCancelParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/jobs/{jobId}/status:
    get:
      summary: Get job status
      description: Get the status for a job.
      operationId: getOrganizationJobStatus
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/JobIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetJobResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/jobs/{jobId}/stdout:
    get:
      summary: Get logs
      description: Get the logs for a job.
      operationId: getOrganizationJobsLogs
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/JobIdParameter'
      - $ref: '#/components/parameters/LimitResultsParameter'
      - $ref: '#/components/parameters/LogLevelParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LogStdoutResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/jobs/{jobId}/stdout/download:
    get:
      summary: Download logs
      description: Download the logs for a job (as a text file).
      operationId: downloadOrganizationJobsLogs
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      - $ref: '#/components/parameters/JobIdParameter'
      - $ref: '#/components/parameters/LimitResultsParameter'
      - $ref: '#/components/parameters/LogLevelParameter'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: string
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
  /api/organizations/{organizationId}/socket-token:
    get:
      summary: Get socket token for an organization
      description: Get a token to authenticate with the web socket interface.
      tags:
      - Organization Jobs
      x-middleware:
      - OrganizationAllowDeveloperProfile
      parameters:
      - $ref: '#/components/parameters/OrganizationIdParameter'
      operationId: getOrganizationSocketToken
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SocketTokenResponse'
      security:
      - ApiKeyAuthentication: []
      - JWTAuthentication: []
      - JWTHttpHeaderAuthentication: []
    servers:
    - url: https://studio.edgeimpulse.com/v1
components:
  parameters:
    LimitResultsParameter:
      name: limit
      in: query
      required: false
      description: Maximum number of results
      schema:
        type: integer
    OffsetResultsParameter:
      name: offset
      in: query
      required: false
      description: Offset in results, can be used in conjunction with LimitResultsParameter to implement paging.
      schema:
        type: integer
    ExcludePipelineTransformationJobsParameter:
      name: excludePipelineTransformJobs
      in: query
      required: false
      description: Whether to exclude pipeline / transformation jobs
      schema:
        type: boolean
    OptionalJobsKeyParameter:
      name: key
      in: query
      required: false
      description: Job key to filter on
      schema:
        type: string
    JobIdParameter:
      name: jobId
      in: path
      required: true
      description: Job ID
      schema:
        type: integer
    OrganizationIdParameter:
      name: organizationId
      in: path
      required: true
      description: Organization ID
      schema:
        type: integer
    OptionalStartDateParameter:
      name: startDate
      in: query
      required: false
      description: Start date
      schema:
        type: string
        format: date-time
    ForceCancelParameter:
      name: forceCancel
      in: query
      required: false
      description: If set to 'true', we won't wait for the job cluster to cancel the job, and will mark the job as finished.
      schema:
        type: string
    LogLevelParameter:
      name: logLevel
      in: query
      required: false
      description: Log level (error, warn, info, debug)
      schema:
        type: string
        enum:
        - error
        - warn
        - info
        - debug
    OptionalJobsCategoryParameter:
      name: category
      in: query
      required: false
      description: Job category to filter on
      schema:
        type: string
    OptionalEndDateParameter:
      name: endDate
      in: query
      required: false
      description: End date
      schema:
        type: string
        format: date-time
    OnlyRootJobsParameter:
      name: rootOnly
      in: query
      required: false
      description: Whether to exclude jobs with a parent ID (so jobs started as part of another job)
      schema:
        type: boolean
    OptionalJobsFinishedParameter:
      name: finished
      in: query
      required: false
      description: Job finish status to filter on
      schema:
        type: string
        enum:
        - successful
        - failed
        - all
  schemas:
    Job:
      type: object
      required:
      - id
      - key
      - created
      - category
      - jobNotificationUids
      properties:
        id:
          type: integer
          description: Job id, use this to refer back to the job. The web socket API also uses this ID.
        category:
          type: string
        key:
          type: string
          description: 'External job identifier, this can be used to categorize jobs, and recover job status. E.g. set this to ''keras-192'' for a Keras learning block with ID 192. When a user refreshes the page you can check whether a job is active for this ID and re-attach.

            '
        created:
          type: string
          format: date-time
          description: When the job was created.
        started:
          type: string
          format: date-time
          description: When the job was started.
        finished:
          type: string
          format: date-time
          description: When the job was finished.
        finishedSuccessful:
          type: boolean
          description: Whether the job finished successfully.
        jobNotificationUids:
          type: array
          description: The IDs of users who should be notified when a job is finished.
          items:
            type: integer
        additionalInfo:
          type: string
          description: Additional metadata associated with this job.
        computeTime:
          type: number
          description: Job duration time in seconds from start to finished, measured by k8s job watcher.
        createdByUser:
          type: object
          required:
          - id
          - name
          - username
          properties:
            id:
              type: integer
            name:
              type: string
            username:
              type: string
            photo:
              type: string
        categoryCount:
          type: integer
          description: Some job categories keep a counter on the job number, e.g. in synthetic data, so we know what the 1st, 2nd etc. job was in the UI.
    GenericApiResponse:
      type: object
      required:
      - success
      properties:
        success:
          type: boolean
          description: Whether the operation succeeded
        error:
          type: string
          description: Optional error description (set if 'success' was false)
    SocketTokenResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - token
        properties:
          token:
            type: object
            required:
            - socketToken
            - expires
            properties:
              socketToken:
                type: string
              expires:
                type: string
                format: date-time
    GetJobResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - job
        properties:
          job:
            $ref: '#/components/schemas/Job'
    LogStdoutResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - stdout
        - totalCount
        properties:
          stdout:
            type: array
            items:
              type: object
              required:
              - created
              - data
              properties:
                created:
                  type: string
                  format: date-time
                data:
                  type: string
                logLevel:
                  type: string
                  enum:
                  - error
                  - warn
                  - info
                  - debug
          totalCount:
            type: integer
            description: Total number of logs (only the last 1000 lines are returned)
    ListJobsResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - jobs
        - totalJobCount
        properties:
          jobs:
            type: array
            description: Active jobs
            items:
              $ref: '#/components/schemas/Job'
          totalJobCount:
            type: integer
    JobLogItem:
      type: object
      required:
      - created
      - data
      properties:
        created:
          type: string
          format: date-time
        data:
          type: string
        logLevel:
          type: string
          enum:
          - error
          - warn
          - info
          - debug
    Job_2:
      type: object
      required:
      - id
      - key
      - created
      - category
      - categoryKey
      - jobNotificationUids
      properties:
        id:
          type: integer
          description: Job id, use this to refer back to the job. The web socket API also uses this ID.
        category:
          type: string
          description: User-friendly category (e.g. "Training model")
        categoryKey:
          type: string
          description: Machine-readable category (e.g. "learn-train-studio-wrapper")
        key:
          type: string
          description: 'External job identifier, this can be used to categorize jobs, and recover job status. E.g. set this to ''keras-192'' for a Keras learning block with ID 192. When a user refreshes the page you can check whether a job is active for this ID and re-attach.

            '
        created:
          type: string
          format: date-time
          description: When the job was created.
        started:
          type: string
          format: date-time
          description: When the job was started.
        finished:
          type: string
          format: date-time
          description: When the job was finished.
        finishedSuccessful:
          type: boolean
          description: Whether the job finished successfully.
        jobNotificationUids:
          type: array
          description: The IDs of users who should be notified when a job is finished.
          items:
            type: integer
        additionalInfo:
          type: string
          description: Additional metadata associated with this job.
        computeTime:
          type: number
          description: Job duration time in seconds from start to finished, measured by k8s job watcher.
        createdByUser:
          description: The user who started this job.
          $ref: '#/components/schemas/CreatedUpdatedByUser'
        categoryCount:
          type: integer
          description: Some job categories keep a counter on the job number, e.g. in synthetic data, so we know what the 1st, 2nd etc. job was in the UI.
        metadata:
          type: object
          description: Structured job metadata
    LogStdoutResponse_2:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - stdout
        - totalCount
        properties:
          stdout:
            type: array
            items:
              $ref: '#/components/schemas/JobLogItem'
          totalCount:
            type: integer
            description: Total number of logs (only the last 1000 lines are returned)
    CreatedUpdatedByUser:
      type: object
      required:
      - id
      - name
      - username
      properties:
        id:
          type: integer
        name:
          type: string
        username:
          type: string
        photo:
          type: string
  securitySchemes:
    ApiKeyAuthentication:
      type: apiKey
      in: header
      name: x-api-key
    JWTAuthentication:
      type: apiKey
      in: cookie
      name: jwt
    JWTHttpHeaderAuthentication:
      type: apiKey
      in: header
      name: x-jwt-token
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: /v1/oauth/authorize
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        implicit:
          authorizationUrl: /v1/oauth/authorize
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        password:
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
        clientCredentials:
          tokenUrl: /v1/oauth/token
          scopes:
            openid: Access to basic profile information
            email: Access to email address
            profile: Access to full profile information
x-refined-from:
- edge-impulse-openapi.yml
- edge-impulse-studio-openapi-2026-09-06.yml