Connect Retool to Algorithmia (now part of DataRobot) by creating a REST API Resource with the API base URL and your API key in the Authorization header. Use Algorithmia's or DataRobot's API to build an ML model catalog dashboard — browse deployed algorithms, submit inference requests, monitor model performance, and manage algorithm versions from a centralized Retool operations panel.
| Fact | Value |
|---|---|
| Tool | Algorithmia (DataRobot) |
| Category | AI/ML |
| Method | REST API Resource |
| Difficulty | Intermediate |
| Time required | 30 minutes |
| Last updated | April 2026 |
Build an ML Model Catalog and Inference Dashboard in Retool
Algorithmia pioneered the concept of an algorithm marketplace — a platform where data scientists could deploy trained ML models and make them invokable via a standardized REST API. Acquired by DataRobot in 2021, Algorithmia's infrastructure continues to serve teams that deployed models to the platform. Whether you are using legacy Algorithmia endpoints or migrating to DataRobot's deployment platform, Retool provides an ideal interface for building internal ML operations tools that your broader team can use without Python expertise.
With a Retool-Algorithmia/DataRobot integration, your ML and operations teams can browse the deployed model catalog, submit batch or individual inference requests directly from a form-based Retool panel, view prediction outputs formatted in readable tables, track algorithm version history and performance metrics, and manage access controls for deployed models — without requiring engineers to write API client code for every new use case.
Algorithmia's API uses simple Bearer token authentication with a 32-character API key. DataRobot's API uses a similar token-based approach. Both platforms expose RESTful JSON APIs that Retool can query through a generic REST API Resource. The key integration advantage is Retool's server-side proxy: your ML API key never reaches team members' browsers, and CORS is not a concern for prediction requests.
Integration method
Algorithmia and DataRobot connect to Retool through REST API Resources using API key Bearer token authentication. Configure the base URL and API key once at the resource level, then build queries to browse algorithm catalogs, invoke model predictions, retrieve performance metrics, and manage deployments. Retool proxies all requests server-side, keeping credentials secure and eliminating CORS issues.
Prerequisites
- An Algorithmia account with API access and your API key (32-character key from your Algorithmia account dashboard under API Keys), or a DataRobot account with an API key from your account settings
- Knowledge of the algorithm paths or model deployment IDs you want to invoke (e.g., username/algorithm_name/version)
- A Retool account with permission to create Resources
- Familiarity with Retool's query editor, JSON body configuration, and Table component
- Understanding of the input schema expected by the algorithms or models you will invoke
Step-by-step guide
Create an Algorithmia REST API Resource in Retool
Navigate to the Resources tab in your Retool instance and click Add Resource. Select REST API from the resource type list. Name the resource 'Algorithmia API'. In the Base URL field, enter https://api.algorithmia.com/v1. This is Algorithmia's v1 API base. If you are using a private Algorithmia Enterprise instance hosted on your organization's infrastructure, replace this with your organization's custom Algorithmia API URL (e.g., https://algorithmia.yourcompany.com/api). For authentication, Algorithmia uses a Simple API key sent as a Bearer token. In the Authentication section, select Bearer Token from the dropdown. In the Token field, reference a configuration variable: {{ retoolContext.configVars.ALGORITHMIA_API_KEY }}. First, go to Settings → Configuration Variables, create a variable named ALGORITHMIA_API_KEY, paste your 32-character API key, and mark it as Secret. Add a default header: key = Content-Type, value = application/json. This ensures all POST requests to algorithm endpoints are interpreted as JSON. Click Save Changes. Your Algorithmia resource is now configured for both GET queries (browsing algorithms) and POST queries (invoking predictions). If you are migrating to or also using DataRobot, create a second resource named 'DataRobot API' with Base URL https://app.datarobot.com/api/v2 and your DataRobot API token as the Bearer token.
Pro tip: If using Algorithmia Enterprise (self-hosted), the API base URL follows the pattern https://your-cluster.algorithmia.com/api — check with your infrastructure team for the exact hostname. The authentication pattern (Bearer token) is identical across both cloud and enterprise installations.
Expected result: The Algorithmia API REST resource appears in your Resources list. A test GET query to /algorithms/util/echo returns a 200 response, confirming the resource authentication and base URL are correct.
Browse the algorithm catalog and view algorithm metadata
Create queries to browse available algorithms and display their metadata in a catalog view. In your Retool app, open the Code panel and add a new query. Name it searchAlgorithms and select the Algorithmia API resource. Set Method to GET and Path to /algorithms. Add URL parameters: - key = q, value = {{ textInput_search.value }} (search term for algorithm discovery) - key = rows, value = 50 This returns a list of algorithms matching the search term with metadata including name, username, description, version, and pricing information. Create a second query named getAlgorithmDetails. Set Method to GET and Path to /algorithms/{{ table_algorithms.selectedRow.username }}/{{ table_algorithms.selectedRow.algoname }}. This fetches detailed metadata for the algorithm selected in the catalog table, including all available versions, runtime requirements, and documentation. Add a Text Input component named textInput_search connected to the searchAlgorithms query (trigger on change). Add a Table component named table_algorithms bound to {{ searchAlgorithms.data?.results || [] }}. When a row is selected, trigger getAlgorithmDetails to populate a detail panel on the right side of the app. Use a JavaScript transformer on the search results to extract and format the relevant fields for the catalog table view.
1// JavaScript transformer — format algorithm catalog results for Table2const algorithms = (data.results || []);3return algorithms.map(algo => {4 return {5 name: algo.name || 'N/A',6 username: algo.username || 'N/A',7 algoname: algo.algoname || 'N/A',8 full_path: `${algo.username}/${algo.algoname}`,9 description: (algo.summary || algo.description || '').substring(0, 100),10 version: algo.version_info?.semantic_version || 'N/A',11 language: algo.source?.algoType || 'N/A',12 cost_credits: algo.cost_factor !== undefined13 ? `${algo.cost_factor} credits/sec`14 : 'N/A',15 visibility: algo.settings?.visibility || 'N/A',16 label: algo.label || ''17 };18});Pro tip: Algorithmia algorithm paths follow the pattern username/algoname/version_number (e.g., util/echo/0.2.1). When invoking a specific algorithm version in production, always pin to an explicit version number rather than using 'latest' to prevent unexpected behavior from algorithm updates.
Expected result: The catalog table shows available algorithms with name, description, language, and cost metadata. Selecting a row loads the detail panel showing the algorithm's full documentation and available versions.
Submit inference requests and display prediction outputs
Create the core inference submission query that lets users invoke an Algorithmia algorithm with custom input data. Add a query named runAlgorithm. Set Method to POST and Path to /algo/{{ textInput_algoPath.value }}/{{ dropdown_version.value || 'latest' }}. For the body, set type to JSON and enter the input payload. The input format depends on the specific algorithm. For most algorithms, it is a JSON object: { 'input': {{ JSON.parse(textArea_input.value) }} }. The actual field names depend on the algorithm's documented input schema. Algorithmia returns prediction results synchronously for most algorithms. The response includes an output field with the prediction, execution_time in seconds, and billing information. For long-running algorithms, the response includes a promise_id for async polling. Add a TextArea component named textArea_input for JSON input entry. Add a Text Input named textInput_algoPath for the algorithm path (e.g., nlp/SentimentAnalysis). Add a Dropdown named dropdown_version for version selection populated from the details query. Add a Submit button that triggers runAlgorithm. On success, display the output in a JSON viewer or formatted Text component: {{ JSON.stringify(runAlgorithm.data?.output, null, 2) }}. Show execution time and credit cost below the output. For RapidDev integrations, adding a structured input form instead of raw JSON input — with labeled fields corresponding to the algorithm's schema — makes the tool accessible to business users who don't understand JSON syntax.
1// JavaScript transformer — format algorithm prediction result for display2const result = data || {};3const output = result.output;45// Format output based on type6let formattedOutput;7if (typeof output === 'object' && output !== null) {8 formattedOutput = JSON.stringify(output, null, 2);9} else if (typeof output === 'number') {10 formattedOutput = output.toString();11} else {12 formattedOutput = String(output || 'No output');13}1415return {16 output_raw: output,17 output_formatted: formattedOutput,18 execution_time_ms: result.metadata?.duration19 ? (result.metadata.duration * 1000).toFixed(0) + 'ms'20 : 'N/A',21 credits_used: result.metadata?.content_type || 'N/A',22 algorithm_version: result.metadata?.version || 'N/A',23 status: result.error ? 'Error: ' + result.error : 'Success'24};Pro tip: For algorithms that process large inputs or return large outputs, Algorithmia supports passing data via its hosted Data API rather than inline in the request body. Use the 'data://username/collection/filename' reference syntax in your input JSON to reference files stored in Algorithmia's hosted data collections.
Expected result: Entering an algorithm path, selecting a version, and providing JSON input triggers the runAlgorithm query. The prediction output appears formatted below the form, along with execution time and credits consumed.
Connect to DataRobot's deployment API for production model monitoring
For teams that have migrated or are migrating from Algorithmia to DataRobot, set up a DataRobot resource and build the deployment monitoring panel. Using the DataRobot API resource you created earlier, create a query named getDeployments. Set Method to GET and Path to /deployments. Add URL parameters: - key = limit, value = 100 - key = orderBy, value = createdAt This returns all DataRobot model deployments with their status, prediction server health, and model metadata. Create a second query named getDeploymentAccuracy. Set Method to GET and Path to /deployments/{{ table_deployments.selectedRow.id }}/accuracy. This pulls accuracy metrics for a selected deployment. Create a third query named getDeploymentDrift. Set Method to GET and Path to /deployments/{{ table_deployments.selectedRow.id }}/featureDrift with a time window parameter to check for data drift in production inputs. Add a Table component named table_deployments bound to the deployments query. When a row is selected, trigger both accuracy and drift queries. Display accuracy metrics (log loss, AUC, RMSE depending on model type) in stat components and a drift score chart using Retool's Chart component. For submitting predictions to a DataRobot deployment, create a query named submitPrediction with Method POST and Path /deployments/{{ table_deployments.selectedRow.id }}/predictions. The body contains the feature values formatted according to the deployment's schema.
1// JavaScript transformer — format DataRobot deployments for Table2const deployments = (data.data || []);3return deployments.map(dep => {4 return {5 id: dep.id,6 name: dep.label || dep.modelPackage?.name || 'Unnamed',7 status: dep.status,8 health: dep.serviceHealth?.status || 'unknown',9 model_type: dep.model?.type || 'N/A',10 target: dep.model?.target?.name || 'N/A',11 accuracy_health: dep.accuracyHealth?.status || 'N/A',12 drift_health: dep.driftHealth?.status || 'N/A',13 predictions_last_day: dep.predictionsCount?.lastDay || 0,14 created_at: dep.createdAt15 ? new Date(dep.createdAt).toLocaleDateString()16 : 'N/A'17 };18});Pro tip: DataRobot requires the 'datarobot-key' header for prediction requests to deployed models. Add this header in the specific prediction query's header fields (not in the resource default headers) so it only applies to prediction calls and not to management API calls.
Expected result: The deployments table shows all DataRobot production models with health status indicators. Selecting a deployment loads accuracy metrics and drift scores in the detail panel, giving the ML team a real-time view of production model health.
Common use cases
Build an algorithm catalog browser with inference submission panel
Create a Retool app where your team can browse all algorithms deployed on Algorithmia, view metadata (version, author, runtime, cost per call), and submit test inference requests directly from a JSON input form. Display prediction outputs in a formatted panel so non-engineers can run ML models without writing API client code.
Build an algorithm catalog panel that lists all available algorithms from Algorithmia's /algorithms endpoint, shows name, version, description, and cost per call, and includes an input form for submitting custom JSON payloads to the selected algorithm with prediction output displayed below.
Copy this prompt to try it in Retool
Batch prediction submission and results dashboard
Build a Retool app for batch inference workflows where operations teams can upload a CSV of input records, submit them as individual prediction requests to a selected Algorithmia model, and view results in a downloadable table. Add error tracking to show which records failed prediction and why.
Create a batch prediction panel with a file upload component for CSV input, a query that loops through each row and calls the Algorithmia model API with that row's features, a results table with original input fields plus the prediction output and confidence score, and a download button for the results CSV.
Copy this prompt to try it in Retool
DataRobot deployment monitoring and champion/challenger panel
Build a Retool app connected to DataRobot's deployment API that shows all active model deployments with their service health, prediction count, accuracy metrics, and data drift scores. Add a champion/challenger comparison view that visualizes performance metrics between the current production model and challenger candidates.
Build a DataRobot deployment monitor that queries all deployments from /api/v2/deployments, displays status, prediction server health, and accuracy metrics in a table, and shows a comparison chart for champion vs. challenger model performance over the past 7 days using DataRobot's accuracy over time endpoint.
Copy this prompt to try it in Retool
Troubleshooting
Algorithm invocation returns 401 Unauthorized or 'Algorithm not found'
Cause: The API key is incorrect or expired, or the algorithm path in the request URL is malformed. Algorithmia algorithm paths must be in the exact format username/algoname with optional version suffix.
Solution: Verify the API key in your Algorithmia account under API Keys — keys are 32 characters and start with a specific prefix. Check the algorithm path matches exactly what is shown in the Algorithmia algorithm page URL. Paths are case-sensitive. If accessing a private algorithm, ensure your API key has permission to invoke that specific algorithm.
Prediction returns 'Algorithm timed out' error for large inputs
Cause: Algorithmia has execution time limits per algorithm call (typically 50 minutes for cloud, but many algorithms have lower timeouts configured by their authors). Large input payloads or complex computations can exceed these limits.
Solution: For large datasets, use Algorithmia's hosted Data API to store input files and pass a 'data://' reference in the algorithm input instead of inline data. This avoids HTTP payload size limits and allows the algorithm to read data directly from Algorithmia's storage layer. Split large batch jobs into smaller chunks using a Retool Workflow with a Loop block.
DataRobot API returns 403 Forbidden on deployment prediction requests
Cause: DataRobot deployment prediction endpoints require a separate 'datarobot-key' request header in addition to the Authorization Bearer token. This is a DataRobot-specific requirement for prediction server requests.
Solution: Add the 'datarobot-key' header to your prediction query's Headers section (not the resource-level headers). The value is the DataRobot API key. Additionally, verify the deployment is in 'Active' status — predictions against paused or failed deployments return 403 errors.
Algorithm catalog search returns no results for known algorithms
Cause: The Algorithmia algorithm search API requires specific query formatting. Algorithms with namespaces may not surface through the generic search endpoint, and private organization algorithms are not visible to API keys without the appropriate access permissions.
Solution: If you know the algorithm path, bypass the search and query the algorithm directly using GET /algorithms/{username}/{algoname} to retrieve metadata. For private organization algorithms, ensure your API key is configured with organizational access, not just personal account access.
Best practices
- Store Algorithmia and DataRobot API keys as Secret configuration variables in Retool — never expose them in query URLs or visible body fields.
- Always pin algorithm invocations to a specific version number (e.g., username/algoname/1.2.3) in production Retool tools rather than using 'latest', to prevent unexpected behavior from algorithm author updates.
- Build structured input forms with labeled fields for common algorithms rather than raw JSON TextAreas — this makes ML inference tools accessible to business users who don't understand the underlying API schemas.
- Use Retool Workflows with Loop blocks for batch inference operations rather than building loops in app-level JavaScript queries — Workflows have better error handling, retry logic, and run logs for debugging failed predictions.
- Add execution time and credit cost tracking to every inference panel so your team can monitor API costs and identify algorithms that are unexpectedly expensive to run.
- For DataRobot deployments, set up a Retool Workflow that runs hourly to check deployment health status and accuracy drift, alerting your ML team via Slack when model performance degrades below thresholds.
- When migrating from Algorithmia to DataRobot, maintain both resources in Retool simultaneously during the transition period — toggle between them using a Dropdown component set to the resource name so you can compare outputs from legacy and new deployments.
Alternatives
OpenAI GPT provides pre-built large language models via a simple API, while Algorithmia/DataRobot is designed for hosting and invoking custom-trained ML models with full model lifecycle management.
Google Cloud AI Platform (Vertex AI) offers managed ML model training and serving with deep GCP integration, while Algorithmia focuses on a marketplace model that supports models from any framework via a unified invocation API.
H2O.ai specializes in automated machine learning (AutoML) for building and comparing models, while Algorithmia/DataRobot focuses on the deployment and invocation layer for models already trained and ready for production.
Frequently asked questions
Does Algorithmia still exist after being acquired by DataRobot?
Algorithmia was acquired by DataRobot in 2021, and DataRobot has been integrating Algorithmia's model deployment capabilities into its platform. Some organizations continue to use Algorithmia's original API endpoints, while others are migrating to DataRobot's unified platform. This guide covers both: the legacy Algorithmia REST API for existing deployments and DataRobot's API for new and migrated deployments.
Can I use Retool to invoke machine learning models from other platforms like AWS SageMaker?
Yes. While this guide focuses on Algorithmia and DataRobot, the same REST API Resource pattern in Retool works for any ML inference endpoint. AWS SageMaker endpoints, Azure ML online endpoints, Google Vertex AI prediction endpoints, and custom-built FastAPI or Flask inference servers all follow the same pattern: configure the base URL and authentication in a REST API resource, then write POST queries with the feature input as the body.
How do I handle asynchronous algorithm responses in Retool?
Some Algorithmia algorithms run asynchronously and return a promise_id instead of immediate output. Handle this in Retool by first calling the algorithm (POST /algo/username/algoname?timeout=0) to get the promise_id, then polling GET /promises/promise_id on a timer using Retool's query run interval setting until the status is complete. Display a loading indicator during the polling period.
What input formats do Algorithmia algorithms support?
Algorithmia algorithms accept JSON by default, but algorithms can also accept text/plain (for string inputs), binary data (for image processing algorithms via base64 encoding or data:// file references), and structured arrays. The accepted format is defined by each algorithm's author and documented on the algorithm's detail page. Always check the algorithm documentation for the expected input schema before building your Retool input form.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation