openapi: 3.2.0 info: title: Phi — Protein Design Tutorial API description: 'Phi is a biomodal computation platform for protein design. Submit structure-prediction and sequence-design jobs, track their status, and retrieve scored results — all via a single REST API. ## Authentication All endpoints require an API key supplied as `Authorization: Bearer ` or a Clerk session token. Organisation ID is derived automatically from Clerk tokens; static-key callers must include `X-Organization-ID`. ## Quick links - `POST /v1/phi/jobs` — submit a job - `GET /v1/phi/jobs/{job_id}/status` — poll status - `GET /v1/phi/jobs/{job_id}/scores` — download scored results ' version: 1.0.0 servers: - url: https://api.dyno-agents.app description: Production - url: http://localhost:8000 description: Local development tags: - name: tutorial paths: /v1/phi/tutorial: get: tags: - tutorial summary: Get Tutorial description: 'Return signed download URLs for the PDL-1 tutorial files. Also idempotently pre-creates a tutorial Dataset in the caller''s org so that ``phi filter --dataset-id `` works without a prior ``phi upload``. Files are hosted at ``gs:///tutorial/pdl1/`` and must be seeded once with ``uv run python scripts/seed_tutorial_files.py``.' operationId: get_tutorial_v1_phi_tutorial_get parameters: - name: x-api-key in: header required: false schema: anyOf: - type: string - type: 'null' description: API key for authentication title: X-Api-Key description: API key for authentication - name: X-User-ID in: header required: false schema: anyOf: - type: string - type: 'null' title: X-User-Id - name: X-Organization-ID in: header required: false schema: anyOf: - type: string - type: 'null' title: X-Organization-Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/TutorialResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError TutorialResponse: properties: files: items: $ref: '#/components/schemas/TutorialFile' type: array title: Files dataset_id: anyOf: - type: string - type: 'null' title: Dataset Id message: type: string title: Message default: 'Download the files below, then run: phi filter --dataset-id ' type: object required: - files title: TutorialResponse TutorialFile: properties: filename: type: string title: Filename url: type: string title: Url gcs_uri: type: string title: Gcs Uri type: object required: - filename - url - gcs_uri title: TutorialFile ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type type: object required: - loc - msg - type title: ValidationError