Sample code for 30+ languages & platforms
PHP Extension

Frame.io - Create a Folder

See more Frame.io Examples

Create a folder asset as a child to the root_asset_id.

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

$http = new CkHttp();

// Implements the following CURL command:

// curl --request POST \
// --url https://api.frame.io/v2/assets/<root_asset_id>/children \
// --header 'authorization: Bearer <FRAME_IO_DEV_TOKEN>' \
// --header 'content-type: application/json' \
// --data '{"type":"folder", "name": "Folder at root"}'

// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code

// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON

// The following JSON is sent in the request body.

// {
//   "type": "folder",
//   "name": "Folder at root"
// }

$json = new CkJsonObject();
$json->UpdateString('type','folder');
$json->UpdateString('name','Folder at root');

$http->SetRequestHeader('content-type','application/json');
// Adds the "Authorization: Bearer <FRAME_IO_DEV_TOKEN>" header.
$http->put_AuthToken('<FRAME_IO_DEV_TOKEN>');

// Our root_asset_id = 4ecb383f-71a8-4233-b665-d8f75136f554
// You'll need to modify the following line to use your root asset ID.

$resp = new CkHttpResponse();
$success = $http->HttpJson('POST','https://api.frame.io/v2/assets/4ecb383f-71a8-4233-b665-d8f75136f554/children',$json,'application/json',$resp);
if ($success == false) {
    print $http->lastErrorText() . "\n";
    exit;
}

$sbResponseBody = new CkStringBuilder();
$resp->GetBodySb($sbResponseBody);
$jResp = new CkJsonObject();
$jResp->LoadSb($sbResponseBody);
$jResp->put_EmitCompact(false);

print 'Response Body:' . "\n";
print $jResp->emit() . "\n";

$respStatusCode = $resp->get_StatusCode();
print 'Response Status Code = ' . $respStatusCode . "\n";
if ($respStatusCode >= 400) {
    print 'Response Header:' . "\n";
    print $resp->header() . "\n";
    print 'Failed.' . "\n";
    exit;
}

// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)

// {
//   "team_id": "95a5fbad-688d-46fc-aef1-2f011dd76c10",
//   "public_item_count": 0,
//   "properties": null,
//   "deleted_at": null,
//   "fps": null,
//   "rating": null,
//   "description": null,
//   "updated_at": "2020-08-18T03:31:59.699011Z",
//   "cover_asset_id": null,
//   "archive_scheduled_at": null,
//   "subtitle_tracks": null,
//   "index": -7.0,
//   "item_count": 0,
//   "account_id": "b1cd046b-a3bf-4ef8-81a6-0afd74ecc455",
//   "name": "FolderA",
//   "checksums": null,
//   "audio_tracks": null,
//   "duration": null,
//   "label": "none",
//   "is_session_watermarked": false,
//   "parent_id": "4ecb383f-71a8-4233-b665-d8f75136f554",
//   "versions": 0,
//   "project_id": "e76653c4-6cc0-4c47-936b-f7885b477dc0",
//   "resource_id": null,
//   "private": false,
//   "frames": 0,
//   "autoversion_id": null,
//   "type": "folder",
//   "uploaded_at": "2020-08-18T03:31:59.697174Z",
//   "creator_id": "34b4f98a-7cc9-4159-8f46-c7c3d837fc6f",
//   "user_permissions": {
//     "can_download": true,
//     "can_modify_template": false,
//     "can_public_share_presentation": true,
//     "can_public_share_review_link": true,
//     "can_share_downloadable_presentation": true,
//     "can_share_downloadable_review_link": true,
//     "can_share_unwatermarked_presentation": true,
//     "can_share_unwatermarked_review_link": true
//   },
//   "shared": false,
//   "is_360": false,
//   "_type": "folder",
//   "comment_count": 0,
//   "archived_at": null,
//   "filetype": null,
//   "id": "039845e8-bffe-4d6b-88d3-c780bae06342",
//   "hard_deleted_at": null,
//   "copy": false,
//   "is_hls_required": false,
//   "archive_status": null,
//   "inserted_at": "2020-08-18T03:31:59.699011Z",
//   "filesize": 0
// }

// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON

$team_id = $jResp->stringOf('team_id');
$public_item_count = $jResp->IntOf('public_item_count');
$properties = $jResp->stringOf('properties');
$deleted_at = $jResp->stringOf('deleted_at');
$fps = $jResp->stringOf('fps');
$rating = $jResp->stringOf('rating');
$description = $jResp->stringOf('description');
$updated_at = $jResp->stringOf('updated_at');
$cover_asset_id = $jResp->stringOf('cover_asset_id');
$archive_scheduled_at = $jResp->stringOf('archive_scheduled_at');
$subtitle_tracks = $jResp->stringOf('subtitle_tracks');
$index = $jResp->stringOf('index');
$item_count = $jResp->IntOf('item_count');
$account_id = $jResp->stringOf('account_id');
$name = $jResp->stringOf('name');
$checksums = $jResp->stringOf('checksums');
$audio_tracks = $jResp->stringOf('audio_tracks');
$duration = $jResp->stringOf('duration');
$label = $jResp->stringOf('label');
$is_session_watermarked = $jResp->BoolOf('is_session_watermarked');
$parent_id = $jResp->stringOf('parent_id');
$versions = $jResp->IntOf('versions');
$project_id = $jResp->stringOf('project_id');
$resource_id = $jResp->stringOf('resource_id');
$v_private = $jResp->BoolOf('private');
$frames = $jResp->IntOf('frames');
$autoversion_id = $jResp->stringOf('autoversion_id');
$v_type = $jResp->stringOf('type');
$uploaded_at = $jResp->stringOf('uploaded_at');
$creator_id = $jResp->stringOf('creator_id');
$user_permissionsCan_download = $jResp->BoolOf('user_permissions.can_download');
$user_permissionsCan_modify_template = $jResp->BoolOf('user_permissions.can_modify_template');
$user_permissionsCan_public_share_presentation = $jResp->BoolOf('user_permissions.can_public_share_presentation');
$user_permissionsCan_public_share_review_link = $jResp->BoolOf('user_permissions.can_public_share_review_link');
$user_permissionsCan_share_downloadable_presentation = $jResp->BoolOf('user_permissions.can_share_downloadable_presentation');
$user_permissionsCan_share_downloadable_review_link = $jResp->BoolOf('user_permissions.can_share_downloadable_review_link');
$user_permissionsCan_share_unwatermarked_presentation = $jResp->BoolOf('user_permissions.can_share_unwatermarked_presentation');
$user_permissionsCan_share_unwatermarked_review_link = $jResp->BoolOf('user_permissions.can_share_unwatermarked_review_link');
$shared = $jResp->BoolOf('shared');
$is_360 = $jResp->BoolOf('is_360');
$v_type = $jResp->stringOf('_type');
$comment_count = $jResp->IntOf('comment_count');
$archived_at = $jResp->stringOf('archived_at');
$filetype = $jResp->stringOf('filetype');
$id = $jResp->stringOf('id');
$hard_deleted_at = $jResp->stringOf('hard_deleted_at');
$copy = $jResp->BoolOf('copy');
$is_hls_required = $jResp->BoolOf('is_hls_required');
$archive_status = $jResp->stringOf('archive_status');
$inserted_at = $jResp->stringOf('inserted_at');
$filesize = $jResp->IntOf('filesize');

?>