Forithmus Data Upload API
The data-upload API from Forithmus — 8 operation(s) for data-upload.
The data-upload API from Forithmus — 8 operation(s) for data-upload.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/forithmus:forithmus-data-upload-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a 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: 3.2.0
info:
title: Forithmus Challenge Platform Data Upload API
version: 1.0.0
tags:
- name: Data Upload
paths:
/challenges/{slug}/phases/{phase_id}/data/test-data:
post:
tags:
- Data Upload
summary: Upload Test Data
description: 'Upload test input data as a zip file. The zip is stored in GCS temp and
a Celery task handles extraction + scanning + GCS upload asynchronously.
Returns immediately with a processing status.
Uses explicit sessions to avoid holding a DB connection during file streaming
and GCS upload (can be multi-GB).'
operationId: upload_test_data_challenges__slug__phases__phase_id__data_test_data_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_upload_test_data_challenges__slug__phases__phase_id__data_test_data_post'
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/upload-url:
post:
tags:
- Data Upload
summary: Generate Upload Url
description: 'Generate a signed POST Policy for direct-to-GCS upload.
Client uploads directly to GCS, bypassing the backend (no buffering).'
operationId: generate_upload_url_challenges__slug__phases__phase_id__data_upload_url_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
requestBody:
required: true
content:
application/json:
schema:
type: object
title: Body
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/upload-complete:
post:
tags:
- Data Upload
summary: Complete Direct Upload
description: 'Finalize a direct-to-GCS upload. Verifies the upload_id was issued to this
user, confirms the blob exists in GCS, then queues the extraction task.'
operationId: complete_direct_upload_challenges__slug__phases__phase_id__data_upload_complete_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
requestBody:
required: true
content:
application/json:
schema:
type: object
title: Body
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/upload-abort:
post:
tags:
- Data Upload
summary: Abort Direct Upload
description: 'Cancel a direct upload: deletes the partial/complete _temp/ blob and invalidates the session.
Client should call this if the upload is cancelled or fails.'
operationId: abort_direct_upload_challenges__slug__phases__phase_id__data_upload_abort_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
requestBody:
required: true
content:
application/json:
schema:
type: object
title: Body
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/ground-truth:
post:
tags:
- Data Upload
summary: Upload Ground Truth
description: 'Upload ground truth labels as a zip file. The zip is stored in GCS temp
and a Celery task handles extraction + scanning + GCS upload asynchronously.
Returns immediately with a processing status.
Uses explicit sessions to avoid holding a DB connection during file streaming.'
operationId: upload_ground_truth_challenges__slug__phases__phase_id__data_ground_truth_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_upload_ground_truth_challenges__slug__phases__phase_id__data_ground_truth_post'
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/eval-container:
post:
tags:
- Data Upload
summary: Upload Eval Container
description: 'Upload an evaluation Docker container as a .tar.gz file.
Stored in GCS models bucket; registry push is handled by a Celery task.
Returns immediately with a processing status.
Uses explicit sessions to avoid holding a DB connection during file streaming.'
operationId: upload_eval_container_challenges__slug__phases__phase_id__data_eval_container_post
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
requestBody:
required: true
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/Body_upload_eval_container_challenges__slug__phases__phase_id__data_eval_container_post'
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/status:
get:
tags:
- Data Upload
summary: Get Data Status
description: 'Check what data has been uploaded for this phase.
Returns upload status for test data, ground truth, and eval container.'
operationId: get_data_status_challenges__slug__phases__phase_id__data_status_get
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/challenges/{slug}/phases/{phase_id}/data/{data_type}:
delete:
tags:
- Data Upload
summary: Delete Data
description: 'Delete previously uploaded data for a phase.
data_type must be one of: test-data, ground-truth, eval-container.'
operationId: delete_data_challenges__slug__phases__phase_id__data__data_type__delete
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
- name: phase_id
in: path
required: true
schema:
type: string
title: Phase Id
- name: data_type
in: path
required: true
schema:
type: string
title: Data Type
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
Body_upload_test_data_challenges__slug__phases__phase_id__data_test_data_post:
properties:
file:
type: string
format: binary
title: File
type: object
required:
- file
title: Body_upload_test_data_challenges__slug__phases__phase_id__data_test_data_post
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
Body_upload_ground_truth_challenges__slug__phases__phase_id__data_ground_truth_post:
properties:
file:
type: string
format: binary
title: File
type: object
required:
- file
title: Body_upload_ground_truth_challenges__slug__phases__phase_id__data_ground_truth_post
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
Body_upload_eval_container_challenges__slug__phases__phase_id__data_eval_container_post:
properties:
file:
type: string
format: binary
title: File
type: object
required:
- file
title: Body_upload_eval_container_challenges__slug__phases__phase_id__data_eval_container_post
x-provenance:
method: harvested
publisher: Forithmus
source: https://research.forithmus.com/api/openapi.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)