### Example Headers for Export Solution to Record Source: https://developer.quickbase.com/operation/exportSolutionToRecord Illustrates example values for required and optional headers, including 'QB-Realm-Hostname', 'Authorization', and 'X-QBL-Errors-As-Success'. ```Example X-QBL-Errors-As-Success Example: true QB-Realm-Hostname*Required Example: demo.quickbase.com QBL-Version Example: 0.2 User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Example Path Parameters for Export Solution to Record Source: https://developer.quickbase.com/operation/exportSolutionToRecord Provides example values for the 'solutionId' path parameter, which is required to identify the solution to be exported. ```Example solutionId*Required Example: f53acd36-1e75-47ed-910c-0ca4fd165a84 ``` -------------------------------- ### Get Fields for a Table (JavaScript Example) Source: https://developer.quickbase.com/operation/getFields Example using JavaScript to fetch fields for a table. Ensure you replace placeholders with your actual table ID, realm hostname, and user token. The `includeFieldPerms` parameter is optional. ```javascript const queryParams = { tableId: "{tableId}", includeFieldPerms: false }; const headers = { "QB-Realm-Hostname": "{your_realm_hostname}", "Authorization": "QB-USER-TOKEN {your_user_token}" }; fetch(`https://api.quickbase.com/v1/fields?${new URLSearchParams(queryParams)}`, { method: "GET", headers: headers }) .then(response => { if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } return response.json(); }) .then(data => { console.log(data); }) .catch(error => { console.error("Error fetching fields:", error); }); ``` -------------------------------- ### Create Solution Request Body Source: https://developer.quickbase.com/operation/createSolution Example of a request body for creating a Quickbase solution. This example uses placeholder QBL syntax. ```json 1 הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``` -------------------------------- ### Export Solution API Request Source: https://developer.quickbase.com/operation/exportSolution This snippet shows how to construct a GET request to export a Quickbase solution. It includes example values for path parameters and headers. ```http get https://api.quickbase.com/v1/solutions/{solutionId} ### Path Parameters solutionId*Required Example: f53acd36-1e75-47ed-910c-0ca4fd165a84 ### Headers QBL-Version Example: 0.2 QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Example Query Parameters for Export Solution to Record Source: https://developer.quickbase.com/operation/exportSolutionToRecord Provides example values for the 'tableId' and 'fieldId' query parameters, which are required to specify the destination table and file attachment field for the exported solution. ```Example tableId*Required Example: buirwys7m fieldId*Required Example: 8 ``` -------------------------------- ### Update App Request Body Example Source: https://developer.quickbase.com/operation/updateApp This example shows the structure of the request body for updating an app. Any properties not included will remain unchanged. ```json { "name": "My Updated App Name", "iconId": 1, "variables": [ { "name": "myVariable", "value": "myValue" } ] } ``` -------------------------------- ### Get Solution Information Source: https://developer.quickbase.com/operation/getSolutionPublic Use this endpoint to retrieve metadata and resource information for a solution. It requires the solution ID and your Quickbase realm hostname. ```bash curl -X GET \ 'https://api.quickbase.com/v1/solutions/{solutionId}/resources' \ -H 'X-QBL-Errors-As-Success: true' \ -H 'QB-Realm-Hostname: demo.quickbase.com' \ -H 'User-Agent: FileService_Integration_V2.1' \ -H 'Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx' ``` -------------------------------- ### Address Field Returned Data Example Source: https://developer.quickbase.com/fieldInfo Example of how address data is returned, typically as a single formatted string. ```json { "value": "10 main street, Cambridge, MA 02139" } ``` -------------------------------- ### Example Headers for Delete User Token Request Source: https://developer.quickbase.com/operation/deleteUserToken Provides example values for the required headers when making a DELETE request to the user token endpoint. The QB-Realm-Hostname and Authorization headers are mandatory for proper request routing and authentication. ```HTTP QB-Realm-Hostname: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### List-User Field Returned Data Example Source: https://developer.quickbase.com/fieldInfo Shows the format for an array of user objects when returned from Quickbase. Each object follows the same structure as a single user. ```json { "value": [ { "email": "user1@quickbase.com", "id": "123456.ab1s", "name": "user 1" }, { "email": "user2@quickbase.com", "id": "254789.mkgp", "name": "user 2" }, { "email": "user3@quickbase.com", "id": "789654.vc2s", "name": "user 3" } ] } ``` -------------------------------- ### Get an app Source: https://developer.quickbase.com/operation/getApp Returns the main properties of an application, including application variables. ```APIDOC ## GET /v1/apps/{appId} ### Description Returns the main properties of an application, including application variables. ### Method GET ### Endpoint https://api.quickbase.com/v1/apps/{appId} ### Parameters #### Path Parameters - **appId** (string) - Required - The unique identifier of an app #### Headers - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - Information is entered by the person or utility invoking the API. Choose between the default in your toolkit or custom create it. Being as descriptive as possible will help in identification and troubleshooting. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ```http GET https://api.quickbase.com/v1/apps/bp2ryku2u Host: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ### Response #### Success Response (200) (Response details not provided in the source text) #### Response Example (Response example not provided in the source text) ``` -------------------------------- ### Get Tables API Request Source: https://developer.quickbase.com/operation/getAppTables This snippet demonstrates how to make a GET request to the Quickbase API to retrieve all tables within an application. Ensure you replace placeholders with your actual appId, QB-Realm-Hostname, and Authorization token. ```http GET https://api.quickbase.com/v1/tables?appId={appId} ### Query Parameters appId*Required Example: bp2ryku2u ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Time of Day Data Example Source: https://developer.quickbase.com/fieldInfo Shows the expected string format for time of day data in hh:mm:ss.sss format. ```json { "value": "16:30:00" } ``` -------------------------------- ### User Field Submitted Data Example Source: https://developer.quickbase.com/fieldInfo Illustrates the minimal data required when submitting user information to Quickbase. Only the user's ID is necessary. ```json { "value": { "id": "123456.ab1s" } } ``` -------------------------------- ### Get App Events Request Source: https://developer.quickbase.com/operation/getAppEvents This snippet demonstrates how to make a GET request to retrieve app events. Ensure you replace placeholders like {appId} and provide the necessary Authorization and QB-Realm-Hostname headers. ```http GET https://api.quickbase.com/v1/apps/{appId}/events ### Path Parameters appId*Required Example: bp2ryku2u ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Date Data Example Source: https://developer.quickbase.com/fieldInfo Shows the expected string format for date data, adhering to YYYY-MM-DD. Keywords like 'today' are also accepted. ```json { "value": "2019-12-18" } ``` -------------------------------- ### Text Field Data Example Source: https://developer.quickbase.com/fieldInfo Shows the format for submitting and receiving data for a text field. ```json { "value": "I love this API documentation" } ``` -------------------------------- ### Currency Field Data Example Source: https://developer.quickbase.com/fieldInfo Shows the expected JSON format for submitting or receiving data for a currency field. ```json { "value": 123 } ``` -------------------------------- ### URL Field Data Example Source: https://developer.quickbase.com/fieldInfo Shows the expected JSON format for submitting or receiving data for a URL field. ```json { "value": "www.quickbase.com" } ``` -------------------------------- ### Email Address Data Example Source: https://developer.quickbase.com/fieldInfo Shows the format for submitting or retrieving data in an email address field, represented as a string. ```json { "value": "user@quickbase.com" } ``` -------------------------------- ### Summary Field Schema Example Source: https://developer.quickbase.com/fieldInfo Configures a summary field with target and reference field IDs, a summary function, and a query condition. ```json { "summaryReferenceFieldId": 6, "summaryTargetFieldId": 2, "summaryFunction": "AVG", "summaryQuery": "{'1'.EX.'08-03-2020'}" } ``` -------------------------------- ### DateTime Returned Data Example Source: https://developer.quickbase.com/fieldInfo Shows the ISO 8601 format for returned datetime data, including the UTC indicator 'Z'. ```json { "value": "2019-12-18T08:00:00Z" } ``` -------------------------------- ### File Attachment Metadata Example Source: https://developer.quickbase.com/fieldInfo Shows the structure of metadata returned when accessing file fields, including download URIs and version history. ```json { "value": { "url": "/files/bqgarajgq/1/2", "reservedBy": { "email": "jsmith@quickbase.com", "id": "123456.ab1s", "name": "Juliet Smith", "userName": "jsmith" }, "versions": [ { "versionNumber": 1, "fileName": "report.pdf", "uploaded": "2019-12-18T08:00:00Z", "creator": { "email": "tanderson@quickbase.com", "id": "123456.ab1s", "name": "Thomas A. Anderson", "userName": "tanderson" } }, { "versionNumber": 2, "fileName": "report-corrected.pdf", "uploaded": "2019-12-19T08:00:00Z", "creator": { "email": "jsmith@quickbase.com", "id": "123457.ab1s", "name": "Juliet Smith", "userName": "jsmith" } } ] } } ``` -------------------------------- ### List-Text (Multi-Select) Data Example Source: https://developer.quickbase.com/fieldInfo Shows the data format for a multi-select text field, where the selected choices are returned as an array of strings. ```json { "value": [ "choice one", "choice two" ] } ``` -------------------------------- ### Get Records Modified Since Request Example Source: https://developer.quickbase.com/operation/recordsModifiedSince This snippet demonstrates how to make a POST request to the 'recordsModifiedSince' endpoint. Ensure you include the required 'QB-Realm-Hostname' and 'Authorization' headers. ```javascript post("https://api.quickbase.com/v1/records/modifiedSince", { "headers": { "QB-Realm-Hostname": "demo.quickbase.com", "User-Agent": "FileService_Integration_V2.1", "Authorization": "QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx" }, "body": { "fieldIds": [ 1 ], "modifiedAfter": "2023-10-27T10:00:00Z" } }); ``` -------------------------------- ### Get tables for an app Source: https://developer.quickbase.com/operation/getAppTables Gets a list of all the tables that exist in a specific application. The properties for each table are the same as what is returned in Get table. ```APIDOC ## GET /v1/tables ### Description Gets a list of all the tables that exist in a specific application. The properties for each table are the same as what is returned in Get table. ### Method GET ### Endpoint https://api.quickbase.com/v1/tables ### Query Parameters - **appId** (string) - Required - The unique identifier of an app ### Headers - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - This is entered by the person or utility invoking the API. You might custom create this or use the default one of your toolkit. Being descriptive here may offer more identification and troubleshooting capabilities. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ```http GET /v1/tables?appId=bp2ryku2u HTTP/1.1 Host: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ### Response #### Success Response (200) (Response details not provided in the source text) #### Response Example (Response example not provided in the source text) ``` -------------------------------- ### Create Solution Headers Source: https://developer.quickbase.com/operation/createSolution Required headers for creating a Quickbase solution. Ensure you provide your Quickbase domain, authentication token, and a user agent. ```http X-QBL-Errors-As-Success: true QB-Realm-Hostname: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Percent Field Data Example Source: https://developer.quickbase.com/fieldInfo Shows the expected JSON format for submitting or receiving data for a percent field. Note that 75% is represented as 0.75. ```json { "value": 0.75 } ``` -------------------------------- ### Create Solution Source: https://developer.quickbase.com/operation/createSolution Creates a solution using the provided QBL. Learn more about QBL syntax. The API supports custom headers for error handling and authentication. ```APIDOC ## POST /v1/solutions ### Description Creates a solution using the provided QBL. Learn more about QBL syntax. ### Method POST ### Endpoint https://api.quickbase.com/v1/solutions ### Headers - **X-QBL-Errors-As-Success** (boolean) - Optional - If this header is set to true, the API will return a 207 status code even if errors occur. The response will contain X-QBL-ORIGINAL-STATUS header with the original error code, and the response body will include the error details. - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - Information is entered by the person or utility invoking the API. Choose between the default in your toolkit or custom create it. Being as descriptive as possible will help in identification and troubleshooting. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Body (The request body schema is not explicitly defined in the source, but it is indicated as requiring QBL syntax.) ### Response (Success and error response details are not explicitly defined in the source.) ### Code Samples #### Headers Example ``` X-QBL-Errors-As-Success: true QB-Realm-Hostname: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ``` -------------------------------- ### Run a Query for Records Source: https://developer.quickbase.com/operation/runQuery This snippet demonstrates how to send a query to the Quickbase API to retrieve records. It includes example headers and a request body with a basic query. ```javascript fetch("https://api.quickbase.com/v1/records/query", { method: "POST", headers: { "QB-Realm-Hostname": "demo.quickbase.com", "User-Agent": "FileService_Integration_V2.1", "Authorization": "QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx" }, body: JSON.stringify({ "from": "1", "select": [ {"type": "F1"}, {"type": "F2"} ], "where": "{F1.EX.'Some Value'}" }) }) .then(response => response.json()) .then(data => console.log(data)); ``` -------------------------------- ### Get a Table Source: https://developer.quickbase.com/operation/getTable Gets the properties of an individual table that is part of an application. ```APIDOC ## GET /v1/tables/{tableId}?appId={appId} ### Description Gets the properties of an individual table that is part of an application. ### Method GET ### Endpoint /v1/tables/{tableId}?appId={appId} ### Parameters #### Path Parameters - **tableId** (string) - Required - The unique identifier (dbid) of the table. #### Query Parameters - **appId** (string) - Required - The unique identifier of an app #### Headers - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - This is entered by the person or utility invoking the API. You might custom create this or use the default one of your toolkit. Being descriptive here may offer more identification and troubleshooting capabilities. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ``` GET https://api.quickbase.com/v1/tables/{tableId}?appId={appId} Headers: QB-Realm-Hostname: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### Get Trustees for an App (GET Request) Source: https://developer.quickbase.com/operation/getTrustees This snippet shows how to make a GET request to retrieve trustees for a given app ID. Ensure you provide the correct realm hostname and authorization token. ```http GET https://api.quickbase.com/v1/app/{appId}/trustees ### Path Parameters appId*Required Example: bp2ryku2u ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Create Solution Request Source: https://developer.quickbase.com/operation/createSolution This snippet shows the structure of a request to create a Quickbase solution. It includes the endpoint, HTTP method, and required headers. ```http post https://api.quickbase.com/v1/solutions ``` -------------------------------- ### List Solution Changes Source: https://developer.quickbase.com/operation/changesetSolution This snippet demonstrates how to list changes that would occur if a provided QBL were to be applied to a solution. Ensure you have the correct solution ID and authentication headers. ```HTTP PUT https://api.quickbase.com/v1/solutions/{solutionId}/changeset ### Path Parameters solutionId*Required Example: f53acd36-1e75-47ed-910c-0ca4fd165a84 ### Headers X-QBL-Errors-As-Success Example: true QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ### Body 1 הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX ``` -------------------------------- ### DateTime Submitted Data Example (Offset) Source: https://developer.quickbase.com/fieldInfo Example of submitting datetime data with an explicit timezone offset (-04:00). Millisecond precision is also supported. ```json { "value": "2019-12-18T12:00:00.000-04:00" } ``` -------------------------------- ### Copy App Request Source: https://developer.quickbase.com/operation/copyApp This snippet shows how to construct a request to copy an existing Quickbase application. Ensure all required parameters and headers are included. ```bash curl -X POST \ 'https://api.quickbase.com/v1/apps/{appId}/copy' \ -H 'QB-Realm-Hostname: demo.quickbase.com' \ -H 'User-Agent: FileService_Integration_V2.1' \ -H 'Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx' \ -H 'Content-Type: application/json' \ -d '{ "1": "הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה", "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX": "" }' ``` -------------------------------- ### DateTime Submitted Data Example (UTC) Source: https://developer.quickbase.com/fieldInfo Example of submitting datetime data without a timezone offset, which will be interpreted in the application's default timezone. ```json { "value": "2019-12-18T12:00:00" } ``` -------------------------------- ### Get Report Schema Source: https://developer.quickbase.com/operation/getReport This snippet shows how to make a GET request to retrieve the schema for a specific report. Ensure you provide the correct reportId, tableId, and authentication headers. ```http GET https://api.quickbase.com/v1/reports/{reportId}?tableId={tableId} ### Path Parameters reportId*Required Example: 1 ### Query Parameters tableId*Required Example: bck7gp3q2 ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Create solution from record Source: https://developer.quickbase.com/operation/createSolutionFromRecord Creates a solution using the QBL from the specified record. This operation requires the table ID, a file attachment field ID, and the record ID from which to create the solution. ```APIDOC ## POST /solutions/fromrecord ### Description Creates a solution using the QBL from the specified record. ### Method GET ### Endpoint https://api.quickbase.com/v1/solutions/fromrecord ### Parameters #### Query Parameters - **tableId** (string) - Required - The unique identifier (dbid) of the table. - **fieldId** (integer) - Required - The unique identifier (fid) of the field. It needs to be a file attachment field. - **recordId** (integer) - Required - The unique identifier of the record. #### Headers - **X-QBL-Errors-As-Success** (boolean) - Optional - If this header is set to true, the API will return a 207 status code even if errors occur. The response will contain X-QBL-ORIGINAL-STATUS header with the original error code, and the response body will include the error details. - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - Information is entered by the person or utility invoking the API. Choose between the default in your toolkit or custom create it. Being as descriptive as possible will help in identification and troubleshooting. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ```json { "tableId": "buirwys7m", "fieldId": 8, "recordId": 1, "X-QBL-Errors-As-Success": true, "QB-Realm-Hostname": "demo.quickbase.com", "User-Agent": "FileService_Integration_V2.1", "Authorization": "QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx" } ``` ### Response #### Success Response (200) This endpoint does not explicitly define a success response body in the provided documentation. Refer to the general API documentation for details on success responses. #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### User Field Formula Example Source: https://developer.quickbase.com/fieldInfo Example of a user field schema using a formula to return the current user. This is useful for tracking who performed an action or is assigned a task. ```json { "label": "Current User", "fieldType": "user", "appearsByDefault": true, "audited": false, "bold": false, "fieldHelp": "Returns the current user", "findEnabled": true, "addToForms": true, "properties": { "formula": "User()" } } ``` -------------------------------- ### Create App Request Source: https://developer.quickbase.com/operation/createApp This snippet demonstrates how to make a POST request to the Quickbase API to create a new application. Ensure you include the required headers and the application details in the request body. ```javascript fetch("https://api.quickbase.com/v1/apps", { method: "POST", headers: { "QB-Realm-Hostname": "YOUR_REALM_HOSTNAME", "User-Agent": "YOUR_USER_AGENT", "Authorization": "QB-USER-TOKEN YOUR_USER_TOKEN" }, body: JSON.stringify({ "name": "My New App", "வதில்": "YOUR_APP_ID" }) }) .then(response => response.json()) .then(data => console.log(data)); ``` -------------------------------- ### Checkbox Field Formula Example Source: https://developer.quickbase.com/fieldInfo Example of a checkbox field schema that uses a formula to determine its value. This formula checks if the current date is after the 'Date Created' field. ```json { "label": "Is Late?", "fieldType": "checkbox", "appearsByDefault": true, "audited": false, "bold": false, "fieldHelp": "Returns whether a project is late", "findEnabled": true, "addToForms": true, "properties": { "formula": "[Date Created] >= Now()" } } ``` -------------------------------- ### Export Solution Source: https://developer.quickbase.com/operation/exportSolution Returns the QBL for the specified solution. Learn more about QBL syntax. ```APIDOC ## GET /v1/solutions/{solutionId} ### Description Returns the QBL for the specified solution. Learn more about QBL syntax. ### Method GET ### Endpoint /v1/solutions/{solutionId} ### Parameters #### Path Parameters - **solutionId** (string) - Required - The unique identifier (UUID) or the alias of the solution. #### Headers - **QBL-Version** (string) - Optional - The QBL version to be used for the export. If not specified the default would be used. - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - Information is entered by the person or utility invoking the API. Choose between the default in your toolkit or custom create it. Being as descriptive as possible will help in identification and troubleshooting. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ``` GET https://api.quickbase.com/v1/solutions/{solutionId} Headers: QBL-Version: 0.2 QB-Realm-Hostname: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ### Response #### Success Response (200) - **QBL** (string) - The Quickbase Markup Language for the solution. #### Response Example ```json { "example": "..." } ``` ``` -------------------------------- ### Get App Roles Source: https://developer.quickbase.com/operation/getRoles This snippet shows how to make a GET request to retrieve all roles for a given application ID. Ensure you have admin access to the app and include the necessary headers. ```HTTP GET https://api.quickbase.com/v1/apps/{appId}/roles ### Path Parameters appId*Required Example: bp2ryku2u ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Get Users API Request Source: https://developer.quickbase.com/operation/getUsers This snippet shows a sample request to the Get Users API endpoint. It includes query parameters for account ID and required headers for authentication and realm hostname. ```HTTP POST https://api.quickbase.com/v1/users ### Query Parameters accountId Example: 1562946434000 ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ### Body 1 ``` -------------------------------- ### Run Formula API Request Source: https://developer.quickbase.com/operation/runFormula This snippet demonstrates how to make a POST request to the Quickbase API to run a formula. Ensure you include the correct 'QB-Realm-Hostname' and 'Authorization' headers. ```javascript const payload = { "from": "tblXXXXXX", "formula": "{1.F.1}" }; const headers = { "Authorization": "QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx", "QB-Realm-Hostname": "demo.quickbase.com", "Content-Type": "application/json" }; fetch('https://api.quickbase.com/v1/formula/run', { method: 'POST', headers: headers, body: JSON.stringify(payload) }) .then(response => response.json()) .then(data => { console.log('Success:', data); }) .catch((error) => { console.error('Error:', error); }); ``` -------------------------------- ### List-User Field Submitted Data Example Source: https://developer.quickbase.com/fieldInfo Illustrates the minimal data required when submitting multiple user IDs to Quickbase for a multi-user field. Only the user IDs are necessary. ```json { "value": [ { "id": "123456.ab1s" }, { "id": "254789.mkgp" }, { "id": "789654.vc2s" } ] } ``` -------------------------------- ### Phone Number Field Formula Example Source: https://developer.quickbase.com/fieldInfo Example of a phone number field schema using a formula to combine area code and base phone number. It also specifies that extensions are used. ```json { "label": "Phone Number with Area Code", "fieldType": "phone", "appearsByDefault": true, "audited": false, "bold": false, "fieldHelp": "Returns the phone number + area code", "findEnabled": true, "addToForms": true, "properties": { "formula": "[Area Code]&[Base Phone Number]", "hasExtension": true, "useI18NFormat": true } } ``` -------------------------------- ### User Field Returned Data Example Source: https://developer.quickbase.com/fieldInfo Shows the structure of a user object when returned from Quickbase. It includes email, ID, full name, and optionally a username. ```json { "value": { "email": "jsmith@quickbase.com", "id": "123456.ab1s", "name": "Juliet Smith", "userName": "jsmith" } } ``` -------------------------------- ### Pagination Metadata Example Source: https://developer.quickbase.com/pagination This JSON object illustrates the metadata returned by paginated Quickbase API requests. It includes details like total records, records in the current response, number of fields, and parameters for skipping and limiting records. ```json { "metadata": { "totalRecords": 10, "numRecords": 1, "numFields": 3, "skip": 0, "top": 10 } } ``` -------------------------------- ### Get Temporary Token API Endpoint Source: https://developer.quickbase.com/operation/getTempTokenDBID This snippet shows the HTTP GET request to the Quickbase API endpoint for obtaining a temporary token. It includes the base URL and the dynamic DBID path parameter. ```HTTP get https://api.quickbase.com/v1/auth/temporary/{dbid} ``` -------------------------------- ### Get Fields for a Table (HTTP Request) Source: https://developer.quickbase.com/operation/getFields This snippet shows the structure of an HTTP GET request to retrieve all fields for a specific table. It includes placeholders for the table ID, realm hostname, and authorization token. ```http GET https://api.quickbase.com/v1/fields?tableId={tableId} Headers: QB-Realm-Hostname: {your_realm_hostname} Authorization: QB-USER-TOKEN {your_user_token} ``` -------------------------------- ### Get Field Usage API Request Source: https://developer.quickbase.com/operation/getFieldUsage This snippet shows the structure of an HTTP GET request to retrieve usage statistics for a specific field. It includes placeholders for the field ID, table ID, and authentication token. ```http GET https://api.quickbase.com/v1/fields/usage/{fieldId}?tableId={tableId} ### Path Parameters fieldId*Required Example: 1 ### Query Parameters tableId*Required Example: bck7gp3q2 ### Headers QB-Realm-Hostname*Required Example: demo.quickbase.com User-Agent Example: FileService_Integration_V2.1 Authorization*Required Example: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` -------------------------------- ### Solutions API Source: https://developer.quickbase.com/ Manage Quickbase solutions, including export, update, creation, and change tracking. ```APIDOC ## Solutions API ### Description Provides endpoints for managing Quickbase solutions. ### Endpoints #### Export a solution Exports a Quickbase solution. #### Update a solution Updates an existing Quickbase solution. #### Create a solution Creates a new Quickbase solution. #### Export solution to record Exports a solution to a record. #### Create solution from record Creates a solution from a record. #### Update solution from record Updates a solution from a record. #### List solution changes Lists changes made to a solution. #### List solution changes from record Lists solution changes originating from a record. #### Get solution information Retrieves information about a Quickbase solution. ``` -------------------------------- ### Create Table API Request Source: https://developer.quickbase.com/operation/createTable This snippet demonstrates how to make a POST request to the Quickbase API to create a new table. Ensure you include the required appId query parameter and authorization headers. ```bash curl -X POST 'https://api.quickbase.com/v1/tables?appId={appId}' -H 'Authorization: QB-USER-TOKEN xxxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx' -H 'QB-Realm-Hostname: demo.quickbase.com' -H 'Content-Type: application/json' -d '{ "name": "New Table Name" }' ``` -------------------------------- ### Get fields for a table Source: https://developer.quickbase.com/operation/getFields Retrieves the properties for all fields within a specific table. The properties returned for each field are identical to those provided by the Get field operation. You can optionally include custom permissions for the fields by setting `includeFieldPerms` to true. ```APIDOC ## GET /v1/fields ### Description Gets the properties for all fields in a specific table. The properties for each field are the same as in Get field. ### Method GET ### Endpoint https://api.quickbase.com/v1/fields ### Query Parameters - **tableId** (string) - Required - The unique identifier (dbid) of the table. - **includeFieldPerms** (boolean) - Optional - Set to 'true' if you'd like to get back the custom permissions for the field(s). ### Headers - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - This is entered by the person or utility invoking the API. You might custom create this or use the default one of your toolkit. Being descriptive here may offer more identification and troubleshooting capabilities. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ```http GET https://api.quickbase.com/v1/fields?tableId=bck7gp3q2&includeFieldPerms=false Host: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ### Response #### Success Response (200) - **field1** (type) - Description - **field2** (type) - Description #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### Insert/Update Records in Quickbase Source: https://developer.quickbase.com/operation/upsert This snippet demonstrates how to insert and/or update records in a Quickbase table. It shows the necessary headers and the structure of the request body, including fields for inserts and updates. ```json { "data": [ { "recordId": "1", "fields": { "1": "value1", "2": "value2" } }, { "recordId": "2", "fields": { "3": "value3", "4": "value4" } } ] } ``` -------------------------------- ### Exchange SSO Token (Python) Source: https://developer.quickbase.com/operation/exchangeSsoToken This Python snippet demonstrates how to exchange an SSO token for a Quickbase token. It requires a valid SAML assertion to be provided. ```python import requests import json url = "https://api.quickbase.com/v1/auth/oauth/token" headers = { "Content-Type": "application/json", "QB-Realm-Hostname": "YOUR_REALM_HOSTNAME", "User-Agent": "YOUR_USER_AGENT" } payload = { "grant_type": "urn:ietf:params:oauth:grant-type:saml2-bearer", "assertion": "YOUR_SAML_ASSERTION" } response = requests.post(url, headers=headers, data=json.dumps(payload)) print(f"Status Code: {response.status_code}") print(f"Response Body: {response.json()}") ``` -------------------------------- ### Get audit logs Source: https://developer.quickbase.com/operation/audit Gathers the audit logs for a single day from a realm. This API is available for enterprise users only. ```APIDOC ## POST /v1/audit ### Description Gathers the audit logs for a single day from a realm. By default, this API returns 10,000 entries, which can be changed with the numRows parameter. Integrators can iterate through batches to get an entire day's worth of logs. Each realm has a maximum entitlement of querying 1,000 days per year. Requests for paginated data do not count towards the annual limit. Transactional rate limits are 10 per 10 seconds. **Note:** This API is available for enterprise users only. ### Method POST ### Endpoint https://api.quickbase.com/v1/audit ### Headers - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - This is entered by the person or utility invoking the API. Being descriptive here may offer more identification and troubleshooting capabilities. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request. ### Request Body (No specific fields documented in the source) ### Response (No specific fields documented in the source) ### Code Samples #### Headers Example ``` QB-Realm-Hostname: demo.quickbase.com User-Agent: FileService_Integration_V2.1 Authorization: QB-USER-TOKEN xxxxxx_xxx_xxxxxxxxxxxxxxxxxxxxxxx ``` ``` -------------------------------- ### Lookup Field Schema Example Source: https://developer.quickbase.com/fieldInfo Defines the schema for a lookup field, specifying the target and reference field IDs. ```json { "lookupTargetFieldId": 3, "lookupReferenceFieldId": 6 } ``` -------------------------------- ### Update a solution Source: https://developer.quickbase.com/operation/updateSolution Updates the solution using the provided QBL. Learn more about QBL syntax. ```APIDOC ## PUT /v1/solutions/{solutionId} ### Description Updates the solution using the provided QBL. Learn more about QBL syntax. ### Method PUT ### Endpoint /v1/solutions/{solutionId} ### Parameters #### Path Parameters - **solutionId** (string) - Required - The unique identifier (UUID) or the alias of the solution. #### Headers - **X-QBL-Errors-As-Success** (boolean) - Optional - If this header is set to true, the API will return a 207 status code even if errors occur. The response will contain X-QBL-ORIGINAL-STATUS header with the original error code, and the response body will include the error details. - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - Information is entered by the person or utility invoking the API. Choose between the default in your toolkit or custom create it. Being as descriptive as possible will help in identification and troubleshooting. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. #### Request Body - The request body should contain the QBL definition for the solution update. ``` -------------------------------- ### Create Table Source: https://developer.quickbase.com/operation/createTable Creates a new table in a specified application. Requires app ID, realm hostname, and authorization. ```APIDOC ## POST /v1/tables?appId={appId} ### Description Creates a table in an application. ### Method POST ### Endpoint https://api.quickbase.com/v1/tables?appId={appId} ### Parameters #### Query Parameters - **appId** (string) - Required - The unique identifier of an app #### Headers - **QB-Realm-Hostname** (string) - Required - Your Quickbase domain, for example demo.quickbase.com - **User-Agent** (string) - Optional - This is entered by the person or utility invoking the API. You might custom create this or use the default one of your toolkit. Being descriptive here may offer more identification and troubleshooting capabilities. - **Authorization** (string) - Required - The Quickbase authentication scheme you are using to authenticate the request, as described on the authorization page. ### Request Example ```json { "example": "request body" } ``` ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example ```json { "example": "response body" } ``` ``` -------------------------------- ### Record ID Data Example Source: https://developer.quickbase.com/fieldInfo Shows the simple integer format of a record ID when returned in query results. ```json { "value": 1234 } ```