Saga Labs Projects API
The projects API from Saga Labs — 11 operation(s) for projects.
The projects API from Saga Labs — 11 operation(s) for projects.
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/docoapi:docoapi-projects-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: DocoAPI Projects API
description: FastAPI-first API documentation SaaS
version: 0.1.0
tags:
- name: Projects
paths:
/api/v1/projects:
get:
tags:
- Projects
summary: List Projects
operationId: list_projects_api_v1_projects_get
responses:
'200':
description: Successful Response
content:
application/json:
schema:
items:
$ref: '#/components/schemas/ProjectOut'
type: array
title: Response List Projects Api V1 Projects Get
security:
- HTTPBearer: []
post:
tags:
- Projects
summary: Create Project
operationId: create_project_api_v1_projects_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectCreate'
required: true
responses:
'201':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- HTTPBearer: []
/api/v1/projects/{project_id}:
get:
tags:
- Projects
summary: Get Project
operationId: get_project_api_v1_projects__project_id__get
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
patch:
tags:
- Projects
summary: Update Project
operationId: update_project_api_v1_projects__project_id__patch
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
delete:
tags:
- Projects
summary: Delete Project
operationId: delete_project_api_v1_projects__project_id__delete
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'204':
description: Successful Response
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/github:
delete:
tags:
- Projects
summary: Disconnect Github
description: Disconnect GitHub from the project and fall back to URL sync.
operationId: disconnect_github_api_v1_projects__project_id__github_delete
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/sync:
post:
tags:
- Projects
summary: Trigger Sync
description: Manually trigger a spec sync (GitHub) for the given project.
operationId: trigger_sync_api_v1_projects__project_id__sync_post
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/sync-url:
post:
tags:
- Projects
summary: Trigger Url Sync
description: 'Trigger a URL-based spec sync.
The project must have sync_source=''url'' and sync_url set.'
operationId: trigger_url_sync_api_v1_projects__project_id__sync_url_post
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'202':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/specs:
get:
tags:
- Projects
summary: List Specs
description: List all spec versions for a project (newest first).
operationId: list_specs_api_v1_projects__project_id__specs_get
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SpecOut'
title: Response List Specs Api V1 Projects Project Id Specs Get
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/specs/{spec_id}:
get:
tags:
- Projects
summary: Get Spec
description: Get a specific spec version.
operationId: get_spec_api_v1_projects__project_id__specs__spec_id__get
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
- name: spec_id
in: path
required: true
schema:
type: string
format: uuid
title: Spec Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SpecDetailOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/mcp:
patch:
tags:
- Projects
summary: Toggle Mcp
description: Enable or disable the MCP server endpoint for a project.
operationId: toggle_mcp_api_v1_projects__project_id__mcp_patch
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectMcpUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/mcp-auth:
patch:
tags:
- Projects
summary: Update Mcp Auth
description: 'Update the MCP auth config for a project.
Setting source=''manual'' persists the override across spec re-syncs.'
operationId: update_mcp_auth_api_v1_projects__project_id__mcp_auth_patch
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectMcpAuthUpdate'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/mcp-auth/reset:
post:
tags:
- Projects
summary: Reset Mcp Auth
description: 'Reset mcp_auth_config to ''detected'' source, triggering re-detection
from the current stored spec on next read. Re-runs detection immediately.'
operationId: reset_mcp_auth_api_v1_projects__project_id__mcp_auth_reset_post
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v1/projects/{project_id}/specs/{spec_id}/activate:
post:
tags:
- Projects
summary: Activate Spec
description: Roll back to / activate a specific spec version.
operationId: activate_spec_api_v1_projects__project_id__specs__spec_id__activate_post
security:
- HTTPBearer: []
parameters:
- name: project_id
in: path
required: true
schema:
type: string
format: uuid
title: Project Id
- name: spec_id
in: path
required: true
schema:
type: string
format: uuid
title: Spec Id
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/SpecOut'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
ProjectMcpAuthUpdate:
properties:
selected_header:
type: string
title: Selected Header
selected_type:
type: string
title: Selected Type
source:
type: string
title: Source
default: manual
type: object
required:
- selected_header
- selected_type
title: ProjectMcpAuthUpdate
SpecOut:
properties:
id:
type: string
format: uuid
title: Id
project_id:
type: string
format: uuid
title: Project Id
spec_version:
anyOf:
- type: string
- type: 'null'
title: Spec Version
is_active:
type: boolean
title: Is Active
created_at:
type: string
format: date-time
title: Created At
sync_source:
type: string
title: Sync Source
source_url:
anyOf:
- type: string
- type: 'null'
title: Source Url
spec_hash:
anyOf:
- type: string
- type: 'null'
title: Spec Hash
endpoint_count:
anyOf:
- type: integer
- type: 'null'
title: Endpoint Count
schema_count:
anyOf:
- type: integer
- type: 'null'
title: Schema Count
swagger_converted:
type: boolean
title: Swagger Converted
embedding_count:
anyOf:
- type: integer
- type: 'null'
title: Embedding Count
type: object
required:
- id
- project_id
- is_active
- created_at
- sync_source
- swagger_converted
title: SpecOut
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
input:
title: Input
ctx:
type: object
title: Context
type: object
required:
- loc
- msg
- type
title: ValidationError
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ProjectUpdate:
properties:
name:
anyOf:
- type: string
- type: 'null'
title: Name
subdomain:
anyOf:
- type: string
- type: 'null'
title: Subdomain
github_repo:
anyOf:
- type: string
- type: 'null'
title: Github Repo
github_spec_path:
anyOf:
- type: string
- type: 'null'
title: Github Spec Path
github_branch:
anyOf:
- type: string
- type: 'null'
title: Github Branch
sync_source:
anyOf:
- type: string
- type: 'null'
title: Sync Source
sync_url:
anyOf:
- type: string
- type: 'null'
title: Sync Url
poll_interval_minutes:
anyOf:
- type: integer
- type: 'null'
title: Poll Interval Minutes
is_published:
anyOf:
- type: boolean
- type: 'null'
title: Is Published
type: object
title: ProjectUpdate
ProjectOut:
properties:
id:
type: string
format: uuid
title: Id
workspace_id:
type: string
format: uuid
title: Workspace Id
name:
type: string
title: Name
subdomain:
type: string
title: Subdomain
github_repo:
anyOf:
- type: string
- type: 'null'
title: Github Repo
github_spec_path:
type: string
title: Github Spec Path
github_branch:
type: string
title: Github Branch
github_installation_id:
anyOf:
- type: string
- type: 'null'
title: Github Installation Id
sync_status:
type: string
title: Sync Status
last_synced_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Last Synced At
created_at:
type: string
format: date-time
title: Created At
sync_source:
type: string
title: Sync Source
sync_url:
anyOf:
- type: string
- type: 'null'
title: Sync Url
poll_interval_minutes:
type: integer
title: Poll Interval Minutes
poll_last_attempted_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Poll Last Attempted At
spec_hash:
anyOf:
- type: string
- type: 'null'
title: Spec Hash
is_published:
type: boolean
title: Is Published
default: false
last_error_message:
anyOf:
- type: string
- type: 'null'
title: Last Error Message
mcp_enabled:
type: boolean
title: Mcp Enabled
default: true
mcp_tool_count:
anyOf:
- type: integer
- type: 'null'
title: Mcp Tool Count
mcp_generated_at:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Mcp Generated At
mcp_generation_error:
anyOf:
- type: string
- type: 'null'
title: Mcp Generation Error
mcp_base_url:
anyOf:
- type: string
- type: 'null'
title: Mcp Base Url
mcp_base_url_is_fallback:
type: boolean
title: Mcp Base Url Is Fallback
default: false
mcp_auth_config:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Mcp Auth Config
type: object
required:
- id
- workspace_id
- name
- subdomain
- github_spec_path
- github_branch
- sync_status
- created_at
- sync_source
- poll_interval_minutes
title: ProjectOut
ProjectCreate:
properties:
name:
type: string
title: Name
subdomain:
type: string
title: Subdomain
type: object
required:
- name
- subdomain
title: ProjectCreate
ProjectMcpUpdate:
properties:
mcp_enabled:
type: boolean
title: Mcp Enabled
type: object
required:
- mcp_enabled
title: ProjectMcpUpdate
SpecDetailOut:
properties:
id:
type: string
format: uuid
title: Id
project_id:
type: string
format: uuid
title: Project Id
spec_version:
anyOf:
- type: string
- type: 'null'
title: Spec Version
is_active:
type: boolean
title: Is Active
created_at:
type: string
format: date-time
title: Created At
sync_source:
type: string
title: Sync Source
source_url:
anyOf:
- type: string
- type: 'null'
title: Source Url
spec_hash:
anyOf:
- type: string
- type: 'null'
title: Spec Hash
endpoint_count:
anyOf:
- type: integer
- type: 'null'
title: Endpoint Count
schema_count:
anyOf:
- type: integer
- type: 'null'
title: Schema Count
swagger_converted:
type: boolean
title: Swagger Converted
embedding_count:
anyOf:
- type: integer
- type: 'null'
title: Embedding Count
raw_content:
type: string
title: Raw Content
enriched_content:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Enriched Content
validation_errors:
anyOf:
- additionalProperties: true
type: object
- type: 'null'
title: Validation Errors
type: object
required:
- id
- project_id
- is_active
- created_at
- sync_source
- swagger_converted
- raw_content
title: SpecDetailOut
securitySchemes:
HTTPBearer:
type: http
scheme: bearer