API Overview

Build powerful integrations with the RCManager API

Build on RCManager

The RCManager API opens up endless possibilities for integrating your RC data with other tools and services. Whether you're building a custom dashboard, automating maintenance workflows, or creating mobile apps, our RESTful API provides comprehensive access to your vehicles, parts, and analytics. With robust authentication, real-time webhooks, and extensive documentation, you can build exactly what you need.

RESTful Design

Standard HTTP methods

Secure Access

OAuth 2.0 & API keys

Global & Fast

CDN-backed endpoints

Getting Started

Quick Start Guide

  1. 1
    Create an API Application

    Go to Settings → API → Create New App

  2. 2
    Get Your API Keys

    Copy your Client ID and Secret (keep them secure!)

  3. 3
    Make Your First Request

    Use the example below to fetch your vehicles

API Basics

Base URL

All API requests are made to:

https://api.propitbox.app/v1

Always use HTTPS for secure communication

Request & Response Format

The API uses JSON for all requests and responses:

Request Headers

Content-Type: application/json
Authorization: Bearer YOUR_TOKEN
Accept: application/json

Response Example

{
  "data": {...},
  "meta": {
    "timestamp": "2024-12-25T10:00:00Z"
  }
}

HTTP Methods

Standard RESTful methods for different operations:

MethodUsage
GETRetrieve resources
POSTCreate new resources
PUTUpdate entire resources
PATCHPartial updates
DELETERemove resources

Example Request

Get Your Vehicles

Here's a simple example to fetch all your vehicles:

cURL

curl -X GET https://api.propitbox.app/v1/vehicles \
  -H "Authorization: Bearer YOUR_API_TOKEN" \
  -H "Accept: application/json"

JavaScript

fetch('https://api.propitbox.app/v1/vehicles', {
  headers: {
    'Authorization': 'Bearer YOUR_API_TOKEN',
    'Accept': 'application/json'
  }
})
.then(response => response.json())
.then(data => console.log(data));

Response

{
  "data": [
    {
      "id": "veh_123abc",
      "name": "Traxxas Slash 4x4",
      "type": "short_course_truck",
      "scale": "1/10",
      "created_at": "2024-01-15T10:00:00Z",
      "last_run": "2024-12-23T14:30:00Z",
      "stats": {
        "total_sessions": 47,
        "total_runtime": "89.4 hours"
      }
    }
  ],
  "meta": {
    "total": 5,
    "page": 1,
    "per_page": 20
  }
}

Available Endpoints

Vehicles

  • GET /vehicles
  • GET /vehicles/:id
  • POST /vehicles
  • PUT /vehicles/:id
  • DELETE /vehicles/:id

Parts Inventory

  • GET /parts
  • GET /parts/:id
  • POST /parts
  • PATCH /parts/:id/stock
  • GET /parts/low-stock

Maintenance

  • GET /maintenance
  • GET /maintenance/due
  • POST /maintenance
  • PATCH /maintenance/:id/complete
  • GET /maintenance/history

Analytics

  • GET /analytics/summary
  • GET /analytics/costs
  • GET /analytics/usage
  • GET /analytics/performance
  • POST /analytics/reports

Rate Limiting

API Limits

To ensure fair usage and system stability, the API has rate limits:

PlanRequests/HourBurst Limit
Free1,00050/minute
Pro10,000200/minute
EnterpriseUnlimitedCustom

Rate limit headers are included in every response:

X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 950
X-RateLimit-Reset: 1640995200

Error Handling

The API uses standard HTTP status codes and returns detailed error messages:

2xx

Success

Request completed successfully

4xx

Client Error

Invalid request (bad data, auth, etc.)

5xx

Server Error

Something went wrong on our end

Error Response Format

{
  "error": {
    "code": "invalid_request",
    "message": "The vehicle ID provided is invalid",
    "details": {
      "field": "vehicle_id",
      "value": "invalid-id"
    }
  }
}

SDKs & Libraries

Official SDKs to get you started quickly:

JavaScript/TypeScript

Full TypeScript support with type definitions

npm install @propitbox/sdk

Python

Pythonic interface with async support

pip install propitbox

Ruby

Ruby gem with Rails integration

gem install propitbox

API Best Practices

Building Robust Integrations

Cache Responses: Implement caching to reduce API calls and improve performance
Handle Errors Gracefully: Always check for and handle error responses appropriately
Use Pagination: Request only the data you need using page and limit parameters
Secure Your Keys: Never expose API keys in client-side code or public repositories

Start Building

Ready to integrate with RCManager? Here's what to do next: