# 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 for Locus Pro. Each call burns credits from your workspace balance.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/credits/jula/`
**Auth:** `Authorization: Bearer <LOCUS_CREDITS_SECRET_KEY>` (an `lcr_` secret key or a scoped `lcac_` agent credential)
**Required header:** `Idempotency-Key: <fresh UUID per call>`. A retry with the same key replays the stored result without a new charge.
**Response:** the provider response after any endpoint-specific normalization. `X-Locus-Credits-Charged` carries the charge and `X-Locus-Credits-Balance` the remaining balance. Insufficient credits return `402` before the provider is called.
**Pricing:** estimated costs below are USD. Locus debits the credit equivalent at your workspace rate.

Full call contract: https://docs.paywithlocus.com/api-reference/introduction

> Using a Pay With Locus wallet key (`claw_` prefix)? Wallet routes are documented separately: https://docs.paywithlocus.com/wrapped-apis/for-agents

## 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/credits/jula/get-category-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/jula/get-product-details \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -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/credits/jula/search-products \
  -H "Authorization: Bearer $LOCUS_CREDITS_SECRET_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"offset":"<integer>","page_size":"<integer>","query":"<string>"}'
```

## Next steps

- [All wrapped API providers](https://paywithlocus.com/wapi/index.md): pick another provider.
- [Find and call tools](https://paywithlocus.com/agent/tools.md): price ceilings, async results, and errors.
- [Credits and billing](https://paywithlocus.com/agent/billing.md): what a call costs and how to add credits.
- [Agent docs index](https://paywithlocus.com/agent/index.md): every Locus agent page.