> For clean Markdown of any page, append .md to the page URL. > For a complete documentation index, see https://next.developer.frame.io/camera-to-cloud/api-reference/device-identify/llms.txt. > For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server. # Device Information GET https://api.frame.io/v2/devices/me Fetches information about the current device connection. Can be used to verify authorization token and returns information useful to present useful information in your user interface. Reference: https://next.developer.frame.io/camera-to-cloud/api-reference/device-identify ## Authentication - `Authorization` header (bearer token, required) — Bearer authentication of the form `Bearer `, where token is your auth token. ## Request ### Headers - `x-client-version` (string, optional, default: 0.0.0) — Firmware or software version of a C2C integration. Will be used to determine the correct Device Model configuration for the device when multiple are available. Must be a valid semantic version. For more on semantic versions, see here: https://semver.org/ ## Response ### 200 Device information response - `_type` (string, optional, default: project_device) — Resource type identifier - `id` (string, optional) - `asset_type` (string, optional) — The type of asset that this device will be producing - `creator_id` (string, optional) - `deleted_at` (string, optional) - `device_id` (string, optional) - `inserted_at` (string, optional) - `last_seen_at` (string, optional) - `last_known_firmware_version` (string, optional) — The last known firmware version reported by the device - `name` (string, optional) — Name of this device as shown in the iOS app and web app - `project_id` (string, optional) — The Project ID that this device is linked to - `updated_at` (string, optional) - `status` (enum, optional) - Allowed values: `offline`, `online` - `timezone` (string, optional) - `authorization` (ProjectDeviceAuthorization, optional) — Authorization details for a project device - `project` (Project, optional) - `channels` (list of ProjectDeviceChannel, optional) - `channel_count` (integer, optional) - `path_asset_type` (string, optional) - `path_name` (string, optional) - `required_metadata_attributes` (list of string, optional) ## Errors ### 401 Unauthorized Error Unauthorized response - `code` (integer, optional) - `errors` (list of HttpErrorErrorsItems, optional) - `message` (string, optional) ## Types ### ProjectDeviceAuthorization Authorization details for a project device - `_type` (enum, required) - Allowed values: `project_device_authorization` - `creator` (ProjectDeviceAuthorizationCreator, required) - `creator_id` (string, required) - `id` (string, required) - `inserted_at` (string, required) - `project_device_id` (string, required) - `scopes` (ProjectDeviceAuthorizationScopes, required) - `expires_at` (string, optional, nullable) ### Project - `archive_status` (enum, optional) — Archival status for this Project - Allowed values: `standard`, `archiving`, `unarchiving`, `archived` - `archived_at` (string, optional) — When a Project was archived - `archived_file_count` (integer, optional, default: 0) - `archived_storage` (integer, optional, default: 0) - `collaborator_count` (integer, optional, default: 0) - `deleted_at` (string, optional) — If deleted, when this Project was deleted - `description` (string, optional) - `file_count` (integer, optional, default: 0) - `folder_count` (integer, optional, default: 0) - `id` (string, optional) - `ignore_archive` (boolean, optional, default: false) - `inserted_at` (string, optional) — When was this Project created - `invite_url` (string, optional) - `name` (string, optional) — Name of this Project - `owner_id` (string, optional) - `private` (boolean, optional, default: false) - `project_preferences` (ProjectPreferences, optional) - `read_only` (boolean, optional, default: false) - `root_asset` (Asset, optional) — Accepts arbitrary key/value pairs for storing information on an asset - `root_asset_id` (string, optional) - `shared` (boolean, optional, default: false) - `storage` (integer, optional, default: 0) - `team` (Team, optional) - `team_id` (string, optional) - `updated_at` (string, optional) - `user_permissions` (UserPermissions, optional) - `user_preferences` (ProjectPreferences, optional) - `watermark` (Watermark, optional) ### ProjectDeviceChannel - `_type` (string, optional, default: project_device_channel) - `id` (string, optional) - `actor_id` (string, optional) - `asset_type` (enum, optional) - Allowed values: `audio`, `video`, `data` - `device_id` (string, optional) - `external_index` (double, optional) - `inserted_at` (string, optional) - `name` (string, optional) — Auto-generated name, based on the device model - `project_id` (string, optional) — The Project ID that this device is linked to - `project_device_id` (string, optional) - `real_time_logging_capable` (boolean, optional, default: false) - `status` (enum, optional) - Allowed values: `offline`, `online` - `updated_at` (string, optional) ### HttpErrorErrorsItems - `code` (integer, optional) - `detail` (string, optional) - `status` (integer, optional) - `title` (string, optional) ### ProjectDeviceAuthorizationCreator - `_type` (enum, required) - Allowed values: `user` - `id` (string, required) - `name` (string, required) ### ProjectDeviceAuthorizationScopes - `account_read` (boolean, required) - `action_create` (boolean, required) - `action_delete` (boolean, required) - `action_read` (boolean, required) - `action_update` (boolean, required) - `asset_create` (boolean, required) - `asset_delete` (boolean, required) - `asset_read` (boolean, required) - `asset_update` (boolean, required) - `auditlog_read` (boolean, required) - `comment_create` (boolean, required) - `comment_delete` (boolean, required) - `comment_read` (boolean, required) - `comment_update` (boolean, required) - `device_connect` (boolean, required) - `id` (string, required) - `offline` (boolean, required) - `presentation_create` (boolean, required) - `presentation_delete` (boolean, required) - `presentation_read` (boolean, required) - `presentation_update` (boolean, required) - `project_create` (boolean, required) - `project_delete` (boolean, required) - `project_read` (boolean, required) - `project_update` (boolean, required) - `reviewlink_create` (boolean, required) - `reviewlink_delete` (boolean, required) - `reviewlink_read` (boolean, required) - `reviewlink_update` (boolean, required) - `team_create` (boolean, required) - `team_read` (boolean, required) - `team_update` (boolean, required) - `webhook_create` (boolean, required) - `webhook_delete` (boolean, required) - `webhook_read` (boolean, required) - `webhook_update` (boolean, required) ### ProjectPreferences - `collaborator_can_download` (boolean, optional) - `collaborator_can_invite` (boolean, optional) - `collaborator_can_share` (boolean, optional) - `notify_on_new_asset` (boolean, optional) - `notify_on_new_collaborator` (boolean, optional) - `notify_on_new_comment` (boolean, optional) - `notify_on_updated_label` (boolean, optional) - `notify_slack` (boolean, optional) ### Asset Accepts arbitrary key/value pairs for storing information on an asset ### Team - `account_id` (string, optional) - `disable_sbwm_internally` (boolean, optional, default: false) - `creator_id` (string, optional) - `storage` (integer, optional, default: 0) - `default_font_color` (string, optional) - `access` (enum, optional) - Allowed values: `private`, `public`, `restricted` - `font_color` (string, optional) - `user_role` (TeamUserRole, optional) - `file_count` (integer, optional, default: 0) - `default_session_watermark_template` (SessionWatermarkTemplate, optional) - `link` (string, optional) - `asset_lifecycle_policy` (integer, optional) - `upload_url` (string, optional) - `admin_only_actions` (AdminOnlyAction, optional) - `deleted_at` (string, optional) - `default_background_color` (string, optional) - `storage_limit` (integer, optional) - `location` (string, optional) - `name` (string, optional) - `default_color` (string, optional) - `slack_webhook` (TeamSlackWebhook, optional) - `image_64` (string, optional) - `archived_storage` (integer, optional, default: 0) - `image_128` (string, optional) - `solo` (boolean, optional, default: false) - `account` (Account, optional) - `image_32` (string, optional) - `inserted_at` (string, optional) - `updated_at` (string, optional) - `project_count` (integer, optional, default: 0) - `duration` (integer, optional, default: 0) - `team_image` (string, optional) - `collaborator_count` (integer, optional, default: 0) - `bio` (string, optional) - `color` (string, optional) - `email_branding` (EmailBranding, optional) - `folder_count` (integer, optional, default: 0) - `dark_theme` (boolean, optional, default: false) - `default_session_watermark_template_id` (string, optional) - `session_watermark_templates` (list of SessionWatermarkTemplate, optional) - `id` (string, optional) - `member_limit` (integer, optional) - `frames` (integer, optional, default: 0) - `member_count` (integer, optional, default: 0) - `image_256` (string, optional) - `background_color` (string, optional) ### UserPermissions - `can_download` (boolean, optional) - `can_modify_template` (boolean, optional) - `can_public_share_presentation` (boolean, optional) - `can_public_share_review_link` (boolean, optional) - `can_share_downloadable_presentation` (boolean, optional) - `can_share_downloadable_review_link` (boolean, optional) - `can_share_unwatermarked_presentation` (boolean, optional) - `can_share_unwatermarked_review_link` (boolean, optional) ### Watermark - `image` (WatermarkImage, optional) - `text` (WatermarkText, optional) ### Asset0 - `` (string, optional) ### TeamUserRole ### SessionWatermarkTemplate - `account_id` (string, optional) - `app_default` (boolean, optional, default: false) - `creator_id` (string, optional) - `id` (string, optional) - `name` (string, optional) - `watermark_blocks` (list of SessionWatermarkBlock, optional) ### AdminOnlyAction - `lifecycle` (boolean, optional, default: false) ### TeamSlackWebhook ### Account - `invoice_emails` (list of string, optional) - `city` (string, optional) - `account_default_color` (string, optional) - `company_name` (string, optional) - `storage` (integer, optional) - `file_count` (integer, optional) - `owner` (User, optional) — User model - `upload_url` (string, optional) - `deleted_at` (string, optional) - `line1` (string, optional) - `postal_code` (string, optional) - `vat` (string, optional) - `company_address` (string, optional) - `lifetime_file_count` (integer, optional) - `state` (string, optional) - `teams` (list of Team, optional) - `image_64` (string, optional) - `archived_storage` (integer, optional) - `image_128` (string, optional) - `owner_id` (string, optional) - `user_count` (integer, optional) - `locked_at` (string, optional) - `image` (string, optional) - `team_count` (integer, optional) - `collaborator_role_count` (integer, optional) - `billing_emails` (string, optional) - `image_32` (string, optional) - `unpaid_at` (string, optional) - `inserted_at` (string, optional) - `updated_at` (string, optional) - `project_count` (integer, optional) - `duration` (integer, optional) - `delinquent_at` (string, optional) - `collaborator_count` (integer, optional) - `plan` (Plan, optional) - `watermark` (Watermark, optional) - `folder_count` (integer, optional) - `id` (string, optional) - `display_name` (string, optional) - `country` (string, optional) - `subscription` (Subscription, optional) - `account_members` (list of AccountMember, optional) - `frames` (integer, optional) - `member_count` (integer, optional) - `image_256` (string, optional) ### EmailBranding - `accent_color` (string, optional) - `background_color` (string, optional) - `image` (Image, optional) ### WatermarkImage - `alpha` (double, optional, default: 0.5) - `image` (Image, optional) - `position` (enum, optional, default: top_left) - Allowed values: `top_left`, `top_right`, `bottom_left`, `bottom_right` ### WatermarkText - `alpha` (double, optional, default: 0.5) - `lines` (list of string, optional) - `position` (enum, optional, default: top) - Allowed values: `top`, `center`, `bottom` ### SessionWatermarkBlock - `alpha` (double, optional, default: 0.5) - `data_points` (list of SessionWatermarkDataPoint, optional) - `font_size` (enum, optional, default: medium) - Allowed values: `small`, `medium`, `large`, `huge` - `name` (string, optional) - `position` (enum, optional, default: top_left) - Allowed values: `top_left`, `top_center`, `top_right`, `middle_left`, `middle_center`, `middle_right`, `bottom_left`, `bottom_center`, `bottom_right` - `position_reference_point` (enum, optional) - Allowed values: `top_left`, `top_center`, `top_right`, `middle_left`, `middle_center`, `middle_right`, `bottom_left`, `bottom_center`, `bottom_right` - `position_x` (integer, optional) - `position_y` (integer, optional) - `scroll_text` (enum, optional, default: none) - Allowed values: `none`, `ltr`, `rtl` - `text_alignment` (enum, optional, default: left) - Allowed values: `left`, `right`, `center` - `text_color` (string, optional, default: #FFFFFF) - `text_shadow` (boolean, optional, default: false) ### User User model - `digest_frequency` (string, optional) - `features_seen` (any, optional) - `profile_image_original` (any, optional) - `image_32` (string, optional) - `image_128` (string, optional) - `from_google` (boolean, optional) - `mfa_enforced_at` (string, optional) - `email` (string, optional) - `bio` (any, optional) - `name` (string, optional) - `image_64` (string, optional) - `timezone_value` (string, optional) - `account_id` (string, optional) - `updated_at` (string, optional) - `image_256` (string, optional) - `_type` (string, optional) - `user_hash` (string, optional) - `context` (any, optional) - `upload_url` (string, optional) - `location` (any, optional) - `phone` (any, optional) - `deleted_at` (any, optional) - `profile_image` (string, optional) - `first_login_at` (string, optional) - `joined_via` (string, optional) - `email_confirm_by` (any, optional) - `id` (string, optional) - `next_digest_date` (string, optional) - `email_preferences` (any, optional) - `last_seen` (string, optional) - `inserted_at` (string, optional) - `from_adobe` (boolean, optional) - `avatar_color` (string, optional) - `highest_account_role` (string, optional) - `integrations` (list of string, optional) - `roles` (UserRoles, optional) - `user_default_color` (string, optional) ### Plan - `archived_storage_limit` (integer, optional) - `autoscaling` (boolean, optional) - `available_features` (AvailableFeatures, optional) - `collaborator_limit` (integer, optional) - `cost` (integer, optional) - `default_plan` (boolean, optional) - `deleted_at` (string, optional) - `enterprise` (boolean, optional) - `file_limit` (integer, optional) - `id` (string, optional) - `inserted_at` (string, optional) - `lifetime_file_limit` (integer, optional) - `member_limit` (integer, optional) - `name` (string, optional) - `payment_method` (enum, optional) - Allowed values: `stripe`, `check` - `period` (enum, optional) - Allowed values: `monthly`, `yearly`, `semiannually` - `project_limit` (integer, optional) - `storage_limit` (integer, optional) - `team_limit` (integer, optional) - `tier` (enum, optional) - Allowed values: `free`, `starter`, `pro`, `team`, `business`, `enterprise` - `title` (string, optional) - `updated_at` (string, optional) - `user_limit` (integer, optional) - `user_max` (integer, optional) - `version` (integer, optional) ### Subscription - `account_id` (string, optional) - `archived_storage_limit` (integer, optional) - `balance` (integer, optional) - `cancellation_option` (string, optional) - `cancellation_reason` (string, optional) - `cancelled_at` (string, optional) - `deleted_at` (string, optional) - `id` (string, optional) - `inserted_at` (string, optional) - `last_payment_at` (string, optional) - `member_limit` (integer, optional) - `next_bill_at` (string, optional) - `on_trial` (boolean, optional) - `plan` (Plan, optional) - `plan_id` (string, optional) - `promotion_expires_at` (string, optional) - `promotion_id` (string, optional) - `requires_autoscaling` (boolean, optional) - `storage_limit` (integer, optional) - `subscription_end_at` (string, optional) - `total_archived_storage_limit` (integer, optional) - `total_lifetime_file_limit` (integer, optional) - `total_member_limit` (integer, optional) - `total_project_limit` (integer, optional) - `total_storage_limit` (integer, optional) - `total_user_limit` (integer, optional) - `updated_at` (string, optional) - `user_limit` (integer, optional) ### AccountMember - `accepted_at` (string, optional) - `account_id` (string, optional) - `declined_at` (string, optional) - `deleted_at` (string, optional) - `inserted_at` (string, optional) - `role` (enum, optional) - Allowed values: `admin`, `billing_manager`, `account_manager`, `member` - `updated_at` (string, optional) - `user_id` (string, optional) ### Image - `bucket` (string, optional) - `key` (string, optional) - `type` (string, optional, default: image/jpeg) - `uploaded` (boolean, optional, default: false) ### SessionWatermarkDataPoint - `order` (integer, optional) - `type` (enum, optional) - Allowed values: `email`, `username`, `ip_address`, `timestamp`, `custom_text`, `user_input` - `value` (string, optional) ### UserRoles - `admin` (boolean, optional) - `id` (string, optional) - `sales` (boolean, optional) - `support` (boolean, optional) - `service_desk` (boolean, optional) ### AvailableFeatures - `archival_storage` (boolean, optional) - `custom_branded_emails` (boolean, optional) - `custom_branded_presentations` (boolean, optional) - `reel_player` (boolean, optional) - `secure_sharing` (boolean, optional) - `session_based_watermarking` (boolean, optional) - `team_only_comments` (boolean, optional) ## Examples **Response** ```json { "_type": "project_device", "id": "4f2da3a9-71a3-4ab2-bcfe-b15a1b2c88e7", "asset_type": "video", "creator_id": "8437941d-dad1-467d-ba57-6758be7c5598", "device_id": "a6bde4d5-433d-40d9-89db-da46c484a499", "inserted_at": "2025-10-23T20:17:41.997130Z", "last_seen_at": "2025-10-23T20:28:33Z", "last_known_firmware_version": "1.0.0", "name": "Jpg-C2C-Hardware-123456789000000000", "project_id": "57b04261-a440-480b-b0e5-c2d3dee7591b", "updated_at": "2025-10-23T20:28:33.037163Z", "status": "offline", "timezone": "America/New_York", "authorization": { "_type": "project_device_authorization", "creator": { "_type": "user", "id": "8437941d-dad1-467d-ba57-6758be7c5598", "name": "Charlie Anderson" }, "creator_id": "8437941d-dad1-467d-ba57-6758be7c5598", "id": "ec45e65f-ab5e-4c00-b56a-8edb14a2d6de", "inserted_at": "2025-10-23T20:28:33.033487Z", "project_device_id": "4f2da3a9-71a3-4ab2-bcfe-b15a1b2c88e7", "scopes": { "account_read": false, "action_create": false, "action_delete": false, "action_read": false, "action_update": false, "asset_create": true, "asset_delete": false, "asset_read": false, "asset_update": false, "auditlog_read": false, "comment_create": false, "comment_delete": false, "comment_read": false, "comment_update": false, "device_connect": false, "id": "string", "offline": true, "presentation_create": false, "presentation_delete": false, "presentation_read": false, "presentation_update": false, "project_create": false, "project_delete": false, "project_read": false, "project_update": false, "reviewlink_create": false, "reviewlink_delete": false, "reviewlink_read": false, "reviewlink_update": false, "team_create": false, "team_read": false, "team_update": false, "webhook_create": false, "webhook_delete": false, "webhook_read": false, "webhook_update": false }, "expires_at": null }, "project": { "id": "57b04261-a440-480b-b0e5-c2d3dee7591b", "name": "C2C Demo v3", "_type": "project" }, "channels": [ { "_type": "project_device_channel", "id": "5fc73e79-1de7-4f8a-b016-6763e54d8c29", "actor_id": "8437941d-dad1-467d-ba57-6758be7c5598", "asset_type": "video", "device_id": "a6bde4d5-433d-40d9-89db-da46c484a499", "external_index": 0, "inserted_at": "2025-10-23T20:17:41.999683Z", "name": "Jpg C2C Hardware", "project_id": "57b04261-a440-480b-b0e5-c2d3dee7591b", "project_device_id": "4f2da3a9-71a3-4ab2-bcfe-b15a1b2c88e7", "real_time_logging_capable": false, "status": "offline", "updated_at": "2025-10-23T20:17:41.999683Z" } ] } ``` **SDK Code** ```python Device information with channels and authorization import requests url = "https://api.frame.io/v2/devices/me" headers = {"Authorization": "Bearer "} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript Device information with channels and authorization const url = 'https://api.frame.io/v2/devices/me'; const options = {method: 'GET', headers: {Authorization: 'Bearer '}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go Device information with channels and authorization package main import ( "fmt" "net/http" "io" ) func main() { url := "https://api.frame.io/v2/devices/me" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Bearer ") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby Device information with channels and authorization require 'uri' require 'net/http' url = URI("https://api.frame.io/v2/devices/me") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Bearer ' response = http.request(request) puts response.read_body ``` ```java Device information with channels and authorization import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://api.frame.io/v2/devices/me") .header("Authorization", "Bearer ") .asString(); ``` ```php Device information with channels and authorization request('GET', 'https://api.frame.io/v2/devices/me', [ 'headers' => [ 'Authorization' => 'Bearer ', ], ]); echo $response->getBody(); ``` ```csharp Device information with channels and authorization using RestSharp; var client = new RestClient("https://api.frame.io/v2/devices/me"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Bearer "); IRestResponse response = client.Execute(request); ``` ```swift Device information with channels and authorization import Foundation let headers = ["Authorization": "Bearer "] let request = NSMutableURLRequest(url: NSURL(string: "https://api.frame.io/v2/devices/me")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```