Resources

Authentication: JWT | API Key

Resources represent individual content items stored within folders. Each resource maintains a complete revision history, enabling version control and content rollback capabilities. Resources can be either collection-based (following folder schemas) or component-based (using reusable component schemas).

Resources enable:

  • Content Management - store and organize structured content items
  • Version Control - track content changes through revisions with automatic numbering
  • Schema Validation - enforce data structure through collection folder models or component schemas
  • Localization Support - manage multilingual content with locale-specific data
  • Reference Management - establish relationships between content items

Learn more about related resources:

Path Parameters

  • Name
    :env
    Type
    string
    Description

    Unique identifier of the environment

  • Name
    :folder
    Type
    string
    Description

    Unique identifier of the folder (collection or component-based)

  • Name
    :resource
    Type
    string
    Description

    Unique identifier of the resource

URL Pattern

Resources use the URL pattern: /v1/:env/folders/:folder/resources/

Examples:

  • Resources: /v1/7c9h4pwu/folders/6b4qd369/resources/
  • Individual Resource: /v1/7c9h4pwu/folders/6b4qd369/resources/8m3n7k2p/

Resource Object

  • Name
    key
    Type
    string
    Description

    Unique identifier for the resource within the system.

  • Name
    folder
    Type
    string
    Description

    Key of the folder this resource belongs to.

  • Name
    content_type
    Type
    string
    Description

    Always "document" for resources.

  • Name
    component
    Type
    string
    Description

    Key of the component schema used (for component-based resources only).

  • Name
    created_at
    Type
    datetime
    Description

    Timestamp when the resource was created, in ISO 8601 format.

  • Name
    resource_owner
    Type
    string
    Description

    Key of the parent resource (for strict reference folders only).

  • Name
    current_revision
    Type
    string
    Description

    Key of the currently active revision.


Content Structure

Collection-Based Resources

Resources in collection folders follow the folder's schema model. The data structure is defined by the folder's current schema version and must include all required fields.

Component-Based Resources

Resources using component schemas must specify the component query parameter during creation. The data structure follows the component's current published version.

Localization

Localizable fields accept objects with locale codes as keys:

{
    "title": {
        "en": "English Title",
        "es": "Título en Español",
        "fr": "Titre en Français"
    }
}

References and Relations

  • Reference fields link to a single resource in another folder
  • Relation fields can link to multiple resources in another folder
  • Values use the format: folder_key::resource_key for references or folder_key::resource_key for relations

Data Limits

  • Maximum data size per revision: 1MB
  • Automatic compression and optimization for storage
  • Size tracking for billing and quota management

Revision Management

Each resource maintains a complete revision history. For detailed revision management:

  • See Revisions API for creating, retrieving, and managing revisions
  • New revisions are automatically created when resource content is updated
  • The current_revision field always points to the latest active revision

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

List Resources

Retrieves all resources in the specified folder.

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 resources.

    • 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
    • folder_not_found - the specified folder does not exist

Request

GET
/v1/:env/folders/:folder/resources/
curl https://api.foxnose.net/v1/7c9h4pwu/folders/6b4qd369/resources/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json"

Response

{
    "count": 2,
    "next": null,
    "previous": null,
    "results": [
        {
            "key": "8m3n7k2p",
            "folder": "6b4qd369",
            "content_type": "document",
            "component": null,
            "created_at": "2025-06-15T10:30:00.000000-05:00",
            "resource_owner": null,
            "current_revision": "9q5r8t1w"
        },
        {
            "key": "4j6h9l3s",
            "folder": "6b4qd369",
            "content_type": "document",
            "component": null,
            "created_at": "2025-06-14T14:20:00.000000-05:00",
            "resource_owner": null,
            "current_revision": "2x7z5v8c"
        }
    ]
}

POSTapi.foxnose.net/v1/:env/folders/:folder/resources/

Create Resource

Creates a new resource in the specified folder. The resource structure must conform to the folder's schema (for collection folders) or specified component schema (for other folder types).

Success Response: 201 Created

Query Parameters

  • Name
    component
    Type
    string
    Description

    Component key for component-based resources (required for non-collection folders)

Request Body

  • Name
    data
    Type
    object
    Required
    required
    Description

    The content data structured according to the folder's schema or component 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 create resources.

    • 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
    • folder_not_found - the specified folder does not exist
    • component_not_found - the specified component does not exist
  • Name
    422 Unprocessable Content
    Description

    Validation or business logic error. Specific codes:

    • validation_error - data validation errors against schema
    • component_required - component parameter required for non-collection folders
    • component_doesnt_have_active_version - component has no published version
    • resource_owner_required - resource owner required for strict reference folders
    • resource_owner_not_found - specified resource owner does not exist
    • json_size_exceeded - data size exceeds 1MB limit
    • plan_limit_exceeded - resource limit for current plan exceeded
    • localizable_data_should_be_object - localizable fields must be objects

Request

POST
/v1/:env/folders/:folder/resources/
curl https://api.foxnose.net/v1/7c9h4pwu/folders/6b4qd369/resources/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json" \
-d '{
    "data": {
        "title": {
            "en": "Welcome to Our Blog",
            "es": "Bienvenidos a Nuestro Blog"
        },
        "content": {
            "en": "This is our first blog post...",
            "es": "Esta es nuestra primera entrada..."
        },
        "published": true,
        "author": "john_doe"
    }
}'

Response

{
    "key": "8m3n7k2p",
    "folder": "6b4qd369",
    "content_type": "document",
    "component": null,
    "created_at": "2025-06-16T15:30:01.514282-05:00",
    "resource_owner": null,
    "current_revision": "9q5r8t1w"
}

GETapi.foxnose.net/v1/:env/folders/:folder/resources/:resource/

Retrieve Resource

Retrieves details of a specific resource.

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 resource.

    • 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
    • folder_not_found - the specified folder does not exist
    • resource_not_found - the specified resource does not exist

Request

GET
/v1/:env/folders/:folder/resources/:resource/
curl https://api.foxnose.net/v1/7c9h4pwu/folders/6b4qd369/resources/8m3n7k2p/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json"

Response

{
    "key": "8m3n7k2p",
    "folder": "6b4qd369",
    "content_type": "document",
    "component": null,
    "created_at": "2025-06-15T10:30:00.000000-05:00",
    "resource_owner": null,
    "current_revision": "9q5r8t1w"
}

DELETEapi.foxnose.net/v1/:env/folders/:folder/resources/:resource/

Delete Resource

Permanently deletes a resource and all its revisions.

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 resource.

    • 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
    • folder_not_found - the specified folder does not exist
    • resource_not_found - the specified resource does not exist

Request

DELETE
/v1/:env/folders/:folder/resources/:resource/
curl -X DELETE https://api.foxnose.net/v1/7c9h4pwu/folders/6b4qd369/resources/8m3n7k2p/ \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiI..." \
-H "Content-Type: application/json"

Was this page helpful?