OpenAPI Specification
openapi: 3.0.3
info:
title: SmartBear SwaggerHub APIs API
description: The SwaggerHub API provides programmatic access to manage API definitions, domains, projects, and integrations on the SwaggerHub platform. It allows teams to automate API lifecycle management including creating, updating, publishing, and versioning APIs. The API also supports organization management, member access control, and integration configuration with third-party services.
version: 1.0.0
termsOfService: https://smartbear.com/terms-of-use/
contact:
name: SmartBear Support
url: https://support.smartbear.com/swaggerhub/
license:
name: SmartBear License
url: https://smartbear.com/terms-of-use/
servers:
- url: https://api.swaggerhub.com
description: SwaggerHub SaaS
security:
- ApiKeyAuth: []
tags:
- name: APIs
description: Manage API definitions and versions
paths:
/apis/{owner}:
get:
operationId: getOwnerApis
summary: Get Owner APIs
description: Retrieves all APIs for a given owner (user or organization).
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
description: Username or organization name
- name: page
in: query
required: false
schema:
type: integer
default: 0
description: Page number for pagination
- name: limit
in: query
required: false
schema:
type: integer
default: 10
description: Number of results per page
- name: sort
in: query
required: false
schema:
type: string
enum:
- NAME
- CREATED
- UPDATED
description: Sort field
- name: order
in: query
required: false
schema:
type: string
enum:
- ASC
- DESC
description: Sort order
responses:
'200':
description: A list of APIs
content:
application/json:
schema:
$ref: '#/components/schemas/ApisJson'
'401':
description: Unauthorized
/apis/{owner}/{api}:
get:
operationId: getApiVersions
summary: Get API Versions
description: Returns the list of versions for a given API.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
responses:
'200':
description: API version list
content:
application/json:
schema:
$ref: '#/components/schemas/ApisJson'
'401':
description: Unauthorized
'404':
description: Not Found
post:
operationId: saveDefinition
summary: Create Or Update API Version
description: Creates a new API or updates an existing API version.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: query
required: false
schema:
type: string
description: API version identifier
- name: isPrivate
in: query
required: false
schema:
type: boolean
description: Set API visibility to private
requestBody:
required: true
content:
application/yaml:
schema:
type: string
application/json:
schema:
type: string
responses:
'200':
description: API updated
'201':
description: API created
'401':
description: Unauthorized
delete:
operationId: deleteApi
summary: Delete API
description: Deletes the specified API and all its versions.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
responses:
'200':
description: API deleted
'401':
description: Unauthorized
'404':
description: Not Found
/apis/{owner}/{api}/{version}:
get:
operationId: getDefinition
summary: Get API Definition
description: Retrieves the OpenAPI definition for a specific API version.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: API definition
content:
application/yaml:
schema:
type: string
application/json:
schema:
type: object
'401':
description: Unauthorized
'404':
description: Not Found
delete:
operationId: deleteApiVersion
summary: Delete API Version
description: Deletes a specific version of an API.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: Version deleted
'401':
description: Unauthorized
'404':
description: Not Found
/apis/{owner}/{api}/{version}/swagger.yaml:
get:
operationId: downloadDefinitionYaml
summary: Download API Definition As YAML
description: Downloads the API definition as YAML format.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: YAML definition file
content:
application/yaml:
schema:
type: string
/apis/{owner}/{api}/{version}/swagger.json:
get:
operationId: downloadDefinitionJson
summary: Download API Definition As JSON
description: Downloads the API definition as JSON format.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: JSON definition file
content:
application/json:
schema:
type: object
/apis/{owner}/{api}/{version}/publish:
post:
operationId: publishApi
summary: Publish API Version
description: Publishes a specific version of an API.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: API version published
'401':
description: Unauthorized
/apis/{owner}/{api}/{version}/unpublish:
post:
operationId: unpublishApi
summary: Unpublish API Version
description: Unpublishes a specific version of an API.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: API version unpublished
'401':
description: Unauthorized
/apis/{owner}/{api}/{version}/default:
put:
operationId: setDefaultApiVersion
summary: Set Default API Version
description: Sets the specified version as the default for the API.
tags:
- APIs
parameters:
- name: owner
in: path
required: true
schema:
type: string
- name: api
in: path
required: true
schema:
type: string
- name: version
in: path
required: true
schema:
type: string
responses:
'200':
description: Default version set
'401':
description: Unauthorized
/search:
get:
operationId: searchApis
summary: Search APIs
description: Searches the SwaggerHub public API catalog.
tags:
- APIs
parameters:
- name: query
in: query
required: true
schema:
type: string
description: Search query string
- name: limit
in: query
required: false
schema:
type: integer
default: 10
- name: page
in: query
required: false
schema:
type: integer
default: 0
- name: sort
in: query
required: false
schema:
type: string
enum:
- NAME
- CREATED
- UPDATED
- name: order
in: query
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: Search results
content:
application/json:
schema:
$ref: '#/components/schemas/ApisJson'
components:
schemas:
ApiEntry:
type: object
properties:
name:
type: string
description:
type: string
created:
type: string
format: date-time
modified:
type: string
format: date-time
swaggerUrl:
type: string
url:
type: string
versions:
type: array
items:
type: string
owner:
type: string
isPrivate:
type: boolean
tags:
type: array
items:
type: string
ApisJson:
type: object
properties:
offset:
type: integer
totalCount:
type: integer
apis:
type: array
items:
$ref: '#/components/schemas/ApiEntry'
securitySchemes:
ApiKeyAuth:
type: apiKey
in: header
name: Authorization