| name | maintainx-install-auth |
| description | Install and configure MaintainX REST API authentication.
Use when setting up a new MaintainX integration, configuring API keys,
or initializing MaintainX API access in your project.
Trigger with phrases like "install maintainx", "setup maintainx",
"maintainx auth", "configure maintainx API key", "maintainx credentials".
|
| allowed-tools | Read, Write, Edit, Bash(npm:*), Bash(pip:*), Bash(curl:*), Grep |
| version | 1.0.0 |
| license | MIT |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
MaintainX Install & Auth
Overview
Set up MaintainX REST API authentication and configure your development environment for CMMS integration.
Prerequisites
- Node.js 18+ or Python 3.10+
- MaintainX account with API access (Professional or Enterprise plan)
- Admin access to generate API keys
Instructions
Step 1: Generate API Key
- Log into MaintainX at https://app.getmaintainx.com
- Navigate to Settings > Integrations
- Click New Key > Generate Key
- Copy and securely store your API key (shown only once)
Step 2: Configure Environment Variables
export MAINTAINX_API_KEY="your-api-key-here"
echo 'MAINTAINX_API_KEY=your-api-key' >> .env
export MAINTAINX_ORG_ID="your-organization-id"
Step 3: Create API Client Wrapper
import axios, { AxiosInstance, AxiosError } from 'axios';
export class MaintainXClient {
private client: AxiosInstance;
private baseUrl = 'https://api.getmaintainx.com/v1';
constructor(apiKey?: string, orgId?: string) {
const key = apiKey || process.env.MAINTAINX_API_KEY;
if (!key) {
throw new Error('MAINTAINX_API_KEY is required');
}
this.client = axios.create({
baseURL: this.baseUrl,
headers: {
'Authorization': `Bearer ${key}`,
'Content-Type': 'application/json',
...(orgId && { 'X-Organization-Id': orgId }),
},
});
this.client.interceptors.response.use(
response => response,
this.handleError
);
}
() {
(error.) {
{ status, data } = error.;
.(, data);
}
error;
}
() {
..(, { params });
}
() {
..();
}
() {
..(, data);
}
() {
..(, { params });
}
() {
..(, { params });
}
() {
..(, { params });
}
}
{
?: ;
?: ;
?: | | | ;
}
{
: ;
?: ;
?: | | | ;
?: [];
?: ;
?: ;
?: ;
}
{
?: ;
?: ;
?: ;
}
{
?: ;
?: ;
}
{
?: ;
?: ;
}
Step 4: Verify Connection
import { MaintainXClient } from './maintainx/client';
async function testConnection() {
const client = new MaintainXClient();
try {
const response = await client.getUsers({ limit: 1 });
console.log('Connection successful!');
console.log('Organization has users:', response.data.users.length > 0);
return true;
} catch (error) {
console.error('Connection failed:', error);
return false;
}
}
testConnection();
npx ts-node test-connection.ts
Python Alternative
import os
import requests
from typing import Optional, Dict, Any
class MaintainXClient:
BASE_URL = "https://api.getmaintainx.com/v1"
def __init__(self, api_key: Optional[str] = None, org_id: Optional[str] = None):
self.api_key = api_key or os.environ.get("MAINTAINX_API_KEY")
if not self.api_key:
raise ValueError("MAINTAINX_API_KEY is required")
self.headers = {
"Authorization": f"Bearer {self.api_key}",
"Content-Type": "application/json",
}
if org_id:
self.headers["X-Organization-Id"] = org_id
def _request(self, method: str, endpoint: str, **kwargs) -> Dict[str, Any]:
url = f"{self.BASE_URL}{endpoint}"
response = requests.request(method, url, headers=self.headers, **kwargs)
response.raise_for_status()
response.json()
() -> [, ]:
._request(, , params=params)
() -> [, ]:
._request(, , json=data)
() -> [, ]:
._request(, , params=params)
() -> [, ]:
._request(, , params=params)
__name__ == :
client = MaintainXClient()
users = client._request(, , params={: })
()
()
Output
- Environment variable or
.env file with API key configured
- MaintainX client wrapper installed and configured
- Successful connection verification output
Error Handling
| Error | Cause | Solution |
|---|
| 401 Unauthorized | Invalid or expired API key | Generate new key in Settings > Integrations |
| 403 Forbidden | Insufficient permissions | Ensure admin role or correct plan tier |
| 404 Not Found | Wrong base URL or endpoint | Use api.getmaintainx.com/v1 |
| Network Error | Firewall blocking HTTPS | Allow outbound 443 to getmaintainx.com |
Security Best Practices
- Never commit API keys to version control
- Use environment variables or secret managers
- Rotate keys periodically (every 90 days recommended)
- Use organization-specific keys for multi-tenant setups
- Limit key scope to required operations only
Resources
Next Steps
After successful auth, proceed to maintainx-hello-world for your first API call.