RAG Delta Sync
Pricing
$20.00 / 1,000 completed delta reports
RAG Delta Sync
Compare crawler exports and prepare changed chunks with stable IDs for a RAG index. Keep unchanged text out of the embedding queue. Ready to refresh your knowledge base?
RAG Delta Sync
Pricing
$20.00 / 1,000 completed delta reports
Compare crawler exports and prepare changed chunks with stable IDs for a RAG index. Keep unchanged text out of the embedding queue. Ready to refresh your knowledge base?
You can access the RAG Delta Sync programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "0.1", "x-build-id": "e8rr6sZgcN3fV5gPf" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/danielmichalek~rag-delta-sync/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-danielmichalek-rag-delta-sync", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/danielmichalek~rag-delta-sync/runs": { "post": { "operationId": "runs-sync-danielmichalek-rag-delta-sync", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/danielmichalek~rag-delta-sync/run-sync": { "post": { "operationId": "run-sync-danielmichalek-rag-delta-sync", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "currentDatasetId": { "title": "Current crawler dataset", "type": "string", "description": "Dataset ID containing the current crawl export. Rows need url and markdown, text or pageContent. Choose this OR currentPages." }, "previousDatasetId": { "title": "Previous crawler dataset", "type": "string", "description": "Previous SOURCE crawl export using the same chunk settings. Do not point this at a delta-report output dataset." }, "currentPages": { "title": "Current pages as JSON", "maxItems": 200, "type": "array", "description": "Alternative to currentDatasetId: objects with url and text or markdown. No website is fetched by this Actor.", "items": { "type": "object" } }, "previousPages": { "title": "Previous pages as JSON", "maxItems": 200, "type": "array", "description": "Alternative to previousDatasetId. Omit for an initial import.", "items": { "type": "object" } }, "snapshotComplete": { "title": "I confirm these are complete source snapshots", "type": "boolean", "description": "Default false blocks all deletes. Enable only for complete crawl exports with complete page text. Coverage, source errors and delete ratio gates still apply.", "default": false }, "minCoverageRatio": { "title": "Minimum retained page coverage", "minimum": 0, "maximum": 1, "type": "number", "description": "Fraction of previous URLs that must remain valid in the new crawl before any delete is approved. New unrelated pages cannot hide lost coverage.", "default": 0.8 }, "maxDeleteRatio": { "title": "Maximum chunk deletion fraction", "minimum": 0, "maximum": 1, "type": "number", "description": "Blocks deletions if the proposed deleted chunks exceed this fraction of previous chunks. Review large rewrites before increasing.", "default": 0.5 }, "maxPages": { "title": "Maximum pages per source", "minimum": 1, "maximum": 200, "type": "integer", "description": "Fails before a partial comparison if either source contains more rows. Maximum 200.", "default": 100 }, "chunkChars": { "title": "Chunk size in Unicode characters", "minimum": 200, "maximum": 4000, "type": "integer", "description": "Paragraph-aware target size, not an exact token count. Keep this setting unchanged between comparisons.", "default": 1600 }, "maxPageChars": { "title": "Maximum page text length", "minimum": 200, "maximum": 20000, "type": "integer", "description": "Maximum UTF-16 code units per source page. Oversized pages fail; no silent truncation.", "default": 20000 }, "maxOperations": { "title": "Maximum chunks or operations", "minimum": 1, "maximum": 5000, "type": "integer", "description": "Hard cap on either snapshot chunk count and the combined upsert/deletion candidate plan. Exceeding it fails without a partial report.", "default": 3000 }, "maxItems": { "title": "Report count", "minimum": 1, "maximum": 1, "type": "integer", "description": "One completed comparison is one billable report regardless of chunk count.", "default": 1 } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for RAG Delta Sync from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: