***
title: CPS API Overview
subtitle: Complete guide to the Convention Photography System APIs
slug: api-overview
------------------
The Convention Photography System (CPS) provides comprehensive APIs for event photo management and order processing across two main platforms.
## Platform Overview
### Photo Gallery System (photos.conventionphotography.com)
The gallery system provides read-only access to event photos organized hierarchically:
* **Events**: Top-level containers (e.g., ASDAR26)
* **Days**: Event days (e.g., "02. Friday")
* **Sessions**: Specific activities (e.g., "Districts, Sign, BoM, Awards Luncheon")
* **Photos**: Individual images with metadata
### Ordering System (convention.photos)
The ordering platform handles customer orders and fulfillment:
* **Event Selection**: Browse available events
* **Photo Cart**: Add photos to orders
* **Address Validation**: USPS address verification
* **Order Processing**: Create and track orders
* **Feedback Collection**: Customer satisfaction surveys
## API Architecture
### Base URLs
* **Gallery API**: `https://photos.conventionphotography.com`
* **Ordering API**: `https://convention.photos`
* **Order Management**: `https://cps-orders.replit.app/api`
### Authentication
Most gallery endpoints are publicly accessible. Ordering endpoints may require:
* CAPTCHA verification for spam prevention
* Email confirmation for order submission
* Admin authentication for management functions
### Data Formats
All APIs return JSON responses with consistent error handling:
```json
{
"error": "Error message",
"code": "ERROR_CODE"
}
```
### Rate Limiting
* Public endpoints: No rate limiting
* Order endpoints: CAPTCHA required for submission
* Admin endpoints: Authentication required
## Key Features
### Photo Browsing
* Paginated photo listings
* Hierarchical navigation (Event > Day > Session)
* Thumbnail and full-size image access
* Photo metadata and captions
### Order Management
* Real-time order status tracking
* Google Sheets backend integration
* Automated email receipts
* Shipping envelope generation
* Customer feedback collection
### Admin Tools
* Order status management
* Sales reporting and analytics
* Shipping status updates
* Bulk order operations
## Getting Started
1. **Browse Events**: Use the gallery API to explore available photos
2. **Place Orders**: Submit orders through the ordering platform
3. **Track Status**: Monitor order progress in real-time
4. **Provide Feedback**: Share your experience after fulfillment
## Integration Examples
### Browse Event Photos
```bash
GET https://photos.conventionphotography.com/event/ASDAR26?page=1&limit=50
```
### Create Order
```bash
POST https://convention.photos/api/orders/create
Content-Type: application/json
{
"eventSlug": "ASDAR26",
"photos": ["1234", "1235"],
"customerInfo": {
"name": "John Doe",
"email": "john@example.com"
},
"shippingAddress": {
"line1": "123 Main St",
"city": "Springfield",
"state": "IL",
"zip": "62701"
}
}
```
### Check Order Status
```bash
GET https://cps-orders.replit.app/api/orders/pending
```
```
This builds and publishes your documentation to the URL configured in `docs.yml`.
For detailed CLI documentation, see the [Fern CLI reference](https://buildwithfern.com/learn/cli-api-reference/cli-reference/overview).
Fern Editor is a visual editor that lets anyone on your team update documentation without learning Markdown or Git. It's ideal for content writers, product managers, and other non-technical contributors.
**Key features**
Fern Editor provides rich text editing similar to Notion or Google Docs, support for Fern components like Callouts and Cards, and a GitHub-backed workflow that creates pull requests for review.
**Get started**
1. Log in to the [Fern Dashboard](https://dashboard.buildwithfern.com/)
2. Connect your GitHub repository
3. Open Fern Editor from the top navigation
Changes made in Fern Editor create pull requests automatically, maintaining your docs-as-code workflow with full Git history and review process.
For more details on Fern Editor features and supported components, see the [Fern Editor documentation](https://buildwithfern.com/learn/docs/writing-content/fern-editor).
## Next steps
Create pages using MDX and components
Configure tabs, sections, and pages
Brand your documentation
```