- 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 publicly accessible Facebook Page URLs.
- Each accessible Page can produce one normalized record.
- Contact fields, ratings, reviews, images, and audience metrics are optional public fields.
- Restricted, removed, or login-only Page content is outside the endpoint scope.
- 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.