Flux APIs Management

Authentication: JWT | API Key

Flux APIs enable public access to content through the Flux API. Create APIs to expose folders as public endpoints with configurable access methods. Each API generates a unique prefix and manages folder connections with granular method control.

Path Parameters

  • Name
    :env
    Type
    string
    Description

    Unique identifier of the environment

  • Name
    :api
    Type
    string
    Description

    Unique identifier of the API (the key field)

  • Name
    :folder
    Type
    string
    Description

    Unique identifier of the folder (the key field)


Flux API Object

  • Name
    key
    Type
    string
    Description

    Unique identifier for the API, automatically generated by the system.

  • Name
    name
    Type
    string
    Description

    Display name of the API.

  • Name
    description
    Type
    string
    Description

    Optional description of the API's purpose and functionality.

  • Name
    environment
    Type
    string
    Description

    Key of the environment this API belongs to.

  • Name
    prefix
    Type
    string
    Description

    URL prefix for the API endpoints. Must be unique within the environment.

  • Name
    version
    Type
    string
    Description

    API version. Currently only "1" is supported.

  • Name
    is_auth_required
    Type
    boolean
    Description

    When true, Flux API requests for this prefix require API key authentication.

  • Name
    created_at
    Type
    datetime
    Description

    Timestamp when the API was created.

Setting is_auth_required to true forces Flux API requests under this prefix to include valid Flux API credentials. Leave it false for public read-only endpoints.


Folder Connection Object

Represents the connection between a folder and a Flux API. This object defines which folders are accessible through the API and what operations are allowed on each folder.

  • Name
    folder
    Type
    string
    Description

    Key of the connected folder.

  • Name
    api
    Type
    string
    Description

    Key of the API this folder is connected to.

  • Name
    allowed_methods
    Type
    array
    Description

    Array of allowed access methods that determine what operations can be performed on this folder through the Flux API.

    Available methods:

    • "get_many" - Enables Search API and List Resources API endpoints for this folder. Allows retrieving multiple resources with filtering, searching, and pagination.
    • "get_one" - Enables Get Resource API endpoint for this folder. Allows retrieving individual resources by their unique key.

    Permission Logic:

    • Both permissions (["get_many", "get_one"]) - Full access to folder data through all Flux API endpoints with complete resource content
    • Only get_many (["get_many"]) - Can list and search resources, but returns only resource identifiers (keys) without actual content data. Cannot retrieve individual resources by key.
    • Only get_one (["get_one"]) - Can retrieve individual resources by key with full content, but cannot list or search multiple resources
    • No permissions ([]) - Folder is connected but inaccessible through Flux API (useful for URL structure without data access)

    Important:

    • The get_many permission is required for both Search API and List Resources API functionality
    • When only get_many is enabled without get_one, API responses contain only resource keys in the _sys.key field, not the actual content data
  • Name
    description_get_one
    Type
    string
    Default
    default:"Returns one resource by id."
    Description

    Optional short description (max 100 chars) for the Flux get_one endpoint of this folder.

  • Name
    description_get_many
    Type
    string
    Default
    default:"Returns a paginated list of resources."
    Description

    Optional short description (max 100 chars) for the Flux get_many endpoint of this folder.

  • Name
    description_search
    Type
    string
    Default
    default:"Searches resources by filters."
    Description

    Optional short description (max 100 chars) for the Flux _search endpoint of this folder.

  • Name
    description_schema
    Type
    string
    Default
    default:"Returns JSON schema for this resource."
    Description

    Optional short description (max 100 chars) for the Flux /_schema endpoint of this folder.

  • Name
    created_at
    Type
    datetime
    Description

    Timestamp when the folder was connected to the API.


POSTapi.foxnose.net/v1/:env/api/

Create API

Creates a new API in the specified environment.

Success Response: 201 Created

Attributes

  • Name
    name
    Type
    string
    Required
    required
    Description

    API display name

    • Minimum length: 1
    • Maximum length: 255
  • Name
    prefix
    Type
    string
    Required
    required
    Description

    API URL prefix

    • Minimum length: 1
    • Maximum length: 100
    • Only lowercase letters, digits, hyphens, and underscores
    • Must be unique within the environment
  • Name
    description
    Type
    string
    Description

    API description

    • Maximum length: 500
  • Name
    version
    Type
    string
    Default
    default:1
    Description

    API version (currently only "1" is supported)

  • Name
    is_auth_required
    Type
    boolean
    Default
    default:false
    Description

    Set to true to require Flux API key authentication for this prefix.

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to create APIs.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • environment_not_found - the specified environment does not exist
  • Name
    422 Unprocessable Content
    Description

    Validation or business logic error. Specific codes:

    • validation_error - validation errors in request data
    • api_prefix_exists - API with the same prefix already exists
    • too_many_apis - maximum number of APIs for the environment reached

Request

POST
/v1/:env/api/
curl https://api.foxnose.net/v1/7c9h4pwu/api/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json" \
-d '{
    "name": "Blog API",
    "prefix": "blog-v1",
    "description": "API for accessing blog content"
}'

Response

{
    "key": "dw2qC5qRwxuZ",
    "name": "Blog API",
    "description": "API for accessing blog content",
    "environment": "7c9h4pwu",
    "prefix": "blog-v1",
    "version": "1",
    "is_auth_required": false,
    "created_at": "2024-01-15T10:30:00Z"
}

GETapi.foxnose.net/v1/:env/api/

List All Flux APIs

Retrieves all APIs in the specified environment. Results use standard limit/offset pagination.

Success Response: 200 OK

Query Parameters

  • Name
    limit
    Type
    integer
    Default
    default:100
    Description

    Number of APIs per page.

  • Name
    offset
    Type
    integer
    Default
    default:0
    Description

    Number of APIs to skip before starting the page.

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to view APIs.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • environment_not_found - the specified environment does not exist

Request

GET
/v1/:env/api/
curl https://api.foxnose.net/v1/7c9h4pwu/api/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."

Response

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "key": "dw2qC5qRwxuZ",
            "name": "Blog API",
            "description": "API for accessing blog content",
            "environment": "7c9h4pwu",
            "prefix": "blog-v1",
            "version": "1",
            "is_auth_required": false,
            "created_at": "2024-01-15T10:30:00Z"
        }
    ]
}

GETapi.foxnose.net/v1/:env/api/:api/

Retrieve Flux API

Retrieves details of a specific API.

Success Response: 200 OK

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to view this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • environment_not_found - the specified environment does not exist

Request

GET
/v1/:env/api/:api/
curl https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."

Response

{
    "key": "dw2qC5qRwxuZ",
    "name": "Blog API",
    "description": "API for accessing blog content",
    "environment": "7c9h4pwu",
    "prefix": "blog-v1",
    "version": "1",
    "is_auth_required": false,
    "created_at": "2024-01-15T10:30:00Z"
}

PUTapi.foxnose.net/v1/:env/api/:api/

Update Flux API

Updates an existing API.

Success Response: 200 OK

Attributes

  • Name
    name
    Type
    string
    Required
    required
    Description

    API display name

    • Minimum length: 1
    • Maximum length: 255
  • Name
    prefix
    Type
    string
    Required
    required
    Description

    API URL prefix

    • Minimum length: 1
    • Maximum length: 100
    • Only lowercase letters, digits, hyphens, and underscores
    • Must be unique within the environment
  • Name
    description
    Type
    string
    Description

    API description

    • Maximum length: 500
  • Name
    version
    Type
    string
    Default
    default:1
    Description

    Keep as "1" (current supported version).

  • Name
    is_auth_required
    Type
    boolean
    Default
    default:false
    Description

    Whether Flux API key authentication is enforced for this prefix.

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to update this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • environment_not_found - the specified environment does not exist
  • Name
    422 Unprocessable Content
    Description

    Validation or business logic error. Specific codes:

    • validation_error - validation errors in request data
    • api_prefix_exists - API with the same prefix already exists

Request

PUT
/v1/:env/api/:api/
curl -X PUT https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json" \
-d '{
    "name": "Updated Blog API",
    "prefix": "blog-v1",
    "description": "Updated API for accessing blog content",
    "version": "1",
    "is_auth_required": true
}'

Response

{
    "key": "dw2qC5qRwxuZ",
    "name": "Updated Blog API",
    "description": "Updated API for accessing blog content",
    "environment": "7c9h4pwu",
    "prefix": "blog-v1",
    "version": "1",
    "is_auth_required": true,
    "created_at": "2024-01-15T10:30:00Z"
}

DELETEapi.foxnose.net/v1/:env/api/:api/

Delete Flux API

Deletes an API and automatically disconnects all associated folders.

Success Response: 204 No Content

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to delete this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • environment_not_found - the specified environment does not exist

Request

DELETE
/v1/:env/api/:api/
curl -X DELETE https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."

Response

No response body

POSTapi.foxnose.net/v1/:env/api/:api/folders/

Connect Folder to API

Connects a folder to an API for public access.

Success Response: 201 Created

Attributes

  • Name
    folder
    Type
    string
    Required
    required
    Description

    Key of the folder to connect to the API

  • Name
    allowed_methods
    Type
    array
    Default
    default:[]
    Description

    Array of allowed access methods that control which Flux API endpoints are available for this folder.

    Available methods:

    Permission combinations:

    • ["get_many", "get_one"] - Full access to all Flux API endpoints with complete resource content
    • ["get_many"] - Can list/search resources but returns only identifiers (keys) without content data. Cannot retrieve individual resources.
    • ["get_one"] - Can retrieve individual resources with full content but cannot list/search
    • [] - No data access (folder appears in URL structure only)

    Note: When only get_many is enabled, the API returns minimal resource information (only _sys.key and other system fields) to protect data while allowing resource discovery.

  • Name
    description_get_one
    Type
    string
    Default
    default:"Returns one resource by id."
    Description

    Optional short description (max 100 chars) for get_one.

  • Name
    description_get_many
    Type
    string
    Default
    default:"Returns a paginated list of resources."
    Description

    Optional short description (max 100 chars) for get_many.

  • Name
    description_search
    Type
    string
    Default
    default:"Searches resources by filters."
    Description

    Optional short description (max 100 chars) for _search.

  • Name
    description_schema
    Type
    string
    Default
    default:"Returns JSON schema for this resource."
    Description

    Optional short description (max 100 chars) for /_schema.

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to modify this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • folder_not_found - the specified folder does not exist
    • environment_not_found - the specified environment does not exist
  • Name
    422 Unprocessable Content
    Description

    Validation or business logic error. Specific codes:

    • validation_error - validation errors in request data
    • folder_already_connected_to_api - folder is already connected to this API

Request

POST
/v1/:env/api/:api/folders/
curl https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/folders/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json" \
-d '{
    "folder": "mK8nP3tYvBcX",
    "allowed_methods": ["get_one", "get_many"],
    "description_get_one": "Get one blog article by key",
    "description_get_many": "List blog articles",
    "description_search": "Search blog articles by filters",
    "description_schema": "Read article JSON schema"
}'

Response

{
    "folder": "mK8nP3tYvBcX",
    "api": "dw2qC5qRwxuZ",
    "allowed_methods": ["get_one", "get_many"],
    "description_get_one": "Get one blog article by key",
    "description_get_many": "List blog articles",
    "description_search": "Search blog articles by filters",
    "description_schema": "Read article JSON schema",
    "created_at": "2024-01-15T10:30:00Z"
}

GETapi.foxnose.net/v1/:env/api/:api/folders/

List Connected Folders

Retrieves all folders connected to the specified API. Results use standard limit/offset pagination.

Success Response: 200 OK

Query Parameters

  • Name
    limit
    Type
    integer
    Default
    default:100
    Description

    Number of connections per page.

  • Name
    offset
    Type
    integer
    Default
    default:0
    Description

    Number of connections to skip before starting the page.

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to view this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • environment_not_found - the specified environment does not exist

Request

GET
/v1/:env/api/:api/folders/
curl https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/folders/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."

Response

{
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
        {
            "folder": "mK8nP3tYvBcX",
            "api": "dw2qC5qRwxuZ",
            "allowed_methods": ["get_one", "get_many"],
            "description_get_one": "Get one blog article by key",
            "description_get_many": "List blog articles",
            "description_search": "Search blog articles by filters",
            "description_schema": "Read article JSON schema",
            "created_at": "2024-01-15T10:30:00Z"
        }
    ]
}

GETapi.foxnose.net/v1/:env/api/:api/folders/:folder/

Retrieve Connected Folder

Retrieves details of a specific folder connection to an API.

Success Response: 200 OK

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to view this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • folder_not_found - the specified folder does not exist or is not connected to this API
    • environment_not_found - the specified environment does not exist

Request

GET
/v1/:env/api/:api/folders/:folder/
curl https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/folders/mK8nP3tYvBcX/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."

Response

{
    "folder": "mK8nP3tYvBcX",
    "api": "dw2qC5qRwxuZ",
    "allowed_methods": ["get_one", "get_many"],
    "description_get_one": "Get one blog article by key",
    "description_get_many": "List blog articles",
    "description_search": "Search blog articles by filters",
    "description_schema": "Read article JSON schema",
    "created_at": "2024-01-15T10:30:00Z"
}

PUTapi.foxnose.net/v1/:env/api/:api/folders/:folder/

Update Connected Folder

Updates the connection settings for a folder in an API.

Success Response: 200 OK

Attributes

  • Name
    allowed_methods
    Type
    array
    Default
    default:[]
    Description

    Array of allowed access methods that control which Flux API endpoints are available for this folder.

    Available methods:

    Permission combinations:

    • ["get_many", "get_one"] - Full access to all Flux API endpoints with complete resource content
    • ["get_many"] - Can list/search resources but returns only identifiers (keys) without content data. Cannot retrieve individual resources.
    • ["get_one"] - Can retrieve individual resources with full content but cannot list/search
    • [] - No data access (folder appears in URL structure only)

    Note: When only get_many is enabled, the API returns minimal resource information (only _sys.key and other system fields) to protect data while allowing resource discovery.

  • Name
    description_get_one
    Type
    string
    Default
    default:"Returns one resource by id."
    Description

    Optional short description (max 100 chars) for get_one.

  • Name
    description_get_many
    Type
    string
    Default
    default:"Returns a paginated list of resources."
    Description

    Optional short description (max 100 chars) for get_many.

  • Name
    description_search
    Type
    string
    Default
    default:"Searches resources by filters."
    Description

    Optional short description (max 100 chars) for _search.

  • Name
    description_schema
    Type
    string
    Default
    default:"Returns JSON schema for this resource."
    Description

    Optional short description (max 100 chars) for /_schema.

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to modify this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • folder_not_found - the specified folder does not exist or is not connected to this API
    • environment_not_found - the specified environment does not exist
  • Name
    422 Unprocessable Content
    Description

    Validation or business logic error. Specific codes:

    • validation_error - validation errors in request data

Request

PUT
/v1/:env/api/:api/folders/:folder/
curl -X PUT https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/folders/mK8nP3tYvBcX/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json" \
-d '{
    "allowed_methods": ["get_many"],
    "description_get_one": "",
    "description_get_many": "Public article feed",
    "description_search": "Search published articles",
    "description_schema": "Read feed schema"
}'

Response

{
    "folder": "mK8nP3tYvBcX",
    "api": "dw2qC5qRwxuZ",
    "allowed_methods": ["get_many"],
    "description_get_one": "",
    "description_get_many": "Public article feed",
    "description_search": "Search published articles",
    "description_schema": "Read feed schema",
    "created_at": "2024-01-15T10:30:00Z"
}

DELETEapi.foxnose.net/v1/:env/api/:api/folders/:folder/

Disconnect Folder

Disconnects a folder from an API.

Success Response: 204 No Content

Errors

  • Name
    401 Unauthorized
    Description

    Authentication credentials are missing or invalid.

    • authentication_failed - authentication credentials were not provided or are invalid
  • Name
    403 Forbidden
    Description

    Insufficient permissions to modify this API.

    • permission_denied - insufficient permissions to perform this action
  • Name
    404 Not Found
    Description

    The specified resource could not be found. Specific codes:

    • api_not_found - the specified API does not exist
    • folder_not_found - the specified folder does not exist or is not connected to this API
    • environment_not_found - the specified environment does not exist
  • Name
    422 Unprocessable Content
    Description

    Business logic error. Specific codes:

    • strict_reference_error - cannot disconnect folder due to dependency constraints

Request

DELETE
/v1/:env/api/:api/folders/:folder/
curl -X DELETE https://api.foxnose.net/v1/7c9h4pwu/api/dw2qC5qRwxuZ/folders/mK8nP3tYvBcX/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..."

Response

No response body

Was this page helpful?