# Jula — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse products from Jula.fi to find hardware items with detailed information including prices (with and without VAT), stock availability, brand details, and product SKUs. Explore products by category or search for specific items to compare pricing and check real-time stock status.

**Category:** E-commerce | **Website:** [www.jula.fi/catalog/tyokalut-ja-koneet/kasityokalut/](https://www.jula.fi/catalog/tyokalut-ja-koneet/kasityokalut/) | **Docs:** [parse.bot/marketplace/27ce992f-ab2f-4bf0-99a6-63af1a9ca688/jula-fi-api](https://parse.bot/marketplace/27ce992f-ab2f-4bf0-99a6-63af1a9ca688/jula-fi-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-jula-fi-api-27ce992f/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_category_products

Retrieve all products listed on a Jula.fi category page. Returns product SKUs, pricing, brand, and stock information for items in the given category path. The category_path corresponds to URL segments after /catalog/ on jula.fi.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category_path` | string | Yes | Category URL path segments after /catalog/ (e.g. 'tyokalut-ja-koneet/kasityokalut/ruuvitaltat') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jula-fi-api-27ce992f/get_category_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category_path":"<string>"}'
```

### get_product_details

Fetch detailed information for a single product by its catalog path. Returns SKU, full title, brand, description text, pricing (with and without VAT), and review aggregates. The product_path corresponds to URL segments after /catalog/ on jula.fi including the product slug.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `product_path` | string | Yes | Product URL path segments after /catalog/ (e.g. 'tyokalut-ja-koneet/kasityokalut/ruuvitaltat/uraruuvitaltat/uraruuvimeisseli-030458') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jula-fi-api-27ce992f/get_product_details \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"product_path":"<string>"}'
```

### search_products

Full-text search across Jula.fi product catalog. Returns paginated results with SKU, pricing, brand, stock status, and review data. Pagination via offset; each page returns up to page_size items. An empty query is rejected.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `offset` | integer | No | Pagination offset (number of products to skip). Starts at 0. |
| `page_size` | integer | No | Number of products per page (max items returned per call). |
| `query` | string | Yes | Search keyword (e.g. 'hammer', 'drill', 'ruuvimeisseli') |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-jula-fi-api-27ce992f/search_products \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"offset":"<integer>","page_size":"<integer>","query":"<string>"}'
```
