What PCIFIC keeps for each tool, who chooses it, and how to report what a seller published.
Every request made with one of your API keys leaves a request record, on every privacy tier. It holds when the request happened, which key (never the key itself), which tool and address, the status and error code, how long it took, and the caller's network range (the address cut short so it never identifies one machine). It holds no request or response content, photos, device identifiers or personal details. It is what outage alerts, usage counts and abuse checks run on, and it is deleted after 90 days.
On Operational only and Full monitoring, open a request in Dashboard > Logs to see what your business sent and what PCIFIC returned. Valid JSON bodies and JSON answer events are encrypted at rest and kept for 30 days using the same retention setting as detailed monitoring. Signed-in members of that business and its API keys explicitly given the logs permission can read them. Keys use GET /api/v1/logs/{requestId}; the permission is off by default. There is no staff reading route. True ZDR and Customer-held logs do not make these ordinary copies. Customer-held logs still use your master code on the Privacy page.
Credentials are shown as [removed]. Before saving, PCIFIC removes fields for API and AI provider keys, passwords, cookies, authorization values, one-time verification codes, signing secrets and access tokens, including nested fields and provider-specific API key names. Known credential values are removed from echoed text too. Request headers are never kept. Do not put secrets in unrelated fields or ordinary prose. Photos and files show only their name, type and size; file contents and upload text fields are not kept.
The cap is 256 KB per body. Larger bodies are marked as cut and omitted, rather than saving an unsafe fragment. Invalid JSON and incomplete bodies are marked as unavailable. Normal API calls and streamed answers continue unchanged if contents storage fails. Contents expire after 30 days and the hourly privacy clean-up deletes them, while the basic request row stays for 90 days. Deleting the business deletes the contents too. Earlier requests cannot be recovered. Keys without logs cannot read these contents. Customer-held and locked contents stay locked to keys, and True ZDR keeps no contents.
Beyond the request record, each tool keeps only what its tier allows. The tiers are chosen for each tool separately: Orbit, Safeguard, Ask PCIFIC and PixelTrace. An owner or admin chooses on the Privacy page of the dashboard, which shows exactly what PCIFIC can and cannot see before anything changes. API keys cannot change a tier.
| Tier | What PCIFIC keeps beyond the request record | Kept for |
|---|---|---|
| Operational only (the default) | The text of Ask PCIFIC questions it could not answer, so you can see what your documents are missing. Encrypted sent and returned contents are also kept for your business in Logs for 30 days. There is no quality or drift monitoring, so PCIFIC cannot tell you when listing quality slips. | 30 days (contents and unanswered questions) |
| Full monitoring | Encrypted sent and returned contents, plus how each piece of AI work went (the outcome, any error code, the AI model that answered, how many drafts our checks sent back), Orbit's first draft and the final listing you report, each Ask PCIFIC question with whether it was answered, and the text of Ask PCIFIC questions it could not answer. | 30 days |
| Customer-held logs | The full request and answer, locked with a master code only your team holds. PCIFIC cannot read them unless you give a support code. Photos and files are never kept, device identifiers are hidden, and Ask PCIFIC questions are never kept in these encrypted logs. The text of Ask PCIFIC questions it could not answer is kept as on the operational tier. | 30 days |
| True ZDR (zero data retention) | Nothing, and Ask PCIFIC's unanswered questions list is not kept either. Only PCIFIC staff switch it on, with a signed agreement on file. | Not kept |
If you lose your master code, every customer-held log is permanently unrecoverable. We cannot decrypt your logs or reset the code, by design. A tier change applies from the very next request and stops any collection the new tier does not allow. It never deletes anything already stored: that is deleted on its usual schedule.
PCIFIC does not train models on your requests.
Whatever the tier, Ask PCIFIC keeps each chat for 30 days so follow-up questions work. To keep no chats, send {"keepChats": false} to PUT /api/v1/ask-pcific/settings. Each question is then answered on its own and nothing about the chat is stored.
Device identifiers, such as phone serial numbers, are hidden before customer-held logs are encrypted, so a log cannot recover them later. Photos and other files are never kept, and Ask PCIFIC questions are never kept in these logs.
With Orbit on full monitoring, PCIFIC keeps the first draft it returned. When the seller publishes the listing, or gives up on it, tell PCIFIC with the listing's runId (the id POST /api/v1/listings gave you). PCIFIC can then measure how much sellers correct drafts and spot quality slipping. Send each field the seller changed, by its name in your listing fields, with a whole percentage from 0 to 100. For a listing that was not changed send an empty list. You may also send finalListing, the listing as published, without photos and without the seller's identity or contact details. Each listing's outcome is reported once, and the call needs a key with the orbit permission.
curl -X POST https://business.pcific.ai/api/v1/listings/11111111-1111-4111-8111-111111111111/outcome \
-H "Authorization: Bearer $PCIFIC_LIVE_KEY" \
-H "Content-Type: application/json" \
-d '{"event":"published","changes":[{"field":"description","percentChanged":30},{"field":"mileage","percentChanged":100}],"finalListing":{"title":"Ford Fiesta 1.0 Zetec 2019","description":"One owner, full service history."}}'{
"recorded": true
}For a listing that was never published send {"event": "abandoned"}. When Orbit is not on full monitoring, a known listing returns 409 MONITORING_OFF and nothing is kept. Choose full monitoring on the Privacy page, then start a new listing and report its outcome.
| Field | Type | Required | What it is |
|---|---|---|---|
event | string | Yes | published once the seller publishes, or abandoned if they never do. |
changes | object[] | No | With published only. Up to 500 entries of {field, percentChanged}. field is the name (1 to 256 characters), percentChanged a whole number from 0 to 100. A field may appear once. For a fixed choice that changed, send 100. |
finalListing | object | No | With published only. The listing as it went live, up to 200 KB, without photos and without seller identity or contact details. |
| Code | HTTP | Why it happens | How to fix |
|---|---|---|---|
INVALID_FIELD | 400 | event is not published or abandoned, changes has an entry without a field and a percentChanged from 0 to 100, a field is listed twice, or finalListing is too big or sent with abandoned. | Fix each place listed in problems, then send the report again. |
MONITORING_OFF | 409 | Orbit full monitoring is off for this business, so the outcome cannot be recorded. | Choose full monitoring for Orbit on the Privacy page, then start a new listing and report its outcome. |
OUTCOME_ALREADY_REPORTED | 409 | This listing's outcome was already reported. | Nothing more is needed for this listing. Report each listing once. |
NOT_FOUND | 404 | There is no finished listing with this id under full monitoring, or it is older than 30 days. | Report outcomes only for listings Orbit finished while on full monitoring, using the runId from POST /api/v1/listings. |
GET /api/v1/monitoring/summary (a key with the read permission) shows this UTC month by default: how many requests succeeded and failed, the same per tool, how many of each HTTP error status of 400 and above, and the tools on full monitoring. For those tools it also shows how many AI runs failed, how many drafts our checks sent back, and for Orbit how many listings were published or abandoned and how many were published with no edits. Usage, Overview, Logs and monitoring count every request, including setup, reads and refusals. Requests fail on an error status or an explicit failed tool result inside a 200 response; successful cancellations are not failures. The HTTP status breakdown excludes 200 even when that request returned a failed tool result. Model work and listing outcomes follow the same live or test selection. Older model-work records without a saved key kind appear only under All requests. Send keyKind=live or keyKind=test to reports and Logs to filter traffic, or leave it out for all requests. Send from and to for the same date range on analytics, monitoring and Logs. Every call remains visible in Logs, where calls with no tool appear under Setup and reads.
Choose the logs permission when making or editing a test or live API key. It is off by default and read does not include it. GET /api/v1/logs lists your business’s logs with status (failed or succeeded), tool, requestId, limit and offset. A shop-limited key sees only its own shop. GET /api/v1/logs/{requestId} opens a record by the UUID returned in your API response, or by its old number. Customer-held, locked and True ZDR contents stay locked to keys.
GET /api/v1/logs/export downloads pcific-request-logs.csv with the same columns as the Logs page: requestId, createdAt, marketplaceName, tool, keyKind, keyName, method, route, status, errorCode, durationMs, replayed and testAiStub. No sent or returned contents are exported. It accepts the same filters and from/to as YYYY-MM-DD or ISO 8601 times with a timezone. Dates mean midnight UTC, from and to are inclusive, and omitted dates mean this month through now. With requestId and no dates, the export searches all retained dates for that one request, matching Find request on the dashboard. Explicit dates still follow the 31-day limit even with requestId. Date-range exports are capped at 31 days and all exports at 10,000 rows; choose smaller ranges if refused. Formula-like text cells start with an apostrophe. The dashboard Logs page has an Export button with the same rules.