generated: '2026-08-14' method: derived source: openapi/contextdev-openapi.yml, openapi/contextdev-batch-api-openapi.yml note: 'Context.dev is mostly a stateless enrichment/extraction API (Brand, Web, Person, Classification responses are computed, not stored). Two persistent, identified resource graphs exist: the Monitors subsystem, and — added 2026-08-14 — the Batch subsystem. They are entirely disjoint: no field links a Batch to a Monitor or vice versa, and they are even rate-limited from separate buckets.' entities: - name: Monitor schema: MonitorsMonitor id: id description: A configured watch over a page, sitemap, or extracted dataset. - name: MonitorRun schema: MonitorsRun id: id description: One execution of a monitor; may or may not produce a change. - name: MonitorChange schema: MonitorsChange id: id description: A detected change (diff, evidence, confidence, importance). - name: Brand schema: BrandData id: domain stateless: true description: Computed brand profile (logos, colors, socials, industry) for a domain. - name: Person schema: PeopleData stateless: true description: Computed person/contact enrichment. - name: Product schema: ProductData stateless: true description: Structured product record extracted from a URL. - name: Batch schema: Batch id: id id_prefix: batch_ description: An asynchronous scrape or crawl job over up to 25,000 URLs. Carries status (queued, running, cancelling, completed, cancelled, failed — the last three terminal), mode (scrape | crawl), format (markdown | html), and tags stored at submission. added: '2026-08-14' - name: BatchDetail schema: BatchDetail id: id description: The expanded batch record returned by getBatch, including progress counters, per-page error counts and download links once the batch settles. added: '2026-08-14' - name: BatchResultRecord schema: BatchResultRecord description: One scraped page inside a finished batch — content plus PageMetadata. Retrieved page-by-page via getBatchResults, or in bulk as gzipped NDJSON. added: '2026-08-14' - name: PageMetadata schema: PageMetadata stateless: true description: Per-page metadata (headings, alternates, values) attached to a batch result record. added: '2026-08-14' relationships: - from: MonitorRun to: Monitor type: belongs_to via: monitor_id - from: Monitor to: MonitorRun type: has_many via: monitor_id - from: MonitorChange to: Monitor type: belongs_to via: monitor_id - from: MonitorChange to: MonitorRun type: belongs_to via: run_id - from: MonitorRun to: MonitorChange type: has_one via: change_id - from: BatchResultRecord to: Batch type: belongs_to via: batch_id added: '2026-08-14' - from: Batch to: BatchResultRecord type: has_many via: batch_id added: '2026-08-14' - from: BatchDetail to: Batch type: has_one via: id note: Same resource; BatchDetail is the expanded read projection. added: '2026-08-14' - from: BatchResultRecord to: PageMetadata type: has_one via: metadata added: '2026-08-14' id_prefixes: Batch: batch_ (example batch_9f2c8a) note: Only the Batch entity documents a typed id prefix in the spec; Monitor, MonitorRun and MonitorChange ids carry no documented prefix. subsystems: - name: Monitors entities: - Monitor - MonitorRun - MonitorChange persistent: true rate_limit_bucket: per-organization, 1000 req/min, flat across plans - name: Batch entities: - Batch - BatchDetail - BatchResultRecord - PageMetadata persistent: true rate_limit_bucket: per-plan per-minute cap; submission costs 1 request regardless of size retention: Results are stored until deleted via deleteBatch; no automatic retention window is documented. - name: Enrichment / extraction entities: - Brand - Person - Product persistent: false note: Computed per call, not stored, not addressable by id.