• Import from "@langchain/community/document_loaders/web/apify_dataset" instead. This entrypoint will be removed in 0.3.0. A class that extends the BaseDocumentLoader and implements the DocumentLoader interface. It represents a document loader that loads documents from an Apify dataset.
const loader = new ApifyDatasetLoader("your-dataset-id", {
datasetMappingFunction: (item) =>
new Document({
pageContent: item.text || "",
metadata: { source: item.url },
clientOptions: {
token: "your-apify-token",

const docs = await loader.load();

const chain = new RetrievalQAChain();
const res = await chain.invoke({ query: "What is LangChain?" });

console.log(res.sourceDocuments.map((d) => d.metadata.source));

Type Parameters

  • Metadata extends Record<string, any>

Hierarchy (view full)




apifyClient: ApifyClient
caller: AsyncCaller
datasetId: string
datasetMappingFunction: ApifyDatasetMappingFunction<Metadata>


  • Create an ApifyDatasetLoader by calling a saved Actor task on the Apify platform and waiting for its results to be ready.

    Type Parameters

    • Metadata extends Record<string, any>


    • taskId: string

      The ID or name of the task on the Apify platform.

    • input: Record<string | number, unknown>

      The input object of the task that you're trying to run. Overrides the task's saved input.

    • config: {
          datasetMappingFunction: ApifyDatasetMappingFunction<Metadata>;
          callOptions?: TaskCallOptions;
          clientOptions?: ApifyClientOptions;

    Returns Promise<ApifyDatasetLoader<Metadata>>

    An instance of ApifyDatasetLoader with the results from the task's run.