OpenAPI Specification
openapi: 3.1.0
info:
title: DreamFactory System Admin Limit 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: Limit
description: API rate limiting management
paths:
/system/limit:
get:
operationId: listLimits
summary: DreamFactory List API limits
description: Retrieve a list of API rate limits.
tags:
- Limit
parameters:
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/offset'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LimitListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
post:
operationId: createLimit
summary: DreamFactory Create API limit
description: Create a new API rate limit.
tags:
- Limit
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LimitRequest'
responses:
'201':
description: Limit created
content:
application/json:
schema:
$ref: '#/components/schemas/LimitResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
/system/limit/{id}:
get:
operationId: getLimit
summary: DreamFactory Get API limit
description: Retrieve a specific API limit by ID.
tags:
- Limit
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/LimitResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
patch:
operationId: updateLimit
summary: DreamFactory Update API limit
description: Update a specific API limit by ID.
tags:
- Limit
parameters:
- $ref: '#/components/parameters/id'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LimitRequest'
responses:
'200':
description: Limit updated
content:
application/json:
schema:
$ref: '#/components/schemas/LimitResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: deleteLimit
summary: DreamFactory Delete API limit
description: Delete a specific API limit by ID.
tags:
- Limit
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: Limit deleted
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
'500':
$ref: '#/components/responses/InternalError'
/system/limit_cache:
get:
operationId: listLimitCache
summary: DreamFactory List limit cache
description: Retrieve current limit volume levels to check how close limits are to being reached.
tags:
- Limit
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceListResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
delete:
operationId: resetLimitCache
summary: DreamFactory Reset limit counters
description: Reset limit counters manually.
tags:
- Limit
responses:
'200':
description: Limit cache reset
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessResponse'
'401':
$ref: '#/components/responses/Unauthorized'
'500':
$ref: '#/components/responses/InternalError'
components:
schemas:
LimitListResponse:
type: object
properties:
resource:
type: array
items:
$ref: '#/components/schemas/LimitResponse'
LimitResponse:
type: object
properties:
id:
type: integer
name:
type: string
description:
type: string
type:
type: string
rate:
type: integer
period:
type: string
service_id:
type: integer
role_id:
type: integer
user_id:
type: integer
is_active:
type: boolean
created_date:
type: string
format: date-time
last_modified_date:
type: string
format: date-time
ResourceListResponse:
type: object
properties:
resource:
type: array
items:
type: object
LimitRequest:
type: object
properties:
name:
type: string
description: Name of the limit.
description:
type: string
description: Description of the limit.
type:
type: string
description: Type of limit (instance, each_user, each_service, etc.).
rate:
type: integer
description: Number of allowed API calls in the period.
period:
type: string
description: Time period for the limit (minute, hour, day, etc.).
service_id:
type: integer
description: Service ID the limit applies to.
role_id:
type: integer
description: Role ID the limit applies to.
user_id:
type: integer
description: User ID the limit applies to.
is_active:
type: boolean
description: Whether the limit is active.
required:
- name
- type
- rate
- period
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
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
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
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'
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/