All things API and SDK related
Recently active
In short: the app created a second folder ( [removed by moderator] ) because the Box service account it authenticates with may have a different root folder ("0") than the Box user where your original folder ( [removed by moderator] ) exists.Your files are being saved inside the app's folder ( [removed by moderator] ), not your existing one ( [removed by moderator] ). To find them, look for the service account's content in your Box admin console — it may be listed under "Service Account" or "App User" content depending on your Box enterprise setup.How do I see Service Account or App User folders????
When a folder is moved to the trash, webhook notifications for the files inside are not sent. Is this by design?Notifications will be sent for folders inside a folder that has been moved to the trash.
Need to Access Folder Using Personal User Connect using Server Auth Jwt For Accessing Folder and Files.But Didnt find Authentication tabWithout this can we connect through App?I have generated config but didnt work might be enterprise id =0;Currently try to execute using this code.string path = @"D:\Box\Personal\config.json"; var reader = System.IO.File.ReadAllText(path); var config = BoxConfig.CreateFromJsonString(reader); var jwtAuth = new BoxJWTAuth(config);Is there any way to connect personal user with 3rd party api using Server Auth Jwt?
We have installed and are currently using Box for Salesforce in our Salesforce environment.We are now considering adding new functionality in Salesforce to integrate more closely with Box. Specifically, we are planning to develop a feature that automatically grants permissions to the corresponding folder in Box when a user is granted record-level access in Salesforce.Under the standard specifications of Box for Salesforce, permissions on the Box side are granted when the relevant user accesses the corresponding record in Salesforce. However, we would like to enable users to search and access content in Box without requiring them to first access the related record in Salesforce.To achieve this, we are considering using the box.Toolkit included in Box for Salesforce.Before proceeding, we would like to confirm the following technical constraints and specifications regarding the use of box.Toolkit: Is it correct to understand that API calls made via box.Toolkit are not counted toward the B
Hi everyone,I would like to delete a V1 Webhook associated with my application, as I am planning to migrate to V2 Webhook.However, according to the official documentation, V1 Webhooks cannot be completely deleted. I understand that the only option is to revert it back to developer mode.Could anyone advise on how to proceed with this?[Application Information]- App Name: Dify Box Integration- Client ID: [removed by moderator]
Hello,I am currently developing an external system integration that retrieves data from Box via API.For this integration, we need to use an access token. However, the default access token expiration time is 1 hour, and refreshing the token every hour is not operationally practical for our use case.I would like to ask the following: Is it possible to extend the expiration time of an access token beyond the default 1 hour? In the documentation below, it appears that “Access Token Expiry” can be configured:https://developer.box.com/guides/authentication/app-token/app-token-setup#primary-and-secondary-app-tokens Could you clarify how to modify the expiration time and whether there are any limitations? Additionally, regarding Limited Access Apps:The documentation recommends using a Limited Access App, but I am unable to create one in my Developer Console. Is the creation of a Limited Access App restricted to Box Enterprise accounts? If I am using a non-enterprise developer account, is t
I encountered the following error.Could you please advise me on how to resolve it? An Apex error occurred: box.Toolkit.BoxApiException: Unable to create folder for record id 0019D00000Z9QJyQAN - Details: The folder was returned with a null id.
hello,I created an API request with cUrl to give access to a folder to an external user. I used the collaboration request and it worked for a very few folders and doesn’t work with most of them.Here is my request#!/bin/bash# Set your Box API key and access token API_KEY="xoxp-My Api Key" ACCESS_TOKEN="My valid Token"# Set the folder ID to which you want to invite the user FOLDER_ID="198762389512"# Set the email address of the user you want to invite USER_EMAIL="useremail@gmail.com"# Set the collaboration role to "viewer" COLLAB_ROLE="viewer"# Define the cURL request curl -X POST "https://api.box.com/2.0/collaborations" \ -H "Authorization: Bearer $ACCESS_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "item": { "id": "'$FOLDER_ID'", "type": "folder" }, "accessible_by": { "login": "'$USER_EMAIL'", "type": "user" }, "role": "'$COLLAB_ROLE'" }' Here is the error message :{ "type": "error",
Hi Team,I am currently investigating the best security practice for the Box Java SDK into our enterprise application and have a question regarding private key handling and PKCS standards.We are evaluating secure key management approaches and would like to understand whether the Box Java SDK supports authentication using private keys in standard PKCS formats, specifically: PKCS#1 (RSA private key format) PKCS#8 (Private-Key Information Syntax Specification) More specifically: Does the Box Java SDK natively support loading private keys in PKCS#1 or PKCS#8 format for JWT-based authentication? If PKCS#1 is not directly supported, is PKCS#8 required? Does the SDK support encrypted PKCS#8 keys? Are there any recommended best practices from Box for handling private keys in Java (e.g., conversion requirements, keystore usage, or specific security providers)? We are particularly concerned about enterprise-grade security compliance and compatibility with standard Java security libraries.
I’m using cURL to access the API. I’ve successfully been able to search for a file by passing the template name and querying the value. What I’m looking to do is structure the query as such that I can find a list of files that don’t have any metadata assigned to them. For this application, every file needs this particular template assigned to them, and a file without it is a good indicator that it needs to be processed.
Having a problem when I try to open MSOffice files through the web application and BoxTools. I can open files in Office for Web but when I try Office for Desktop I get this message: “This action couldn’t be performed because Office doesn’t recognize the command it was given”I can open the files using Windows File Explorer through Box Drive. Any suggestions or ideas?
Hi,I have created an application (2392115) to read the files from a program. It is in status “Pending Authorization”. How long it takes to get approved? Thanks.
On 2026-02-05 11:54:44, we use the Upload file version API (https://developer.box.com/reference/post-files-id-content). I got the below response: {"type":"error","status":503,"code":"unavailable","help_url":"http:\/\/developers.box.com\/docs\/#errors","message":"Service is temporarily unavailable","request_id":"r1l5zti9zii42z1x"} The file size is small (~1MB). I want to know more detail for the above error. Thank you.
Hi Box Team,I have a question regarding how API calls are counted towards the license-based rate limit when downloading a file.According to the File Download Guide, when I download a file, the SDK (or my app) first sends:GET https://api.box.com/2.0/files/{file_id}/contentThen Box responds with a 302 redirect, and my client follows it by making:GET https://dl.boxcloud.com/d/1/[long-random-string]/downloadMy questions are: How many API calls are counted towards the license-based rate limit in this scenario — just the initial GET /files/{file_id}/content request, or both the API request and the subsequent dl.boxcloud.com download request? If the initial API request results in a 429 (rate limit exceeded) response, does this 429 request itself count against the license-based API call allocation? Thanks in advance for clarifying!
Hi everyone, I have a question regarding the application creation process in the Box Developer Console. Previously, as shown in the official documentation, it was possible to select "Limited Access App" when creating a new application.However, in my current console, that option no longer appears. Instead, I am only presented with the following three options under "Platform App":OAuth 2.0 Server Authentication (JWT) Client Credentials GrantMy questions are:1. Has the "Limited Access App" type been deprecated or integrated into these other options?2. If I want to create an app with restricted access (similar to the old Limited Access App), which option should I choose now? I would appreciate any clarification on this change. Thank you!
I’m trying to use this Nuget package (https://github.com/box/box-windows-sdk-v2/tree/main) to add metadata to files.I followed all the steps in this guide (https://github.com/box/box-windows-sdk-v2/blob/main/docs/Authentication.md#jwt-auth) using the JWT auth method, to set up the platform app, and set up the authentication in the code. I’m using the endpoint described here (https://github.com/box/box-windows-sdk-v2/blob/main/docs/FileMetadata.md#create-metadata-instance-on-file), but when I’m running the code I’m getting an error saying that the file with the Id I’m giving does not exist. I know this is not true because I can get to the same file in the UI, and the Ids match exactly.is there some special permission I need to give the app in order to access my files?
We occasionally get `401 Unauthorized` with `error="invalid_token"` when calling the Box Content API (e.g., DELETE /2.0/files/<FILE_ID>).This happens about ~2 times per month. Retrying the same operation later often succeeds.We believe the access token itself is not expired at the time of the request:- Access token was obtained at: <UTC timestamp>- Token lifetime: 60 minutes- Request time: <UTC timestamp> (within the lifetime)We also believe we are not using the same token in parallel (single job / single worker).Error response (sanitized):401 Unauthorized{ "request_url": "https://api.box.com/2.0/files/<FILE_ID>", "status_code": 401, "response_header": { "Date": ["Sat, 24 Jan 2026 17:03:05 GMT"], "Www-Authenticate": [ "Bearer realm=\"Service\", error=\"invalid_token\", error_description=\"The access token provided is invalid.\"" ] }}Questions:1) Besides expiration, what are common causes of `invalid_token` on Box APIs?2) Could token refresh / t
[TextContent(type='text', text='{\n "error": "403 The request requires higher privileges than provided by the access token.; Request ID: This is the error I get
I have a platform app that allows me to use a Java Web Token. I have it working locally on my desk top but it fails with a null pointer exception. (none type object has no attribute encodeIt is failing precisely in line 344 in create_jwt_assertion in box_sdk_gen/internal/utils.py
We are using Box with SSO set to Required and MFA is enforced at our IdP.When trying to view or regenerate a client secret (Client Credentials Grant) or generate a JWT key pair in the Developer Console, Box requires that the user has Box 2-Step Verification enabled.However, when SSO is Required, the Box-native 2-Step Verification setting is not available in the user’s security settings.Questions: Can IdP-side MFA be recognized by Box as satisfying the “2-Step Verification” requirement for Developer Console operations? If not, is it impossible to regenerate client secrets / JWT key pairs in an SSO Required environment without temporarily disabling SSO? Is there an official workaround or supported procedure for this scenario? We want to avoid relaxing SSO policies in production if possible.
When I search up a folder, I get results: The “Leases_Batch_1” is in a subfolder of “Nextpoint - Barings Loan” called “Leases”. When I try to search for the exact same query, one folder down, I get no results.Seems to behave the same using the API setting AncestorFolderIds. Any thoughts or work arounds would be greatly appreciated. If I be this much more specific with my search, I’m far more likely to get an accurate result.Thanks!
We are facing intermittent slowness of downloads and uploads of files to and from box folders. For time period like 6.00 AM to 10.00 AM IST ( 00:30 UTC to 04:30 UTC) we faced slowness multiple times. It does not seem to be related to throttling or rate limiting as no feedback received from the box server side. Download takes very long time and some times timesout. How to troubleshoot this ? How to conclude if it is box side issue or any other dependencies ?
Our application was impersonating an account that had viewer uploader permissions on a folder in Box and was able to delete a file thru the API (not Web UI).My understanding was a viewer uploader did not have delete permissions. Is that in the Web UI only?
Hey there! My organization uses box to store all our files and such. Locating files new and old can be really difficult on box which has been slowing down efficiency and files are getting lost. I noticed a ton of integrations that are created to help solve this but was curious if anyone has used any and seen success? I am specifically interested in integrations that are secure, low cost or free. Thanks!
I’m currently developing a PHP application that uploads and downloads files to and from a folder in Box. I’ve created a Box App, and it has been approved and enabled by the administrator.However, when I look at the Developer Console, it still appears that the app is not enabled. administrator console : developer console : In fact, when the application attempts to perform JWT authentication, I get the following error:GuzzleHttp\Exception\ClientException: Client error: `POST https://api.box.com/oauth2/token` resulted in a `400 Bad Request` response:{"error":"invalid_grant","error_description":"Please check the 'sub' claim. The 'sub' specified is invalid."} Here is the relevant portion of my code:$json = file_get_contents('KEY_PAIR_FILE.json');$config = json_decode($json);$private_key = $config->boxAppSettings->appAuth->privateKey;$passphrase = $config->boxAppSettings->appAuth->passphrase;$key = openssl_pkey_get_private($private_key, $passphrase);$authenticationUrl = 'ht
Already have an account? Login
No account yet? Create an account
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.