Schemas
A Schema defines the structure of data in an aggregator. Schemas are versioned, meaning any change creates a new version.
What is a Schema?
Section titled “What is a Schema?”A schema specifies:
- Fields - The data points to extract (title, company, location, etc.)
- Field types - Whether each field is a string or array of strings
- Identity fields - Which fields determine uniqueness (for deduplication)
Built-in Schemas
Section titled “Built-in Schemas”Fetchosaurus provides five built-in schemas for common use cases:
| Field | Type | Identity |
|---|---|---|
| title | string | Yes (1) |
| company | string | Yes (2) |
| location | string | No |
| url | string | No |
| salary | string | No |
| posted_at | string | No |
| tags | string[] | No |
| Field | Type | Identity |
|---|---|---|
| title | string | Yes (1) |
| venue | string | Yes (2) |
| date | string | Yes (3) |
| time | string | No |
| url | string | No |
| description | string | No |
| price | string | No |
| tags | string[] | No |
Listing
Section titled “Listing”| Field | Type | Identity |
|---|---|---|
| title | string | Yes (1) |
| url | string | Yes (2) |
| price | string | No |
| location | string | No |
| images | string[] | No |
| description | string | No |
Article
Section titled “Article”| Field | Type | Identity |
|---|---|---|
| title | string | Yes (1) |
| source | string | Yes (2) |
| url | string | No |
| published_at | string | No |
| summary | string | No |
| author | string | No |
| tags | string[] | No |
Recipe
Section titled “Recipe”| Field | Type | Identity |
|---|---|---|
| title | string | Yes (1) |
| source | string | Yes (2) |
| url | string | No |
| ingredients | string[] | No |
| steps | string[] | No |
| prep_time | string | No |
| cook_time | string | No |
| servings | string | No |
| image_url | string | No |
Schema Versioning
Section titled “Schema Versioning”Any change to a schema creates a new version:
- Adding a field
- Removing a field
- Renaming a field
- Changing a field’s type
- Changing identity fields
When you modify a schema:
- A new version is created (v1 → v2)
- Existing sources continue using their pinned version
- New sources use the latest version by default
- You can update individual sources to use the new version
Identity Fields
Section titled “Identity Fields”Identity fields determine uniqueness for deduplication. The order matters.
Example: For a Job schema with identity fields [company, title]:
{ company: "Stripe", title: "Engineer" }and{ company: "Stripe", title: "Engineer" }are duplicates{ company: "Stripe", title: "Engineer" }and{ company: "Vercel", title: "Engineer" }are different
Related Concepts
Section titled “Related Concepts”- Aggregators - Schemas belong to aggregators
- Items - Items conform to a schema version