OpenAPI Specification
openapi: 3.1.0
info:
title: DreamFactory System Admin App API
description: The DreamFactory System API provides administrative management capabilities for DreamFactory instances. It allows administrators to manage services, apps, roles, users, CORS configurations, email templates, environment settings, lookups, events, scripts, and more. All system resources are accessible under the /api/v2/system/ base path. Authentication requires either an X-DreamFactory-Session-Token header (for system admins) or an X-DreamFactory-API-Key header (for users with appropriate permissions).
version: 2.0.0
contact:
name: DreamFactory Support
url: https://www.dreamfactory.com/support
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
termsOfService: https://www.dreamfactory.com/terms-of-use
servers:
- url: https://{instance}/api/v2
description: DreamFactory instance
variables:
instance:
default: example.dreamfactory.com
description: Your DreamFactory instance hostname
security:
- sessionToken: []
- apiKey: []
tags:
- name: App
description: Application and API key management
paths:
/system/app:
get:
operationId: listApps
summary: DreamFactory List applications
description: Retrieve a list of registered applications and their API keys.
tags:
- App
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/related'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AppListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
post:
operationId: createApp
summary: DreamFactory Create application
description: Create a new application registration.
tags:
- App
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppRequest'
responses:
'201':
description: App created
content:
application/json:
schema:
$ref: '#/components/schemas/AppResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/system/app/{id}:
get:
operationId: getApp
summary: DreamFactory Get application
description: Retrieve a specific application by ID.
tags:
- App
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/related'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/AppResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
patch:
operationId: updateApp
summary: DreamFactory Update application
description: Update a specific application by ID.
tags:
- App
parameters:
- $ref: '#/components/parameters/id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AppRequest'
responses:
'200':
description: App updated
content:
application/json:
schema:
$ref: '#/components/schemas/AppResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: deleteApp
summary: DreamFactory Delete application
description: Delete a specific application by ID.
tags:
- App
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: App deleted
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
components:
parameters:
id:
name: id
in: path
required: true
description: Resource identifier.
schema:
type: integer
limit:
name: limit
in: query
description: Maximum number of records to return.
schema:
type: integer
default: 0
related:
name: related
in: query
description: Comma-delimited list of related resources to include.
schema:
type: string
filter:
name: filter
in: query
description: SQL-like filter to limit results.
schema:
type: string
fields:
name: fields
in: query
description: Comma-delimited list of fields to return.
schema:
type: string
order:
name: order
in: query
description: SQL-like order containing field and direction.
schema:
type: string
offset:
name: offset
in: query
description: Number of records to skip for pagination.
schema:
type: integer
default: 0
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
InternalError:
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized - invalid or missing session token or API key
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
AppListResponse:
type: object
properties:
resource:
type: array
items:
$ref: '#/components/schemas/AppResponse'
ErrorResponse:
type: object
properties:
error:
type: object
properties:
code:
type: integer
description: Error code.
message:
type: string
description: Error message.
context:
type: object
description: Additional error context.
SuccessResponse:
type: object
properties:
success:
type: boolean
AppRequest:
type: object
properties:
name:
type: string
description: Name of the application.
api_key:
type: string
description: API key for the application.
description:
type: string
description: Description of the application.
is_active:
type: boolean
description: Whether the application is active.
type:
type: integer
description: Application type identifier.
role_id:
type: integer
description: Default role ID for the application.
required:
- name
AppResponse:
type: object
properties:
id:
type: integer
name:
type: string
api_key:
type: string
description:
type: string
is_active:
type: boolean
type:
type: integer
role_id:
type: integer
created_date:
type: string
format: date-time
last_modified_date:
type: string
format: date-time
securitySchemes:
sessionToken:
type: apiKey
name: X-DreamFactory-Session-Token
in: header
description: Session token obtained after admin login.
apiKey:
type: apiKey
name: X-DreamFactory-API-Key
in: header
description: API key associated with a registered application.
externalDocs:
description: DreamFactory Documentation
url: https://guide.dreamfactory.com/docs/