Monitoring and privacy

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.

Sent and returned contents in Logs

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.

The four privacy tiers

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.

What each tier keeps
TierWhat PCIFIC keeps beyond the request recordKept 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 monitoringEncrypted 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 logsThe 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.

Ask PCIFIC chats

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.

Letting PCIFIC help with a request

A support code for customer-held logs
  1. Choose the requests you want help withOn the Privacy page, tick the specific requests and pick an expiry.
  2. Create a support codeYour browser locks only those requests' keys under the code. The code cannot open any other request, including ones made after it.
  3. Give the code to PCIFIC supportPCIFIC can then open only those requests, only until the code expires. Every request they open appears in your audit history.
  4. Revoke it whenever you likeAccess stops at once. An owner or admin can also switch support access off, and then no code opens anything.

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.

Report what the seller published

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.

A published listing with edit percentages and the final listing
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."}}'
The answer
{
  "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.

The outcome request
FieldTypeRequiredWhat it is
eventstringYespublished once the seller publishes, or abandoned if they never do.
changesobject[]NoWith 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.
finalListingobjectNoWith published only. The listing as it went live, up to 200 KB, without photos and without seller identity or contact details.
Errors from reporting an outcome
CodeHTTPWhy it happensHow to fix
INVALID_FIELD400event 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_OFF409Orbit 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_REPORTED409This listing's outcome was already reported.Nothing more is needed for this listing. Report each listing once.
NOT_FOUND404There 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.

Usage, logs and shops

  • Every request record, charge and usage total notes the shop the request was for, so usage, analytics and logs can be read for one shop or for every shop together. A request that named no shop, when your business has several, is recorded without one.
  • Privacy tiers belong to your whole business: a tool's tier applies to that tool in every shop.
  • On the dashboard, the Usage page shows the shop chosen in the switcher in the Your account menu, or All shops for every shop together, and each failure names the shop it belongs to, with its key. The Credits page lists every credit movement for the whole business, each naming its shop.
  • Through the API, send ?marketplaceId=<id> to GET /api/v1/usage, /api/v1/analytics and /api/v1/monitoring/summary for one shop's figures. Leave it out for every shop together. Analytics lists each shop's part in marketplaces, and each failure and credit movement carries marketplaceId and marketplaceName.
  • Reporting a listing's outcome is for the shop the listing was made in: send the same marketplaceId as POST /api/v1/listings.

See how your requests went

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.

Read and export request logs

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.

Words used on this page

  • Request record: the short note PCIFIC keeps of each request, without its content.
  • Master code: a code your browser makes and never sends to PCIFIC, which locks customer-held logs.
  • Support code: a code that lets PCIFIC open only the requests you chose.
  • Zero data retention (ZDR): keeping no content at all.
  • Drift: quality slowly getting worse over time without anyone noticing.