Saugerties.com API Documentation

Saugerties.com API Documentation

Complete API Reference

Generated: Wednesday, February 25, 2026 at 9:59 AM


Overview

This document provides comprehensive API documentation for all endpoints in the Saugerties.com application.

Base URL

Production: https://www.saugerties.com/api
Development: http://localhost:3000/api

Authentication

Most endpoints require authentication via NextAuth session cookies.


Authentication & Users

/auth/check

Methods: GET

🌐 Authentication: Public


/auth/register

Methods: POST

🌐 Authentication: Public

Description: API Route: User Registration


/auth/forgot-password

Methods: POST

🌐 Authentication: Public

Description: API Route: Forgot Password (Request Reset)


/auth/reset-password

Methods: POST

🌐 Authentication: Public

Description: API Route: Reset Password


/profile

Methods: PATCH

πŸ”’ Authentication: User session required

Description: API Route: Profile Management


/profile/password

Methods: PATCH

πŸ”’ Authentication: User session required

Description: API Route: Change Password


Business Directory

/members

Methods: GET

🌐 Authentication: Public

Description: API Route: Get all members with tier information GET /api/members


/members/[slug]

Methods: GET

🌐 Authentication: Public

Description: API Route: Get member by slug GET /api/members/[slug]


/members/[slug]/features

Methods: GET

🌐 Authentication: Public

Description: GET /api/members/:slug/features Get public tier features for a business (for display on member pages)


/members/[slug]/photos

Methods: GET

🌐 Authentication: Public

Description: API Route: Get business photos GET /api/members/[slug]/photos


/members/[slug]/leads

Methods: POST

🌐 Authentication: Public

Description: API Route: Submit business lead POST /api/members/[slug]/leads


/members/[slug]/similar

Methods: GET

🌐 Authentication: Public


/members/map

Methods: GET

🌐 Authentication: Public

Description: API Route: Get all members for map view GET /api/members/map


/members/random

Methods: GET

🌐 Authentication: Public

Description: API Route: Get a random featured business (prioritizes premium tiers) GET /api/members/random


/business/[slug]/edit

Methods: GET, PUT

πŸ”’ Authentication: User session required

Description: PUT /api/business/[slug]/edit Update business information (owner only, respects tier permissions)


/business/claim

Methods: POST

πŸ”’ Authentication: User session required

Description: POST /api/business/claim Submit a claim for a business


/business/owned

Methods: GET

πŸ”’ Authentication: User session required

Description: GET /api/business/owned Returns list of businesses owned by current user


/business/search

Methods: GET

πŸ”’ Authentication: User session required

Description: GET /api/business/search?q=query Search for businesses to claim


/business/stats/[slug]

Methods: GET

πŸ”’ Authentication: User session required


/businesses/similar

Methods: GET

🌐 Authentication: Public


/categories

Methods: GET

🌐 Authentication: Public


Classifieds

/classifieds

Methods: GET, POST

πŸ”’ Authentication: User session required

Description: GET /api/classifieds Fetch all active classifieds (optionally filter by category)


/classifieds/[id]

Methods: GET, DELETE

πŸ”’ Authentication: User session required

Description: GET /api/classifieds/[id] Fetch a single classified listing and increment views


/classifieds/[id]/status

Methods: PATCH

πŸ”’ Authentication: User session required

Description: PATCH /api/classifieds/[id]/status Update classified status (owner only)


/classifieds/my

Methods: GET

πŸ”’ Authentication: User session required

Description: GET /api/classifieds/my Fetch current user’s classifieds


/classifieds/create-checkout

Methods: POST

πŸ”’ Authentication: User session required

Description: POST /api/classifieds/create-checkout Create a Stripe Checkout session for classified payment


/classifieds/verify-payment

Methods: POST

πŸ”’ Authentication: User session required

Description: POST /api/classifieds/verify-payment Verify Stripe payment and activate classified listing


/classifieds/upload-photos

Methods: POST

πŸ”’ Authentication: User session required

Description: POST /api/classifieds/upload-photos Upload photos to Vercel Blob for classified listings


/classifieds/messages

Methods: POST

πŸ”’ Authentication: User session required

Description: POST /api/classifieds/messages Send a message about a classified listing


Payments & Subscriptions

/payments/create-checkout

Methods: POST

πŸ”’ Authentication: User session required


/payments/complete

Methods: POST

πŸ”’ Authentication: User session required


/payments/history

Methods: GET

πŸ”’ Authentication: User session required


/payments/hide

Methods: POST

πŸ”’ Authentication: User session required


/stripe/checkout

Methods: POST

πŸ”’ Authentication: User session required


/stripe/webhook

Methods: POST

🌐 Authentication: Public

Description: Handle classified ad payment completion


/stripe/refund

Methods: POST

πŸ”’ Authentication: User session required


/stripe/success

Methods: GET

🌐 Authentication: Public


/paypal/checkout

Methods: POST

πŸ”’ Authentication: User session required


/paypal/capture

Methods: GET

πŸ”’ Authentication: User session required


/paypal/webhook

Methods: POST

🌐 Authentication: Public

Description: PayPal Webhook Handler Handles real-time notifications from PayPal


/paypal/refund

Methods: POST

πŸ”’ Authentication: User session required


/invoices

Methods: GET, POST, PATCH

πŸ”’ Authentication: Admin role required


/invoices/[id]

Methods: GET

πŸ”’ Authentication: User session required


/invoices/auto-generate

Methods: POST

🌐 Authentication: Public

Description: Automatic Invoice Generation from Subscriptions Run this via cron to generate monthly invoices


Events & Content

/events

Methods: GET

🌐 Authentication: Public


/events/submit

Methods: POST

🌐 Authentication: Public


/news

Methods: GET

🌐 Authentication: Public


/deals

Methods: GET, POST, PUT, DELETE

πŸ”’ Authentication: User session required


Newsletter

/newsletter/subscribe

Methods: POST

🌐 Authentication: Public


/newsletter/confirm

Methods: GET

🌐 Authentication: Public


Reviews & Engagement

/reviews

Methods: GET, POST, PUT

πŸ”’ Authentication: User session required


/favorites

Methods: GET, POST, DELETE

πŸ”’ Authentication: User session required


/best-of

Methods: GET

🌐 Authentication: Public


/best-of/nominate

Methods: POST

πŸ”’ Authentication: User session required


Search & Discovery

/search/suggest

Methods: GET

🌐 Authentication: Public


Analytics & Stats

/stats

Methods: GET

🌐 Authentication: Public

Description: API Route: Public Stats GET /api/stats - Returns business count and category count


/analytics/track

Methods: GET, POST

🌐 Authentication: Public


Admin Panel

/admin/dashboard

Methods: GET

πŸ”’ Authentication: User session required

Description: GET /api/admin/dashboard Returns admin dashboard overview data


/admin/users

Methods: GET, PATCH

πŸ”’ Authentication: User session required

Description: GET /api/admin/users Returns all users


/admin/businesses

Methods: GET, PATCH

πŸ”’ Authentication: User session required

Description: GET /api/admin/businesses Returns all businesses with subscription info


/admin/businesses/edit

Methods: GET, PATCH

πŸ”’ Authentication: User session required

Description: API Route: Admin Business Editor Comprehensive business editing including all fields and tier features


/admin/business-claims

Methods: GET, POST

πŸ”’ Authentication: User session required

Description: GET /api/admin/business-claims Get all business ownership claims (admin only)


/admin/events

Methods: GET, POST, PUT, DELETE

πŸ”’ Authentication: User session required


/admin/reviews

Methods: GET, POST

πŸ”’ Authentication: User session required


/admin/subscriptions

Methods: GET, PATCH

πŸ”’ Authentication: User session required

Description: GET /api/admin/subscriptions Returns all subscriptions


/admin/transactions

Methods: GET

πŸ”’ Authentication: User session required


/admin/analytics/payments

Methods: GET

πŸ”’ Authentication: User session required


/admin/email/send

Methods: POST

πŸ”’ Authentication: User session required

Description: Send Email API POST /api/admin/email/send - Send email to one or multiple businesses


/admin/email/logs

Methods: GET

πŸ”’ Authentication: User session required

Description: Email Logs API GET /api/admin/email/logs - Get email sending history


/admin/email/templates

Methods: GET, POST, PATCH, DELETE

πŸ”’ Authentication: User session required

Description: Email Templates API GET /api/admin/email/templates - List all templates POST /api/admin/email/templates - Create new template PATCH /api/admin/email/templates/[id] - Update template DELETE /api/admin/email/templates/[id] - Delete template


/admin/newsletter/subscribers

Methods: GET

πŸ”’ Authentication: User session required


/admin/newsletter/send

Methods: POST

πŸ”’ Authentication: User session required


/admin/leads

Methods: GET, PATCH

πŸ”’ Authentication: User session required

Description: GET /api/admin/leads Get all leads with filters


/admin/photos

Methods: GET, POST, DELETE

πŸ”’ Authentication: User session required

Description: API Route: Admin photo management GET /api/admin/photos - List all photos POST /api/admin/photos - Add new photo DELETE /api/admin/photos - Remove photo


/admin/upload

Methods: POST

πŸ”’ Authentication: User session required

Description: API Route: Admin Photo Upload Handles image file uploads for business photo galleries using Vercel Blob


/admin/geocoding

Methods: GET, POST

πŸ”’ Authentication: User session required

Description: Parse address to extract city and state


/admin/import-google-places

Methods: POST

πŸ”’ Authentication: User session required

Description: POST /api/admin/import-google-places Import businesses from Google Places API Body: - zipCode: string (default: β€œ12477”) - radiusMiles: number (default: 20) - dryRun: boolean (default: false)


/admin/impersonate

Methods: POST, DELETE

πŸ”’ Authentication: User session required

Description: API Route: Admin Impersonation Allows admins to log in as any user while keeping admin privileges


Utility

/health

Methods: GET

🌐 Authentication: Public


/weather

Methods: GET

🌐 Authentication: Public


/contact

Methods: POST

🌐 Authentication: Public


/dashboard

Methods: GET

πŸ”’ Authentication: User session required

Description: GET /api/dashboard Returns dashboard data for logged-in business owner


/submissions

Methods: GET, POST

πŸ”’ Authentication: User session required

Description: API Route: Business Submissions