Surge AI Projects API

The Projects API from Surge AI — 9 operation(s) for projects.

OpenAPI Specification

surge-ai-projects-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Surge AI Projects API
  description: Surge AI is a human-data platform for labeling, RLHF/SFT data collection, rubrics, and evaluation. This OpenAPI documents the REST endpoints used by the official surge-python SDK (https://github.com/surge-ai/surge-python), covering projects, tasks, and teams. Authentication uses API key Basic auth via the SURGE_API_KEY.
  version: 1.0.0
  contact:
    name: Surge AI documentation
    url: https://app.surgehq.ai/docs/api
servers:
- url: https://app.surgehq.ai/api
  description: Production
security:
- basicAuth: []
tags:
- name: Projects
paths:
  /projects:
    get:
      tags:
      - Projects
      summary: List projects
      operationId: listProjects
      responses:
        '200':
          description: List of projects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
    post:
      tags:
      - Projects
      summary: Create project
      operationId: createProject
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectCreate'
      responses:
        '200':
          description: Project created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
  /projects/shared:
    get:
      tags:
      - Projects
      summary: List organization-wide (shared) projects
      operationId: listSharedProjects
      responses:
        '200':
          description: Shared projects
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
  /projects/blueprints:
    get:
      tags:
      - Projects
      summary: List blueprint projects
      operationId: listBlueprints
      responses:
        '200':
          description: Blueprints
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
  /projects/{project_id}:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags:
      - Projects
      summary: Retrieve a project
      operationId: getProject
      responses:
        '200':
          description: Project details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
    put:
      tags:
      - Projects
      summary: Update a project
      operationId: updateProject
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProjectUpdate'
      responses:
        '200':
          description: Updated project
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Project'
  /projects/{project_id}/copies:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    get:
      tags:
      - Projects
      summary: List project copies
      operationId: listProjectCopies
      responses:
        '200':
          description: Copies
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Project'
  /projects/{project_id}/launch:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    post:
      tags:
      - Projects
      summary: Launch a project
      operationId: launchProject
      responses:
        '200':
          description: Project launched
  /projects/{project_id}/pause:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    post:
      tags:
      - Projects
      summary: Pause a project
      operationId: pauseProject
      responses:
        '200':
          description: Project paused
  /projects/{project_id}/resume:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    post:
      tags:
      - Projects
      summary: Resume a paused project
      operationId: resumeProject
      responses:
        '200':
          description: Project resumed
  /projects/{project_id}/cancel:
    parameters:
    - $ref: '#/components/parameters/ProjectId'
    post:
      tags:
      - Projects
      summary: Cancel a project
      operationId: cancelProject
      responses:
        '200':
          description: Project canceled
components:
  schemas:
    ProjectCreate:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        instructions:
          type: string
        num_workers_per_task:
          type: integer
        fields_template:
          type: string
    Project:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        status:
          type: string
        num_tasks:
          type: integer
    ProjectUpdate:
      type: object
      properties:
        name:
          type: string
        instructions:
          type: string
        num_workers_per_task:
          type: integer
  parameters:
    ProjectId:
      in: path
      name: project_id
      required: true
      schema:
        type: string
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic auth with the API key as username (set via SURGE_API_KEY).