CPS API Overview

Complete guide to the Convention Photography System APIs
View as Markdown

The Convention Photography System (CPS) provides comprehensive APIs for event photo management and order processing across two main platforms.

Platform Overview

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:

1{
2 "error": "Error message",
3 "code": "ERROR_CODE"
4}

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

$GET https://photos.conventionphotography.com/event/ASDAR26?page=1&limit=50

Create Order

$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

$GET https://cps-orders.replit.app/api/orders/pending
This builds and publishes your documentation to the URL configured in `docs.yml`.
</Step>
</Steps>
For detailed CLI documentation, see the [Fern CLI reference](https://buildwithfern.com/learn/cli-api-reference/cli-reference/overview).
</Accordion>
<Accordion title="Using Fern Editor">
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).
</Accordion>
</AccordionGroup>
## Next steps
<CardGroup cols={2}>
<Card
title="Write content"
icon="duotone pen-to-square"
href="/writing-content"
>
Create pages using MDX and components
</Card>
<Card
title="Set up navigation"
icon="duotone sitemap"
href="/navigation"
>
Configure tabs, sections, and pages
</Card>
<Card
title="Customize your docs"
icon="duotone palette"
href="/customization"
>
Brand your documentation
</Card>
</CardGroup>