Upvote.shupvote.sh

API Documentation

Integrate Upvote.sh services into your workflow with our REST API. Automate Reddit upvotes, comments, and more.

Base URL

https://api.upvote.sh/v1

Authentication

All API requests require an API key sent in the Authorization header.

HEADER
Authorization: Bearer YOUR_API_KEY

Get your API key from the Dashboard under Settings.

Rate Limits

PlanRequests / minRequests / day
Free10500
Pro605,000
Enterprise300Unlimited

Endpoints

POST/orders

Create a new order for upvotes, comments, or other services.

Request Body

JSON
{
  "service": "upvotes",
  "url": "https://reddit.com/r/startups/comments/abc123",
  "quantity": 100,
  "speed": "gradual"
}

Parameters

FieldTypeRequiredDescription
servicestringYesOne of: upvotes, downvotes, comments, views, awards, saves, shares
urlstringYesReddit post or comment URL
quantityintegerYesNumber of actions (10 - 10,000)
speedstringNoDelivery speed: instant or gradual (default)

Response

200 OK
{
  "id": "ord_a1b2c3d4e5",
  "status": "processing",
  "service": "upvotes",
  "url": "https://reddit.com/r/startups/comments/abc123",
  "quantity": 100,
  "speed": "gradual",
  "estimated_completion": "2026-02-12T10:00:00Z",
  "created_at": "2026-02-11T14:30:00Z"
}
GET/orders/:id

Retrieve the status of an existing order.

Response

200 OK
{
  "id": "ord_a1b2c3d4e5",
  "status": "completed",
  "service": "upvotes",
  "url": "https://reddit.com/r/startups/comments/abc123",
  "quantity": 100,
  "delivered": 100,
  "speed": "gradual",
  "completed_at": "2026-02-12T08:45:00Z",
  "created_at": "2026-02-11T14:30:00Z"
}
GET/orders

List all your orders with optional filters.

Query Parameters

ParamTypeDescription
statusstringFilter by status: processing, completed, cancelled
limitintegerResults per page (default: 20, max: 100)
offsetintegerPagination offset
GET/balance

Check your account balance.

Response

200 OK
{
  "balance": 245.50,
  "currency": "USD"
}
GET/services

List all available services with pricing.

Response

200 OK
{
  "services": [
    {
      "id": "upvotes",
      "name": "Reddit Upvotes",
      "min": 10,
      "max": 10000,
      "price_per_unit": 0.01,
      "currency": "USD"
    },
    {
      "id": "comments",
      "name": "Reddit Comments",
      "min": 1,
      "max": 500,
      "price_per_unit": 0.50,
      "currency": "USD"
    }
  ]
}

Error Codes

CodeStatusDescription
400Bad RequestInvalid parameters or missing required fields
401UnauthorizedMissing or invalid API key
402Payment RequiredInsufficient balance for this order
404Not FoundOrder or resource not found
422UnprocessableInvalid Reddit URL or unsupported content type
429Too Many RequestsRate limit exceeded. Check Retry-After header.

Webhooks

Set up webhook notifications to receive real-time order status updates. Configure your webhook URL in the Dashboard.

Webhook Payload

POST to your webhook URL
{
  "event": "order.completed",
  "data": {
    "id": "ord_a1b2c3d4e5",
    "status": "completed",
    "service": "upvotes",
    "quantity": 100,
    "delivered": 100,
    "completed_at": "2026-02-12T08:45:00Z"
  }
}

Events: order.processing, order.completed, order.cancelled, order.partial

Quick Start

Here is a quick example using cURL to create an upvote order:

cURL
curl -X POST https://api.upvote.sh/v1/orders \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "service": "upvotes",
    "url": "https://reddit.com/r/startups/comments/abc123",
    "quantity": 50,
    "speed": "gradual"
  }'

Need Help?

Contact our team at upvote.sh/contact for API support or custom integrations.