Shared groups
Groups can be shared between customers for read access. The owning customer retains all write privileges; recipients see the group alongside their owned groups in the UI but cannot mutate it.
Requires the DATA_SHARING plan feature on the owner side. Total shares per group are capped by the DATA_SHARING_LIMITS plan limit.
Endpoint summary
| Method | Path | Operation ID | Auth scope |
|---|---|---|---|
| GET | /api/scraper/shared/group/list | scrapewise_get_scraper_shared_group_list | bearer |
| PUT | /api/scraper/shared/group/{id} | scrapewise_update_scraper_shared_group | bearer + DATA_SHARING + idempotency-key |
| DELETE | /api/scraper/shared/group/{id} | scrapewise_stop_scraper_shared_group | bearer + idempotency-key |
| GET | /api/scraper/shared/group/{id}/list | scrapewise_list_scraper_shared_group_list | bearer |
List groups shared TO me — GET /api/scraper/shared/group/list
curl -H "Authorization: Bearer $KEY" \
https://portal.scrapewise.ai/api/scraper-api/api/scraper/shared/group/listReturns groups owned by other customers that have been shared to you (read access). Distinct from GET /api/scraper/group/list which returns your own groups. Use to build a “shared with me” UI tab.
Response (200) — List<GroupDTO> (same shape as own-groups). Empty list if nothing is shared to you. Each entry’s customerRef reveals the owning customer’s customerUniqueRef.
Errors — 400 (N/A) / 401 / 403 (N/A) / 404 (N/A) / 429 / 500.
Share a group — PUT /api/scraper/shared/group/{id}
PUT /api/scraper/shared/group/5f9a1b2c3d4e5f6a7b8c9d0e
Authorization: Bearer <key>
Idempotency-Key: <uuid>
Content-Type: application/json
[
{ "email": "alice@example.com" },
{ "email": "bob@example.com" }
]Grants read access on the group to the listed emails. Idempotent — re-sharing to the same email is a no-op. The recipient sees the group in their “shared with me” list once their next request runs.
Errors
| Code | Meaning |
|---|---|
| 400 | Body is empty / group doesn’t exist for this customer |
| 401 | Missing/invalid bearer |
| 402 | Plan lacks DATA_SHARING OR total shares would exceed DATA_SHARING_LIMITS |
| 403 | N/A |
| 404 | N/A (400 envelope used instead) |
| 429 | Rate-limited |
| 500 | Persistence failure |
Revoke a share — DELETE /api/scraper/shared/group/{id}?email=...
curl -X DELETE -H "Authorization: Bearer $KEY" \
"https://portal.scrapewise.ai/api/scraper-api/api/scraper/shared/group/5f9a.../?email=alice@example.com" \
-H "Idempotency-Key: $(uuidgen)"Removes a single share entry — the email loses access. NOT idempotent in the strict sense — revoking a share that doesn’t exist returns 400 with "Customer X group Y is not shared with customer Z". Check the current share list first:
Errors
| Code | Meaning |
|---|---|
| 400 | Group doesn’t exist / caller isn’t owner / email was never shared with on this group |
| 401 | Missing/invalid bearer |
| 403 | N/A |
| 404 | N/A |
| 429 | Rate-limited |
| 500 | Persistence failure |
No batch-revoke API today — call this once per email if you need to remove multiple shares.
List who I’ve shared a group to — GET /api/scraper/shared/group/{id}/list
curl -H "Authorization: Bearer $KEY" \
https://portal.scrapewise.ai/api/scraper-api/api/scraper/shared/group/5f9a.../listReturns the recipient emails currently granted access to a group you own. Empty list = group not shared with anyone. Use before granting / revoking to render an “X has access” UI list.
Response (200) — List<string> (emails). Order is repository-natural; sort client-side if you need stable display.
Errors
| Code | Meaning |
|---|---|
| 400 | Group doesn’t exist for this customer (you’re not the owner) |
| 401 | Missing/invalid bearer |
| 403 | N/A |
| 404 | N/A |
| 429 | Rate-limited |
| 500 | Mongo lookup failure |
Reading shared data
Once a group is shared to you, its scraped data is readable via the normal data endpoints — see Scraped data for the read API. The grant covers data inside the group’s collection; it does NOT extend to the owner’s other groups or to mutation operations on this group.
See also
- Groups — group CRUD (the owner-side surface)
- Scraped data — read shared group data
- Plan features — which tiers unlock
DATA_SHARING