canonical: https://jentic.com/apis/documentapi.brightplanet.com/brightplanet

# Documentapi Brightplanet BrightPlanet's Harvest REST APIs

BrightPlanet's Harvest REST APIs expose document harvesting and data extraction services that index, store, and retrieve content gathered by BrightPlanet's web crawling infrastructure. The published OpenAPI specification follows the Petstore sample template, exposing 20 endpoints across pet, store, and user resource groups for programmatic interaction. Authentication is supported through OAuth 2.0 and the api_key header, allowing agents to authenticate calls before fetching, listing, or modifying records. The service is intended for teams integrating BrightPlanet harvesting output into downstream analytics, search, or compliance workflows.

## For AI agents

Authenticate to BrightPlanet's Harvest service and call REST endpoints to create, retrieve, update, and delete pet, store order, and user records exposed by the spec.

## Scope

Does not handle live web crawling, JavaScript rendering, or knowledge-graph extraction - use for the published pet, store, and user REST endpoints only.

## Capabilities

- Add, update, and delete pet records via /pet endpoints
- Find pets by status or by tag using GET `/pet/findByStatus` and `/pet/findByTags`
- Place a store order with POST `/store/order` and look it up by orderId
- Inspect store inventory counts grouped by status
- Create individual users or batches of users via `/user/createWithList`
- Authenticate user sessions through `/user/login` and `/user/logout`
- Upload an image attached to a pet via `/pet/{petId}/uploadImage`

## Use cases

### Pet Catalogue Management

Maintain the pet resource collection by adding new pets, updating existing records, and deleting retired entries through the /pet endpoints. The API supports lookup by ID, by status, and by tag, so an integration can keep a downstream catalogue synchronized without scraping HTML. A typical sync job runs in minutes once authentication is wired up.

Example prompt: Call POST /pet to add a pet named 'doggie' with status 'available', then GET `/pet/{petId}` to confirm the record was created.

### Store Order Processing

Create and track purchase orders against the store resource using POST `/store/order` and GET `/store/order/{orderId}.` The `/store/inventory` endpoint exposes counts of pets by status, useful for dashboards or fulfilment automation. Orders can be removed with DELETE `/store/order/{orderId}` when they are cancelled.

Example prompt: POST `/store/order` with petId and quantity, then poll GET `/store/order/{orderId}` until the order status changes from 'placed' to 'approved'.

### User Account Provisioning

Provision and manage user accounts through the /user collection, including bulk creation via `/user/createWithList` and session handling through `/user/login` and `/user/logout.` Username-keyed endpoints support read, update, and delete operations on individual records.

Example prompt: POST `/user/createWithList` with an array of three users, then GET `/user/{username}` for each to verify creation.

### AI Agent Catalogue Sync via Jentic

An AI agent uses Jentic to discover the BrightPlanet Harvest endpoints, load their schemas, and execute create/list/update operations on pet, store, and user records without parsing the OpenAPI spec by hand. Credentials stay in your Jentic One instance, so the agent only handles scoped tokens.

Example prompt: Search Jentic for 'add a pet record' and execute POST /pet with the returned schema, then list pets by status to verify.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/pet` | Add a new pet to the store |
| GET | `/pet/findByStatus` | Find pets by status |
| POST | `/store/order` | Place an order for a pet |
| GET | `/store/inventory` | Returns pet inventories by status |
| POST | `/user/createWithList` | Create a list of users |
| GET | `/user/login` | Log a user in |

## Key resources

- **Pet** — CRUD operations on pets, including lookup by status, tag, and image upload
- **Store** — Place and manage store orders and inspect inventory counts
- **User** — Create individual or batched users, authenticate sessions, and manage user records by username

## Why Jentic

- **Setup:** Wiring BrightPlanet's Harvest REST APIs by hand means handling both an OAuth2 flow and an api_key header, then pointing calls at the harvestapi host before you can create a pet or place an order. Through Jentic you install once, import BrightPlanet's Harvest REST APIs from the API Directory, store the api_key once, and your agent calls it.
- **Permission scoping:** The Harvest API puts the resource id in the URL path (`/pet/{petId}`, `/store/order/{orderId}`, `/user/{username}`), so a rule can pin your agent to one pet, order, or user record. You choose the operations it may call, so a delete on a pet or order is not included unless you add it.
- **Credential handling:** Your BrightPlanet OAuth token and api_key are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'add a pet record' or 'place a store order', and Jentic returns the matching BrightPlanet operation with its parameter schema so the agent calls the right endpoint without parsing the OpenAPI document directly.

## Related APIs

- **ScraperAPI** — Managed web scraping with proxy rotation and headless rendering
- **ScrapingAnt** — Headless browser scraping API
- **Apify** — Run scraping actors and ship results downstream

## FAQ

### What authentication does the BrightPlanet Harvest API use?

The spec defines two security schemes: OAuth 2.0 (petstore_auth) and an api_key header. Through Jentic, both credential types are stored encrypted in the vault and injected at execution time, so the agent only ever sees a scoped token rather than your raw key.

### Can I find pets by status with the BrightPlanet Harvest API?

Yes. GET `/pet/findByStatus` accepts a status query parameter and returns matching pet records. GET `/pet/findByTags` is also available when you want to filter by tag instead of status.

### What are the rate limits for the BrightPlanet Harvest API?

The OpenAPI spec does not declare rate limits. Treat the service as bounded and apply client-side throttling and retries with exponential backoff when running batch jobs against /pet or /user endpoints.

### How do I create a user through the BrightPlanet Harvest API via Jentic?

Run pip install jentic, then search Jentic for 'create a user' to get the schema for POST /user. Load and execute the operation with the user payload; Jentic injects the api_key or OAuth token from the vault so your agent code never holds the secret.

### Does the BrightPlanet Harvest API support image uploads?

Yes. POST `/pet/{petId}/uploadImage` accepts an image and attaches it to the specified pet record. Jentic exposes this as a discrete operation you can call after creating or updating the pet.

### Can I delete an order through the BrightPlanet Harvest API?

Yes. DELETE `/store/order/{orderId}` removes a previously placed order. Pair it with GET `/store/order/{orderId}` to verify the order existed before deletion and confirm a 404 afterwards.

### Can I limit what my agent is allowed to do with the BrightPlanet Harvest API?

Yes. Because you run Jentic One yourself, your own rules decide which Harvest operations the agent may call, so you can grant read and create access on /pet, `/store/order`, and /user while withholding deletes like DELETE `/pet/{petId}` or DELETE `/store/order/{orderId}.` Since the resource id lives in the URL path, a rule can pin the agent to a single pet, order, or user record rather than the whole collection. You also control which OAuth token and api_key it may use, so it only ever receives a scoped credential for the operations you allow.
