v10

latestOpenAPI 3.1.02026-08-0375143791.1 KB
webdbs

Create a collection

Creates a collection and queues its first sync. Use the preview endpoint first to test extraction.

post/webdbs/collections

Request body

namestring required

Collection name.

descriptionstring

Optional collection description.

schemaWebdbsSchema required

JSON Schema for the fields extracted into each row. Zod users can pass the output of z.toJSONSchema().

on_disappear'soft_delete' | 'hard_delete' | 'keep'

Action for rows whose source page disappears or becomes ineligible.

stale_afterinteger

Missed syncs before a row becomes stale.

tagsstring[]

Optional tags for tracking usage. Up to 20 tags, each 1 to 50 characters.

Example request

{
  "schema": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "Product name."
      },
      "price": {
        "type": "number",
        "description": "Current price."
      }
    },
    "required": [
      "title"
    ],
    "additionalProperties": false
  },
  "eligibility": {
    "prefilter": {
      "url_match": [
        "https://shop.com/products/:product_id",
        "https://foo.com/item?id=*",
        "https://foo.com/bar/*",
        "**/events/**"
      ]
    }
  },
  "targets": [
    {
      "id": "tgt_123",
      "sync": {
        "every": "6h"
      },
      "eligibility": {
        "prefilter": {
          "url_match": [
            "https://shop.com/products/:product_id",
            "https://foo.com/item?id=*",
            "https://foo.com/bar/*",
            "**/events/**"
          ]
        }
      }
    }
  ],
  "sync": {
    "every": "6h"
  },
  "tags": [
    "production",
    "team-alpha"
  ]
}

Response

Collection created

idstring required

Collection ID.

namestring required

Collection name.

descriptionstring nullable

Optional collection description.

schemaWebdbsSchema required

JSON Schema for the fields extracted into each row. Zod users can pass the output of z.toJSONSchema().

on_disappear'soft_delete' | 'hard_delete' | 'keep' required

Action when a source page disappears or becomes ineligible.

stale_afterinteger required

Missed syncs before a row becomes stale.

status'active' | 'paused' | 'failed' required

Current collection status.

next_sync_atstring date-time nullable required

Next scheduled sync time.

last_run_atstring date-time nullable required

Time the latest run started.

row_countinteger required

Current number of rows.

credits_consumed_totalinteger required

Total credits used by this collection.

sync_countinteger required

Number of completed syncs.

created_atstring date-time required

Time the collection was created.

updated_atstring date-time required

Time the collection was last updated.

Example response

{
  "id": "col_123",
  "schema": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "Product name."
      },
      "price": {
        "type": "number",
        "description": "Current price."
      }
    },
    "required": [
      "title"
    ],
    "additionalProperties": false
  },
  "eligibility": {
    "prefilter": {
      "url_match": [
        "https://shop.com/products/:product_id",
        "https://foo.com/item?id=*",
        "https://foo.com/bar/*",
        "**/events/**"
      ]
    }
  },
  "targets": [
    {
      "id": "tgt_123",
      "sync": {
        "every": "6h"
      },
      "eligibility": {
        "prefilter": {
          "url_match": [
            "https://shop.com/products/:product_id",
            "https://foo.com/item?id=*",
            "https://foo.com/bar/*",
            "**/events/**"
          ]
        }
      }
    }
  ],
  "sync": {
    "every": "6h"
  }
}