Skip to main content

Introduction

Welcome to the 1courier Backend API documentation. This comprehensive guide will help you understand and integrate with our delivery management system.

Overview

The 1courier Backend API serves as the core infrastructure powering various applications within the 1courier ecosystem:

  • 🖥️ Administrative Portal
  • 📱 Driver Android App
  • 📱 iOS App
  • 🌐 Customer Portal

Our API provides a robust set of endpoints and services to handle all aspects of delivery management, from order creation to route optimization.

System Architecture

Our system is built on a modern, scalable architecture:

  • API Layer: RESTful endpoints + GraphQL support
  • Authentication: Secure JWT-based authentication
  • Storage: AWS S3 for files, DynamoDB for data
  • Caching: Redis for high-performance operations
  • Processing: Dedicated optimization engine for route planning, Best Driver selection, and Bulk Assign tasks, all running in AWS Lambda:
    • Bulk Assign: Triggered asynchronously via S3 file uploads.
    • Optimization Engine & Best Driver: Invoked directly using their respective ARNs for synchronous operations.
  • Search and Summaries: Utilizes OpenSearch for handling complex search queries and generating rolled-up summaries efficiently.

Technology Stack

Backend Infrastructure

  • Go (Primary backend language)
  • Docker (Containerization)
  • AWS Services (Cloud infrastructure)

Database & Storage

  • DynamoDB (Primary database)
  • Redis (Caching)
  • S3 (File storage)

API & Integration

  • REST API
  • WebSocket support
  • OAuth2 authentication

API Environments

EnvironmentBase URLDescription
Productionhttps://api.1courier.com/v1Production environment
Staginghttps://1courier-test.comStaging/testing environment

Support

Need help? Our support team is here to assist you:

Next Steps

note

This documentation is continuously updated. Make sure to check back regularly for the latest information.

caution

The API requires authentication for most endpoints. Ensure you have valid credentials before making requests.