Developers

Salad.Now API

Read-only JSON API for live Salad.now recipe data. No authentication required.

Base URL

https://app.salad.now

Auth

None. Public read-only endpoints.

Schema

JSON response envelope with snake_case fields.

Endpoints

Supported methods: GET, HEAD, OPTIONS.

Method Path Description Cache
GET /v1/health Service health check. no-store
GET /v1/sotd Full Salad of the Day payload. max-age=300
GET /v1/salads List/filter salads with pagination. max-age=60
GET /v1/salads/{slug} Full recipe detail by slug. max-age=60
GET /openapi.json OpenAPI 3.1 definition. max-age=3600
GET

/v1/health

Returns service status and current server time. Useful as a connectivity check or for monitoring.

Request

curl https://app.salad.now/v1/health

Response 200

{
  "ok": true,
  "service": "salad-app-api",
  "now": "2026-02-17T17:52:33.999Z"
}
GET

/v1/sotd

Returns the full Salad of the Day object, including recipe details, ingredients, steps, images, and nutritional info. Rotates daily.

Request

curl https://app.salad.now/v1/sotd

Response fields

Field Type Description
slugstringURL-safe identifier
titlestringRecipe display name
introstringShort description
caloriesnumberCalories per serving
macrosobjectprotein, carbs, fat in grams
ingredientsarrayList of {quantity, item}
stepsarrayCooking steps with images
imagesobjectHero and ingredient images
checkout_urlstringInstacart shopping list link

Response 200

{
  "ok": true,
  "data": {
    "slug": "honey-mustard-chicken",
    "title": "Honey Mustard Chicken Salad",
    "intro": "Tender chicken over crunchy greens with apples, cucumbers, cheddar, and toasted pecans...",
    "prep_time": "26 min",
    "prep_minutes": 26,
    "servings_count": 4,
    "calories": 620,
    "macros": {
      "protein": "74",
      "carbs": "24",
      "fat": "34"
    },
    "is_vegan": false,
    "is_vegetarian": false,
    "collection": "Bistro Classics",
  }
}
GET

/v1/salads

List and filter salads with pagination. Supports dietary, nutritional, and prep time filters.

Query parameters

Parameter Type Details
dietstringvegan or vegetarian
min_proteinnumberMinimum protein grams
max_prep_timenumberMaximum prep time in minutes
min_caloriesnumberMinimum calories
max_caloriesnumberMaximum calories
limitintegerPage size, default 20, max 100
offsetintegerPagination offset, default 0

Request

curl "https://app.salad.now/v1/salads?diet=vegan&max_prep_time=20&limit=3"

Response 200

{
  "ok": true,
  "data": [
    {
      "slug": "bean-trio-salad",
      "title": "Bean Trio Salad",
      "intro": "A bright, crunchy three-bean salad with celery, herbs, and a tangy-sweet vinaigrette...",
      "prep_minutes": 15,
      "calories": 415,
      "protein_grams": 17,
      "is_vegan": true,
      "is_vegetarian": true,
      "image": { "src": "https://m1.salad.now/bean_trio_salad.png" }
    },
    {
      "slug": "berry-spinach",
      "title": "Berry Spinach",
      "intro": "Fresh spinach and juicy strawberries tossed with a sweet-tangy sesame poppy dressing.",
      "prep_minutes": 10,
      "calories": 230,
      "protein_grams": 3,
      "is_vegan": true,
      "is_vegetarian": true,
      "image": { "src": "https://m1.salad.now/berry_spinach.png" }
    },
    {
      "slug": "lemon-garden-salad",
      "title": "Lemon Garden Salad",
      "intro": "Juicy tomatoes, crisp cucumber, and chopped onion tossed with fresh lemon...",
      "prep_minutes": 10,
      "calories": 35,
      "protein_grams": 1,
      "is_vegan": true,
      "is_vegetarian": true,
      "image": { "src": "https://m1.salad.now/lemon_garden_salad.png" }
    }
  ],
  "meta": {
    "total": 3,
    "limit": 3,
    "offset": 0
  }
}
GET

/v1/salads/{slug}

Returns the full recipe detail for a single salad. Includes ingredients, step-by-step instructions, images, nutritional info, and substitutions.

Request

curl https://app.salad.now/v1/salads/berry-spinach

Path parameters

Param Type Description
slugstringURL-safe recipe identifier, e.g. berry-spinach

Response 200

{
  "ok": true,
  "data": {
    "slug": "berry-spinach",
    "title": "Berry Spinach",
    "intro": "Fresh spinach and juicy strawberries tossed with a sweet-tangy sesame poppy dressing.",
    "prep_time": "10 min",
    "prep_minutes": 10,
    "servings_count": 4,
    "calories": 230,
    "macros": { "protein": "3", "carbs": "22", "fat": "16" },
    "is_vegan": true,
    "is_vegetarian": true,
    "collection": "Bistro Classics",
    "why_we_love_it": "Sweet strawberries + crisp spinach + a quick homemade dressing...",
  }
}
GET

/openapi.json

Returns the OpenAPI 3.1 specification for the entire API. Use it to generate client libraries or import into tools like Postman.

Request

curl https://app.salad.now/openapi.json

Response 200

Returns the full OpenAPI 3.1 JSON specification document. Too large to display inline.

View full spec →

Rate limits and headers

  • Rate limit: 60 requests per minute per IP.
  • Headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.
  • 429 responses include Retry-After.
  • ETag is included for conditional requests.

Notes

Responses may include third-party checkout URLs (for example Instacart). Those services are governed by their own terms and policies.

For API usage rules, see Data API Terms. For support, email [email protected].