API Documentation

Build your own bots powered by AutoMunch. The Food API is currently available for Whataburger and Bojangles with more brands coming soon.

Overview

The AutoMunch Food API lets developers build their own Discord bots (or any application) that generate Whataburger and Bojangles accounts using AutoMunch's infrastructure. API keys are tied to your Discord user, settings, and credit wallet.

Base URL

https://api.automunch.site

Current API Scope

Food API access is available for AutoMunch server members. API keys are created in the main AutoMunch bot with /api_key. The key maps to the developer's Discord user, settings, and credit wallet. Each user can have one active key. Only admins can revoke API keys.

Authentication

All API requests require a Bearer token in the Authorization header. API keys are prefixed with am_live_.

Authorization Header
Authorization: Bearer am_live_your_key_here

How It Works

As a provider, you create an API key linked to your Discord account, credits, and Food settings. Your backend calls the API to generate accounts for your customers, identified by a customer_ref you define.

Flow

Your API key → your settings → your credits → accounts tagged with customer_ref

Developer Snapshot

GET /v1/me Verify key, balance, and settings

Use this endpoint to verify your API key, check your credit balance, and confirm your Food settings are properly configured.

Request
curl -H "Authorization: Bearer am_live_..." \
  https://api.automunch.site/v1/me
Python
import requests

API_KEY = "am_live_..."
headers = {"Authorization": f"Bearer {API_KEY}"}

resp = requests.get("https://api.automunch.site/v1/me", headers=headers)
data = resp.json()

print(f"Credits: {data['credits']}")
print(f"Brands: {data['brands']}")
200 Response
{
  "owner_user_id": "123456789012345678",
  "credits": 25,
  "settings": {
    "gen_mode": "hotmail",
    "hotmail_configured": true,
    "email_domain_configured": false,
    "imap_configured": true,
    "whata_ready": true,
    "bojan_ready": true
  },
  "brands": ["whataburger", "bojangles"]
}

Generate Accounts

POST /v1/food/whata/gen Start generation job

Starts a Food generation job. Also available at /v1/food/whataburger/gen.

Request
curl -X POST \
  -H "Authorization: Bearer am_live_..." \
  -H "Content-Type: application/json" \
  -d '{"amount": 1, "customer_ref": "discord:123456789012345678"}' \
  https://api.automunch.site/v1/food/whata/gen
Python
import requests

API_KEY = "am_live_..."
headers = {"Authorization": f"Bearer {API_KEY}"}

resp = requests.post(
    "https://api.automunch.site/v1/food/whata/gen",
    headers=headers,
    json={"amount": 1, "customer_ref": "discord:123456789012345678"}
)
job = resp.json()["job"]
print(f"Job ID: {job['job_id']}, Status: {job['status']}")
FieldTypeRequiredNotes
amountintegerYesNumber of accounts to generate
customer_refstringNoDeveloper-defined identifier for their customer
POST /v1/food/bojan/gen Start generation job

Starts a Bojangles generation job. Also available at /v1/food/bojangles/gen.

202 Response
{
  "job": {
    "job_id": "9f7b9c7c-4db6-4c89-8d7a-93f0e62ad555",
    "owner_user_id": "123456789012345678",
    "brand": "bojangles",
    "amount": 1,
    "customer_ref": "discord:123456789012345678",
    "status": "queued",
    "progress_current": 0,
    "progress_total": 1
  }
}

Poll Job Status

GET /v1/jobs/{job_id} Status and result

Poll this endpoint until the job status is completed or failed.

Request
curl -H "Authorization: Bearer am_live_..." \
  https://api.automunch.site/v1/jobs/9f7b9c7c-4db6-4c89-8d7a-93f0e62ad555
Python — Poll until done
import time, requests

API_KEY = "am_live_..."
headers = {"Authorization": f"Bearer {API_KEY}"}
job_id = "9f7b9c7c-4db6-4c89-8d7a-93f0e62ad555"

while True:
    resp = requests.get(
        f"https://api.automunch.site/v1/jobs/{job_id}",
        headers=headers
    )
    job = resp.json()["job"]

    if job["status"] in ("completed", "failed"):
        break
    print(f"Status: {job['status']} — waiting...")
    time.sleep(3)

if job["status"] == "completed":
    for acct in job["result"]["accounts"]:
        print(f"{acct['email']} — {acct['brand']}")
else:
    print(f"Job failed: {job}")
Completed Job Response
{
  "job": {
    "job_id": "9f7b9c7c-4db6-4c89-8d7a-93f0e62ad555",
    "brand": "bojangles",
    "status": "completed",
    "result": {
      "generated_count": 1,
      "failed_count": 0,
      "customer_ref": "discord:123456789012345678",
      "accounts": [
        {
          "id": 1842,
          "brand": "bojangles",
          "email": "example@domain.com",
          "phone": "5551234567",
          "first_name": "James",
          "last_name": "Smith",
          "member_uuid": "abc-123",
          "rewards": []
        }
      ],
      "credits_remaining": 24
    }
  }
}

List Accounts

GET /v1/food/accounts API-created rows only

Returns accounts created through the API. Use customer_ref to filter by customer.

ParameterRequiredNotes
brand Yes whataburger or bojangles. Short aliases whata and bojan accepted.
customer_ref No Recommended for customer bot account views.
limit No Defaults to 50. Maximum is 100.
Request
curl -H "Authorization: Bearer am_live_..." \
  "https://api.automunch.site/v1/food/accounts?brand=bojan&customer_ref=discord:123"
Python
import requests

API_KEY = "am_live_..."
headers = {"Authorization": f"Bearer {API_KEY}"}

resp = requests.get(
    "https://api.automunch.site/v1/food/accounts",
    headers=headers,
    params={"brand": "bojan", "customer_ref": "discord:123"}
)
accounts = resp.json()["accounts"]

for acct in accounts:
    print(f"{acct['email']} — {acct['brand']} (ID: {acct['id']})")

Fetch OTP

POST /v1/food/bojan/accounts/{account_id}/otp Slow request

Fetches a one-time password for a Bojangles account. The account_id is the row ID returned from a completed job or account list.

Slow Request

This endpoint triggers an OTP email and polls for delivery. Expect 10-30 second response times.

Request
curl -X POST \
  -H "Authorization: Bearer am_live_..." \
  https://api.automunch.site/v1/food/bojan/accounts/1842/otp
Python
import requests

API_KEY = "am_live_..."
headers = {"Authorization": f"Bearer {API_KEY}"}
account_id = 1842

resp = requests.post(
    f"https://api.automunch.site/v1/food/bojan/accounts/{account_id}/otp",
    headers=headers
)
data = resp.json()
print(f"OTP for {data['email']}: {data['otp']}")
Response
{
  "account_id": 1842,
  "brand": "bojangles",
  "email": "example@domain.com",
  "otp": "123456"
}

Developer Workflow

Create key

Run /api_key action:Create in the main AutoMunch bot on Discord.

Configure settings

Use the Food bot /settings to set up email provider and generation mode.

Start job

POST to the generation endpoint with amount and optional customer_ref.

Deliver result

Poll job status until completed, then send account details to your users.

Error Codes

StatusErrorMeaning
401 unauthorized Missing, invalid, or revoked API key.
402 insufficient_credits Developer does not have enough credits for the requested amount.
400 settings_required Developer must configure Food settings before using the API.
409 active_job_exists Developer already has a queued or running API generation job.
504 otp_not_found No matching Bojangles OTP was found within the polling window.

Future APIs

These API categories are planned but not yet available.

DoorDash API

Coming Soon

Chain-based generation and order automation via REST API.

Uber Eats API

Coming Soon

Credit-based account generation with promo selection.

Instacart API

Coming Soon

Pickup checkout automation via REST API.

Chipotle API

Coming Soon

Batch group order placement and promo checkout.