- Keep
SOCQ_API_KEYon the server and outside browser, mobile, fixture, screenshot, and log output. - Validate and normalize every input before submit; reject empty arrays, unsupported URL shapes, and invalid enum values.
- Persist
data.task_idbefore polling so interrupted workers can resume. - Use bounded retries with backoff for
429and transient5xxresponses. - Treat
succeededandfailedas terminal states and enforce an application-level timeout. - Read every result page by following
results.next_cursoruntilresults.has_moreis false. - Deduplicate stored records by stable record ID when a workflow can be retried.
- Log task IDs, status transitions, durations, and record counts; never log credentials or full sensitive payloads.
- Keep callback handling idempotent and retain polling as a fallback when callbacks are used.
- Store
collected_atwith records whose public fields or metrics can change over time.
- Submit one or more public Pinterest profile URLs with exactly one non-reserved username path segment.
- Pin URLs,
pin.itlinks, search pages, ideas pages, and other reserved Pinterest paths are not accepted as profile inputs. - Biography, website, imagery, country context, and visible account metrics are optional public fields.
- Each result is a point-in-time public snapshot; retain
collected_atwhen comparing profile changes.
- Treat public records as changeable snapshots rather than permanent truth.
- Keep raw payloads and exported result files in access-controlled storage.
- Define a retention period and remove data that is no longer needed.
- Avoid using missing optional fields as evidence that a value is zero or false.
- Review platform terms, privacy requirements, and applicable law before launch.