Getting Started

Our RESTful API provides programmatic access to platform functionality, allowing developers to build powerful integrations, automate workflows, and create custom applications that interact with our investment platform.

To begin using our API, you'll first need to generate an API key from your account dashboard under the "Developer Settings" section. Each user can create up to 5 API keys, which can be useful for different applications or environments.

We recommend starting with our sandbox environment for testing and development before moving to production. The sandbox mirrors our live environment but uses test data and doesn't process real transactions.

Authentication & Security

All API requests require authentication using your unique API key. Include it in the request header as Authorization: Bearer YOUR_API_KEY. API keys provide full access to your account, so treat them as you would your password.

For enhanced security, we recommend:

  • Regularly rotating your API keys (every 90 days)
  • Using different keys for different applications
  • Never committing API keys to version control
  • Using environment variables for key storage
  • Implementing IP whitelisting for production keys

All API communication is encrypted via TLS 1.2+, and we regularly audit our security practices to ensure your data remains protected.

Rate Limiting & Quotas

To ensure fair usage and maintain platform stability, API requests are limited to 1,000 requests per hour per API key. Additional rate limits may apply to specific endpoints, particularly those involving transaction processing or data-intensive operations.

Each API response includes headers that show your current rate limit status:

  • X-RateLimit-Limit: Your maximum requests per hour
  • X-RateLimit-Remaining: Requests remaining in current window
  • X-RateLimit-Reset: Time when limits reset (UTC timestamp)

If you exceed these limits, you'll receive a 429 status code. For applications requiring higher limits, please contact our business development team to discuss enterprise-tier access.

API Endpoints Overview

Our comprehensive API is organized into several resource categories, each serving specific functionality within our platform:

User Management Endpoints

Manage user accounts, profiles, and authentication:

  • GET /v1/users/me - Retrieve current user profile
  • PATCH /v1/users/me - Update user information
  • GET /v1/users/preferences - Get user preferences
  • PUT /v1/users/preferences - Update user preferences

Investment Endpoints

Access investment data, portfolios, and performance metrics:

  • GET /v1/portfolios - List user portfolios
  • GET /v1/portfolios/{id} - Get specific portfolio details
  • GET /v1/investments - List investments
  • POST /v1/investments - Create new investment
  • GET /v1/investments/performance - Get performance analytics

Transaction Endpoints

Process and monitor financial transactions:

  • GET /v1/transactions - List transactions with filtering
  • POST /v1/transactions/deposit - Initiate deposit
  • POST /v1/transactions/withdrawal - Initiate withdrawal
  • GET /v1/transactions/{id} - Get transaction status

Market Data Endpoints

Access real-time and historical market information:

  • GET /v1/market/assets - List available assets
  • GET /v1/market/assets/{symbol}/price - Get current price
  • GET /v1/market/assets/{symbol}/history - Get price history
  • GET /v1/market/trending - Get trending assets

Request & Response Format

All API endpoints accept and return JSON format. Request bodies should be JSON-encoded with the Content-Type: application/json header. Dates should be formatted as ISO 8601 strings (YYYY-MM-DDTHH:MM:SSZ).

Example Request

POST /v1/investments HTTP/1.1
Authorization: Bearer sk_test_123456789
Content-Type: application/json

{
  "asset_id": "ast_12345",
  "amount": 1000.00,
  "portfolio_id": "port_67890"
}

Example Response

HTTP/1.1 201 Created
Content-Type: application/json

{
  "id": "inv_abc123",
  "asset_id": "ast_12345",
  "amount": 1000.00,
  "status": "pending",
  "created_at": "2024-01-15T10:30:00Z",
  "estimated_completion": "2024-01-15T16:00:00Z"
}

Error Handling

The API uses conventional HTTP response codes to indicate success or failure. All error responses include a JSON body with details about what went wrong.

Common HTTP Status Codes

  • 200 - Success
  • 201 - Resource created
  • 400 - Bad request (invalid parameters)
  • 401 - Unauthorized (invalid API key)
  • 403 - Forbidden (insufficient permissions)
  • 404 - Resource not found
  • 429 - Rate limit exceeded
  • 500 - Internal server error

Error Response Format

{
  "error": {
    "code": "invalid_amount",
    "message": "The specified amount is below the minimum investment",
    "param": "amount",
    "minimum_amount": 100.00,
    "request_id": "req_123456"
  }
}

Webhooks & Real-time Updates

For real-time notifications about account activity, you can configure webhooks. Webhooks send HTTP POST requests to your specified URL when events occur in your account.

Supported Webhook Events

  • transaction.completed - Transaction successfully processed
  • transaction.failed - Transaction failed
  • investment.updated - Investment status changed
  • portfolio.performance - Portfolio performance calculated
  • user.alert - User alert triggered

Webhook payloads include the event type, relevant resource data, and a signature for verification. Configure webhooks through your account dashboard or via the API.

SDKs & Client Libraries

To help you get started quickly, we provide official client libraries in several popular programming languages:

  • JavaScript/Node.js - Full browser and Node.js support
  • Python - Comprehensive library with async support
  • Java - Enterprise-grade Java client
  • PHP - Composer package for PHP applications
  • Ruby - Gem for Ruby developers

All SDKs are open source and available on GitHub. They handle authentication, request signing, error handling, and provide a more intuitive interface for working with our API.

Best Practices & Guidelines

Following these best practices will ensure optimal performance and reliability for your integration:

Implementation Tips

  • Implement exponential backoff for retrying failed requests
  • Cache frequently accessed data where appropriate
  • Use webhooks instead of polling for real-time updates
  • Validate all inputs before sending to the API
  • Monitor your rate limit usage in production

Testing & Quality Assurance

  • Always test in sandbox environment first
  • Implement comprehensive error handling
  • Test edge cases and failure scenarios
  • Monitor API usage and performance
  • Keep SDKs and integration code updated

Support & Community

We're committed to supporting our developer community. Several resources are available to help you succeed:

  • Technical Support - Email our developer team at support@algovestai.com for integration assistance
  • Documentation Updates - Subscribe to our changelog for API updates
  • Community Forum - Connect with other developers building on our platform
  • Status Page - Check API status and scheduled maintenance
  • GitHub Repository - Report issues and contribute to our open-source SDKs

We continuously improve our API based on developer feedback. If you have suggestions for new endpoints or features, please share them with our product team through the support channels above.