{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"85259170-35ba-48bb-8761-e5b8a5a637f0","name":"render-customer-api","description":"## Render Networks API\n\nRESTful API providing easy access to customer owned data in the Render Networks platform.\n\nThe API intended to allow customers to build their own integrations and extensions to the Render Networks platform.\n\nFirst find the client ID and Secret from the render app, then authenticate with the POST Token.\n\n[https://www.rendernetworks.com/](https://www.rendernetworks.com/)\n\n## Getting Started\n\nUsing Render API requires\n\n1\\. Provisioning API Access credentials (Client ID + Secret) through Render Platform (API Access Page in Project Admin section)\n\n2\\. Then, use those credentials to generate an access (session) token for our Auth server. Please refer Code Examples section for example demonstrating how to generate the session token.\n\n3\\. Finally, use the access (session) token to make API calls.\n\nThis scheme of using a session token (separate from Client ID + Secret) means that if somehow the API calls are intercepted, the short-lived (+ never reused) session tokens are exposed, not the Client ID + Secret.\n\nThis guide will walk you through setting up your development environment and help in making your first requests the the Render API.\n\n### Before you Begin\n\nIn order to write a program that interacts with Render API, you need the following things:\n\n**1\\. Client ID & Secret:** This can be generated by Organisation Admins who have access to the Render Platform. They need to log in to the Render Platform and generate the credentials in the API Access Management section.\n\nObtain an API client_id (username) and client_secret (password) for your project admin.\n\n**2\\. The Auth Domain:** This is the URL for our identity/authentication provider. If your projects are in the Render PRODUS server (app.produs.rendernetworks.com) and you have used the Project Admin panel there to generate the Client ID & Secret, then\n\n**Auth Server (Domain): auth.produs.rendernetworks.com**\n\nPlease note that for both Render UAT and PRODUS servers, it is the same auth domain.\n\n**3\\. API Endpoint Domain:** This is the URL for our API system. Depending on which Render environment the project is hosted (PRODUS vs UAT), it is one of,\n\n**API Server: api.produs.rendernetworks.com****API Server: api.uat.rendernetworks.com**\n\nif the data is not in the Render UAT Server (app.uat.rendernetworks.com) then using the UAT API server (api.uat.rendernetworks.com) will return the unauthorised response (as expected) as those Client ID & Secret (generated in PRODUS) is not permitted to see data in UAT server.\n\nOnce you have all the details, you can use the examples provided in\n\nMainly, there are two steps in calling Render API endpoints.\n\nStep 1: Obtain API Session Token (JWT) from the auth provider.  \nStep 2: Use the session token to call API endpoints to access data.\n\n# Pagination\n\nThe Render API utilises pagination to help manage large datasets efficiently, reduce the amount of data transferred in each request, and ensures that API responses remain manageable for both clients and servers.\n\nWe use the \"page\" and \"page limit\" parameters in our APIs to manage and retrieve large sets of data in smaller, manageable chunks.\n\nHere is additional information about the parameters:\n\n**Page:** This specifies which subset or \"page\" of data you want to retrieve from a large response. It defaults at 1 for the first page and increments with each subsequent page.\n\n**Page Limit:** Also known as \"items per page\" or \"results per page,\" determines how many items or records are included in each paginated response via the maximum number inputted. If this is not set the response will default to a page limit of 2000.  \n_**Note:**_ _The page limit_ _**cannot be higher than 2000**______, if you place a higher value it will scale the response down to a maximum on 2000 records per page._\n\n### **Usage**\n\n``` shell\nGET /api/resource?page=1&page_limit=1000\n\n ```\n\n#### Respose\n\n``` json\n{\n    \"data\": [\n        { \"id\": 1, \"name\": \"Item 1\" },\n        { \"id\": 2, \"name\": \"Item 2\" },\n        // ... (up to 1000 items)\n    ],\n    \"page\": 1,\n    \"page_size\": 1000,\n    \"page_limit\": 1000,\n    \"total_results\": 2789\n}\n\n ```\n\n#### Subsequent commands (page 2)\n\n``` shell\nGET /api/resource?page=2&page_limit=1000\n\n ```\n\n``` json\n{\n    \"data\": [\n        { \"id\": 2001, \"name\": \"Item 2001\" },\n        { \"id\": 2002, \"name\": \"Item 2002\" },\n        // ... (up to 1000 items)\n    ],\n    \"page\": 2,\n    \"page_size\": 1000,\n    \"page_limit\": 1000,\n    \"total_results\": 2789\n}\n\n ```\n\n## Rate Limiting\n\n### Best Practice\n\nThe Render Networks API is designed to provide you with access to valuable data and services while ensuring fair usage and maintaining system stability.\n\nTo achieve this balance, the API enforces a default daily quota, and throttling via rate and burst limits.\n\n**Default Quota:**\n\nBy default, each API Credential is granted a quota of_**10,000 requests per day**_, allowing ample room for API interaction while staying within the defined rate limits.\n\n**Rate Limit**:\n\nThe rate limit defines the number of requests allowed per second.\n\nFor our API, _**the rate limit is set at 2 requests per second**_.\n\nThis limit regulates the flow of requests over a more extended period, preventing excessive usage that could overwhelm the system.\n\nIt encourages responsible API usage while providing consistent service to all users.\n\n**Burst Limit**:\n\nThe burst limit represents the maximum number of concurrent requests that can be made to the API at any given moment.\n\nIn our case, the burst limit is set to 5.\n\nThis means that, at most, _**5 requests can be processed simultaneously**_.\n\nBurst limits are useful for handling short bursts of traffic, ensuring quick responses even during periods of increased activity.\n\nWe encourage users to monitor their API usage and design their applications to handle rate limiting gracefully. Responsible usage ensures that everyone can benefit from the Render Networks API's capabilities.\n\n### 429 Errors\n\nIf you surpass your rate limit, the API will return a 429 Too Many Requests error. This indicates that you've sent too many requests within a given timeframe. Here's how to handle this error:\n\n**Implement Retry Logic:** Your application should implement retry logic to handle 429 errors gracefully.\n\n**Monitor Your Usage:** Implement monitoring and logging to track your API usage and identify potential bottlenecks.\n\n**Optimize Your Requests:**\n\nIf possible, batch multiple requests into a single API call to reduce the overall number of requests.\n\nFor example, you can call the endpoint instead of calling multiple times.\n\nEnsure that your application is spacing out requests, to avoid bursts that will trigger the burst rate limiting.\n\n**Contact Support:** If you consistently encounter 429 errors, even after implementing retry logic and optimizing your requests, contact Render Networks' support for assistance.\n\nBy implementing these best practices, you can ensure that your application handles rate limiting effectively and maintains a smooth and reliable interaction with the Render Networks APIs.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"11528456","team":1088250,"collectionId":"85259170-35ba-48bb-8761-e5b8a5a637f0","publishedId":"2sB34ZrQNj","public":true,"publicUrl":"https://rendernetworks.etisoftware.com","privateUrl":"https://go.postman.co/documentation/11528456-85259170-35ba-48bb-8761-e5b8a5a637f0","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2025-07-01T14:07:37.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/52de83af874f462001674ddb9bdc1bfca2ae7a02c72a76650e1d6907bc6253c0","favicon":"https://etisoftware.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://rendernetworks.etisoftware.com/view/metadata/2sB34ZrQNj"}