Skip to Content
REST APIShared groups

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

MethodPathOperation IDAuth scope
GET/api/scraper/shared/group/listscrapewise_get_scraper_shared_group_listbearer
PUT/api/scraper/shared/group/{id}scrapewise_update_scraper_shared_groupbearer + DATA_SHARING + idempotency-key
DELETE/api/scraper/shared/group/{id}scrapewise_stop_scraper_shared_groupbearer + idempotency-key
GET/api/scraper/shared/group/{id}/listscrapewise_list_scraper_shared_group_listbearer

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/list

Returns 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

CodeMeaning
400Body is empty / group doesn’t exist for this customer
401Missing/invalid bearer
402Plan lacks DATA_SHARING OR total shares would exceed DATA_SHARING_LIMITS
403N/A
404N/A (400 envelope used instead)
429Rate-limited
500Persistence 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

CodeMeaning
400Group doesn’t exist / caller isn’t owner / email was never shared with on this group
401Missing/invalid bearer
403N/A
404N/A
429Rate-limited
500Persistence 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.../list

Returns 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

CodeMeaning
400Group doesn’t exist for this customer (you’re not the owner)
401Missing/invalid bearer
403N/A
404N/A
429Rate-limited
500Mongo 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