{
  "openapi": "3.0.1",
  "info": {
    "title": "Teachers Pay Teachers Scraper",
    "description": "[💰 $7.5 / 1K] Extract Teachers Pay Teachers resources by search term, product URL, or store — titles, prices, sale prices, quality scores, ratings, grade levels, subjects, formats, standards, author info, thumbnails, and optional individual reviews.",
    "version": "1.0",
    "x-build-id": "tfE7ZFWEigNQ2pBhU"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~teacherspayteachers-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-teacherspayteachers-scraper",
        "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/solidcode~teacherspayteachers-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-teacherspayteachers-scraper",
        "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/solidcode~teacherspayteachers-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-teacherspayteachers-scraper",
        "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": {
          "searchQueries": {
            "title": "Search terms or TpT URLs",
            "type": "array",
            "description": "Add search terms (e.g. \"fractions\", \"sight words\") or paste Teachers Pay Teachers links — a resource page (e.g. https://www.teacherspayteachers.com/Product/...) returns that resource, and a store page (e.g. https://www.teacherspayteachers.com/store/...) returns that seller's resources. Each entry is processed on its own.",
            "items": {
              "type": "string"
            }
          },
          "gradeLevels": {
            "title": "Grade levels",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include resources for these grade levels. Leave empty for all grades.",
            "items": {
              "type": "string",
              "enum": [
                "preschool",
                "kindergarten",
                "1st-grade",
                "2nd-grade",
                "3rd-grade",
                "4th-grade",
                "5th-grade",
                "6th-grade",
                "7th-grade",
                "8th-grade",
                "9th-grade",
                "10th-grade",
                "11th-grade",
                "12th-grade",
                "higher-education",
                "adult-education",
                "homeschool",
                "staff",
                "not-grade-specific"
              ],
              "enumTitles": [
                "PreK / Preschool",
                "Kindergarten",
                "1st grade",
                "2nd grade",
                "3rd grade",
                "4th grade",
                "5th grade",
                "6th grade",
                "7th grade",
                "8th grade",
                "9th grade",
                "10th grade",
                "11th grade",
                "12th grade",
                "Higher education",
                "Adult education",
                "Homeschool",
                "Staff",
                "Not grade specific"
              ]
            },
            "default": []
          },
          "subjects": {
            "title": "Subjects",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include resources in these subject areas. Leave empty for all subjects.",
            "items": {
              "type": "string",
              "enum": [
                "math",
                "english-language-arts",
                "science",
                "social-studies",
                "specialty",
                "arts",
                "music",
                "world-languages",
                "holidays-seasonal",
                "esl-efl-ell",
                "special-education",
                "for-all-subjects"
              ],
              "enumTitles": [
                "Math",
                "English Language Arts",
                "Science",
                "Social Studies / History",
                "Specialty",
                "Arts",
                "Music",
                "World Languages",
                "Holidays / Seasonal",
                "English Language Learning (ESL/EFL/ELL)",
                "Special Education",
                "For All Subjects"
              ]
            },
            "default": []
          },
          "resourceTypes": {
            "title": "Resource types & formats",
            "uniqueItems": true,
            "type": "array",
            "description": "Only include these resource types or file formats. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "worksheets",
                "activities",
                "task-cards",
                "centers",
                "assessment",
                "lessons",
                "games",
                "printables",
                "projects",
                "google-apps",
                "pdf",
                "microsoft-powerpoint",
                "microsoft-word",
                "easel-activities",
                "internet-activities"
              ],
              "enumTitles": [
                "Worksheets",
                "Activities",
                "Task cards",
                "Centers",
                "Assessment",
                "Lesson plans",
                "Games",
                "Printables",
                "Projects",
                "Google Apps",
                "PDF",
                "Microsoft PowerPoint",
                "Microsoft Word",
                "Easel activity",
                "Internet activities"
              ]
            },
            "default": []
          },
          "onSaleOnly": {
            "title": "On sale only",
            "type": "boolean",
            "description": "Only include resources that are currently on sale.",
            "default": false
          },
          "minRating": {
            "title": "Minimum quality score",
            "enum": [
              "0",
              "3",
              "3.5",
              "4",
              "4.5",
              "5"
            ],
            "type": "string",
            "description": "Only include resources with at least this overall quality score. Teachers Pay Teachers shows each resource an aggregate quality score out of 5. Resources below the threshold (or with no score yet) are dropped from the results.",
            "default": "0"
          },
          "priceMin": {
            "title": "Minimum price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Only include resources priced at or above this amount in US dollars. Leave empty for no minimum."
          },
          "priceMax": {
            "title": "Maximum price (USD)",
            "minimum": 0,
            "type": "number",
            "description": "Only include resources priced at or below this amount in US dollars. Set to 0 to return only free resources. Leave empty for no maximum."
          },
          "sort": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "rating",
              "price-asc",
              "price-desc",
              "newest"
            ],
            "type": "string",
            "description": "Order for search and store results. Ignored when you paste a direct resource URL. \"Price: high to low\" returns the most expensive resources first; because the site offers no true high-to-low price order, it ranks the highest-priced resources found within a relevance-based sample of up to 500 results (so on a very large result set the ranking is over that sample, not the entire catalogue).",
            "default": "relevance"
          },
          "maxResults": {
            "title": "Max results per entry",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of resources to collect for each search term or store. Set to 0 to collect everything (use with care — a broad search or a large store can hold thousands of resources).",
            "default": 100
          },
          "includeReviews": {
            "title": "Also collect reviews",
            "type": "boolean",
            "description": "When enabled, each resource's individual ratings and reviews are collected as separate rows. This adds results and increases cost. Reviews are pulled for every resource collected, so total cost can far exceed Max results — a popular resource can have thousands of ratings. Off by default.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per resource",
            "minimum": 0,
            "type": "integer",
            "description": "When reviews are enabled, the maximum number of reviews to collect per resource. Set to 0 to collect all reviews.",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}