diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..b6a7d89c68 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +16 diff --git a/sources/platform/actors/index.md b/sources/platform/actors/index.md index 7fa7a5d7f3..79aab5cae5 100644 --- a/sources/platform/actors/index.md +++ b/sources/platform/actors/index.md @@ -14,7 +14,7 @@ slug: /actors Actors are serverless cloud programs that can do almost anything a human can do in a web browser. They can do anything from small tasks like filling in forms or unsubscribing from online services all the way up to scraping and processing vast numbers of web pages. -You can use Actors [manually in Apify Console](https://console.apify.com/actors), by using the [API](/api/v2) or [scheduler](../schedules.md). You can easily [integrate them with other apps](../integrations/index.md) and share your Actors with other Apify users via [Apify Store](https://apify.com/store) or [access rights](./collaboration/access-rights) system. +You can use Actors [manually in Apify Console](https://console.apify.com/actors), by using the [API](/api/v2) or [scheduler](../schedules.md). You can easily [integrate them with other apps](../integrations/index.mdx) and share your Actors with other Apify users via [Apify Store](https://apify.com/store) or [access rights](./collaboration/access-rights) system. > New to Apify? Try actors with our [quick start](../index.mdx) tutorial and see the [Apify Academy's courses](/academy). diff --git a/sources/platform/actors/publishing/index.mdx b/sources/platform/actors/publishing/index.mdx index e7f35e40d7..ea10282650 100644 --- a/sources/platform/actors/publishing/index.mdx +++ b/sources/platform/actors/publishing/index.mdx @@ -19,9 +19,9 @@ There are four main stages of building a public actor: 3. [Testing and maintenance](../development/testing_and_maintenance.md). 4. [Promotion](../../academy/get-most-of-actors/seo-and-promotion). -While you don't necessarily have to maintain your private Actors, public Actors require a higher degree of responsibility. +While you don't necessarily have to maintain your private Actors, public Actors require a higher degree of responsibility. -As the name implies, Public Actors are available to the public on [Apify Store](https://apify.com/store), which means that an unmaintained public Actor could negatively affect all the other users that depend on it for their own activities on the platform. +As the name implies, Public Actors are available to the public on [Apify Store](https://apify.com/store), which means that an unmaintained public Actor could negatively affect all the other users that depend on it for their own activities on the platform. Public Actors are regularly submitted to [automated tests](./testing.mdx) to ensure they are functioning properly. So, before making an Actor public, we recommend you reserve enough time to maintain the project (~2 hours weekly). This will ensure that your Actor maintains its long-term quality, improving your chances of successfully [monetizing your Actors](./monetize.mdx). diff --git a/sources/platform/collaboration/organization_account/how_to_use.md b/sources/platform/collaboration/organization_account/how_to_use.md index d02ca67758..e1d54c54b6 100644 --- a/sources/platform/collaboration/organization_account/how_to_use.md +++ b/sources/platform/collaboration/organization_account/how_to_use.md @@ -45,7 +45,7 @@ The organization, its actors and integrations will keep running as they are. The While you cannot manage an organization account's settings and members via API, you can access its actor and task runs, webhooks, schedules and storages just like you would with any other account. -As a member of an organization, you are assigned an [API token](../../integrations/index.md) (under the **Integrations** tab) and proxy password (click the **Proxy** button in the left menu) for accessing the Apify platform via REST API. +As a member of an organization, you are assigned an [API token](../../integrations/index.mdx) (under the **Integrations** tab) and proxy password (click the **Proxy** button in the left menu) for accessing the Apify platform via REST API. ![Integration tokens](../images/organizations/integrations.png) diff --git a/sources/platform/collaboration/organization_account/index.md b/sources/platform/collaboration/organization_account/index.md index 8506120a57..3bc2e8c88e 100644 --- a/sources/platform/collaboration/organization_account/index.md +++ b/sources/platform/collaboration/organization_account/index.md @@ -18,7 +18,7 @@ You can [switch](./how_to_use.md) between your personal and organization account You can set up an organization in two ways. * [Create a new organization](#create-a-new-organization). If you don't have integrations set up yet, or if they are easy to change, you can create a new organization, preserving your personal account. -* [Convert an existing account](#convert-an-existing-account) into an organization. If your actors and [integrations](../../integrations/index.md) are set up in a personal account, it is probably best to convert that account into an organization. This will preserve all your integrations but means you will have a new personal account created for you. +* [Convert an existing account](#convert-an-existing-account) into an organization. If your Actors and [integrations](../../integrations/index.mdx) are set up in a personal account, it is probably best to convert that account into an organization. This will preserve all your integrations but means you will have a new personal account created for you. > Prefer video to reading? [See our video tutorial](https://www.youtube.com/watch?v=BIL6HqtnvKk) for organization accounts. diff --git a/sources/platform/integrations/api.md b/sources/platform/integrations/api.md new file mode 100644 index 0000000000..d152608d59 --- /dev/null +++ b/sources/platform/integrations/api.md @@ -0,0 +1,47 @@ +--- +title: API +description: Learn how to integrate with Apify via API. +sidebar_position: 11.01 +slug: /integrations/api +--- + +# API integrations + +**Learn how to integrate with Apify via API.** + +--- + +The API is well described in the [**API Reference**](/api/v2). If you want to use the Apify API from JavaScript/NodeJS or Python, we recommend you use one of our API clients: + +- [**apify-client**](/api/client/js/) NPM package supporting both browser and server +- [**apify-client**](/api/client/python/) PyPI package. + +You are not limited to those packages - any HTTP client can be used (axios, curl, wget, ...) - but the official API clients implement the best practices such as exponential backoff or rate limit handling. + +## API token + +To access the Apify API in your integrations, you need to authenticate using your secret API token. You can find it on the [Integrations](https://console.apify.com/account?tab=integrations) page in Apify Console. Give your token a reasonable description, and never use one token for several services, much like you shouldn't use the same password for different accounts. + +![Integrations page in Apify Console](./images/api-token.png) + +## Authentication + +There are 2 ways how to authenticate the Apify API. You can either pass the token via the `Authorization` HTTP header or the URL `token` query parameter. We always recommend you use the authentication via the HTTP header as this method is more secure. + +> **IMPORTANT**: **Do not share the API token with untrusted parties, or use it directly from client-side code, +unless you fully understand the consequences!** + +Note that some API endpoints, such as [Get list of keys](/api/v2#/reference/key-value-stores/key-collection/get-list-of-keys), +do not require an authentication token because they contain a hard-to-guess identifier that effectively serves as an authentication key. + +## Organization accounts + + > This information is only relevant to members or owners of organization accounts. + +When working under an organization account, you will see two types of API tokens on the Integrations page. + +![Integrations page in the Apify Console in organizatoin mode](./images/api-token-organization.png) + +The Personal API tokens are different from your own Personal API tokens mentioned above. If you use this token in an integration, it will have the same permissions that you have within the organization, and all the operations you use it for will be ascribed to you. + +On the other hand the Organization API tokens (only visible if you are the owner or have Manage access tokens permission) have full permissions and are not tied to a specific member of the organization. diff --git a/sources/platform/integrations/drive.md b/sources/platform/integrations/drive.md new file mode 100644 index 0000000000..ceeed425d5 --- /dev/null +++ b/sources/platform/integrations/drive.md @@ -0,0 +1,21 @@ +--- +title: Google Drive +description: Learn how to integrate Apify with Google Drive +sidebar_position: 11.15 +slug: /integrations/drive +--- + +# Google Drive integration + +**Learn how to integrate your Apify Actors with Google Drive. This article shows you how to automatically save results to your drive when an Actor run succeeds.** + +--- + +## Get started + +To use the Apify integration for Google Drive, you will need: + +- An [Apify account](https://console.apify.com/). +- A Google account + + diff --git a/sources/platform/integrations/github.md b/sources/platform/integrations/github.md index 6f7661dc0d..f012f536b6 100644 --- a/sources/platform/integrations/github.md +++ b/sources/platform/integrations/github.md @@ -1,13 +1,13 @@ --- title: GitHub -description: Learn how to integrate your Apify actors with GitHub. This article shows you how to automatically create an issue in your repo when an actor run fails. -sidebar_position: 11.2 +description: Learn how to integrate your Apify Actors with GitHub. This article shows you how to automatically create an issue in your repo when an Actor run fails. +sidebar_position: 11.11 slug: /integrations/github --- # GitHub integration -**Learn how to integrate your Apify actors with GitHub. This article shows you how to automatically create an issue in your repo when an actor run fails.** +**Learn how to integrate your Apify Actors with GitHub. This article shows you several possible integrations.** --- @@ -18,4 +18,14 @@ To use the Apify integration for GitHub, you will need: - An [Apify account](https://console.apify.com/). - A GitHub repository. +### Create an Actor from a GitHub repository + + + +### Deploy changes automatically + + + +### Create an issue when a run fails + diff --git a/sources/platform/integrations/gmail.md b/sources/platform/integrations/gmail.md new file mode 100644 index 0000000000..9e0e4b4a48 --- /dev/null +++ b/sources/platform/integrations/gmail.md @@ -0,0 +1,21 @@ +--- +title: Gmail +description: Learn how to integrate Apify with Gmail +sidebar_position: 11.14 +slug: /integrations/gmail +--- + +# Gmail integration + +**Learn how to integrate your Apify Actors with Gmail. This article shows you how to automatically send an email with results when an Actor run succeeds.** + +--- + +## Get started + +To use the Apify integration for Gmail, you will need: + +- An [Apify account](https://console.apify.com/). +- A Google account + + diff --git a/sources/platform/integrations/images/api-token-organization.png b/sources/platform/integrations/images/api-token-organization.png new file mode 100644 index 0000000000..d3185fca02 Binary files /dev/null and b/sources/platform/integrations/images/api-token-organization.png differ diff --git a/sources/platform/integrations/images/apify-store.png b/sources/platform/integrations/images/apify-store.png new file mode 100644 index 0000000000..7dab1a73fa Binary files /dev/null and b/sources/platform/integrations/images/apify-store.png differ diff --git a/sources/platform/integrations/index.md b/sources/platform/integrations/index.md deleted file mode 100644 index 5c2b813a5f..0000000000 --- a/sources/platform/integrations/index.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: Integrations -description: Learn how to connect the Apify platform with your projects. You can use our tools in cloud services like Zapier, Make (formerly Integromat), Keboola, and more. -sidebar_position: 11 -category: platform -slug: /integrations ---- - -# Integrations - -**Learn how to connect the Apify platform with your projects. You can use our tools in cloud services like Zapier, Make (formerly Integromat), Keboola, and more.** - ---- - -You can connect Apify with practically any cloud service or web app. They allow you to pass your [actor](../actors/index.md) run results to other services, process them, and receive notifications on important events. - -## What is software integration? - -Integration allows you to combine separate applications and take advantage of their combined capabilities. It allows you to combine the abilities of applications that are not directly linked. This helps to free your data from isolation and make it more productive. - -## How does integration work? - -Integrations use [APIs](https://www.smashingmagazine.com/2018/01/understanding-using-rest-api/) and [webhooks](./webhooks/index.md) to transfer data between applications. -Our [RESTful API](/api/v2#) allows you to control the Apify platform from any application. -You can create [actors](/api/v2#/reference/actors/actor-collection/create-actor) and [tasks](/api/v2#/reference/actor-tasks/task-collection/create-task), -[start and stop your runs](/api/v2#/reference/actor-tasks/run-task-synchronously/run-task-synchronously-(post)), -and [manage your data](/api/v2#/reference/datasets/item-collection/put-items) using only HTTP requests (or our handy API clients [for JavaScript](/api/client/js/) and [for Python](/api/client/python/)). -Meanwhile, webhooks allow you to perform tasks like sending HTTP requests or notifications when certain [events](./webhooks/events.md) occur. - -## Get started - -Below are some examples of the kind of integrations you can set up with Apify. - -Services you can connect to to extend the functionality of your actors: - -- [Slack](https://help.apify.com/en/articles/6454058-apify-integration-for-slack). - -- [Webhooks](./webhooks/index.md). - -Other platforms you can connect to Apify: - -- [Zapier](https://zapier.com/apps/apify/integrations). See the [tutorial](https://help.apify.com/en/articles/3034235-getting-started-with-apify-integration-for-zapier). - -- [Google](https://help.apify.com/en/articles/2424053-google-integration). - -- [Keboola](https://components.keboola.com/components/apify.apify). See the [tutorial](https://help.apify.com/en/articles/2003234-keboola-integration). - -- [Make](https://www.make.com/en/integrations/apify) (formerly Integromat). - -- [Airbyte](https://docs.airbyte.io/integrations/sources/apify-dataset). - -## API token - -To access our API in your integrations, you will need to use your secret API token. You can find it on the [Integrations](https://console.apify.com/account?tab=integrations) page in the Apify Console. Give your token a reasonable description and never use one token for several services, much like you shouldn't use the same password for different accounts. - -![Integrations page in the Apify Console](./images/api-token.png) - -> When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ([More info](#introduction/authentication)). - -**IMPORTANT**: **Do not share the API token with untrusted parties, or use it directly from client-side code, -unless you fully understand the consequences!** - -Note that some API endpoints, such as [Get list of keys](#reference/key-value-stores/key-collection/get-list-of-keys), -do not require an authentication token because they contain a hard-to-guess identifier that effectively serves as an authentication key. diff --git a/sources/platform/integrations/index.mdx b/sources/platform/integrations/index.mdx new file mode 100644 index 0000000000..0dce48de5e --- /dev/null +++ b/sources/platform/integrations/index.mdx @@ -0,0 +1,160 @@ +--- +title: Integrations +description: Learn how to integrate the Apify platform with other services, your systems, data pipelines, and other web automation workflows. +sidebar_position: 11 +category: platform +slug: /integrations +--- + +import Card from "@site/src/components/Card"; +import CardGrid from "@site/src/components/CardGrid"; + +# Integrations + +**Learn how to integrate the Apify platform with other services, your systems, data pipelines, and other web automation workflows.** + + > The whole is greater than the sum of its parts. + > + > 👴 *Aristotle* + +Integrations allow you to combine separate applications and take advantage of their combined capabilities. Automation of these online processes increases your productivity. That’s why we made Apify in a way that allows you to connect it with practically any cloud service or web app and make it part of your larger projects. + +## Built-in integrations + +Apify‘s RESTful API allows you to interact with the platform programmatically. HTTP webhooks notify you and your services when important events happen. By using the API, you can start Actors, retrieve their results, or basically do anything you can do on a platform UI + + + + +
+ +Apify offers easy-to-set-up solutions for common scenarios, like uploading your datasets to Google Drive when the run succeeds or creating an issue on GitHub when it fails. + + + + + + + + {/* Only show Asana once we have the videos ready for it + + */} + {/* Only show Trello once it's enabled for all users on platform + + */} + + +## Automation platforms + +If you use one of the main automation platforms, Apify support is here for you. The main advantage of these platforms is that you can integrate Apify into very complex workflows with the choice of thousands of supported services. + + + + + + + + +## Data pipelines, ETLs, and AI/LLM tools + +The Apify platform integrates with popular ETL and data pipeline services, enabling you to integrate Apify Actors directly into your data integration processes. + + + + + +
+ + +If you are working on an AI/LLM-related project, we recommend you look into the Langchain integration. + + + + + +## Other Actors + +Explore [Apify Store](https://apify.com/store) for Actors that may help you with integrations, for example, [MongoDB Import](https://apify.com/drobnikj/mongodb-import) or [MySQL Insert](https://apify.com/petr_cermak/mysql-insert). + +![Apify Store](./images/apify-store.png) + diff --git a/sources/platform/integrations/langchain.md b/sources/platform/integrations/langchain.md new file mode 100644 index 0000000000..c0bcb11601 --- /dev/null +++ b/sources/platform/integrations/langchain.md @@ -0,0 +1,74 @@ +--- +title: Langchain +description: Learn how to integrate Apify with Langchain. +sidebar_position: 11.20 +slug: /integrations/langchain +--- + +# Langchain Integration + +**Learn how to integrate Apify with Langchain.** + +--- + +> For more information on Langchain visit its [documentation](https://python.langchain.com/en/latest/index.html). + +In this example, we'll use the Website [Content Crawler Actor](https://apify.com/apify/website-content-crawler), which can deeply crawl websites such as documentation, knowledge bases, help centers, or blogs and extract text content from the web pages. Then we feed the documents into a vector index and answer questions from it. + +First, import `ApifyWrapper` into your source code: + +```python +from langchain.document_loaders.base import Document +from langchain.indexes import VectorstoreIndexCreator +from langchain.utilities import ApifyWrapper +``` + +Initialize it using your [Apify API token](https://console.apify.com/account/integrations) and for the purpose of this example, also with your OpenAI API key: + +```python + +import os +os.environ["OPENAI_API_KEY"] = "Your OpenAI API key" +os.environ["APIFY_API_TOKEN"] = "Your Apify API token" + +apify = ApifyWrapper() +``` + +Run the Actor, wait for it to finish, and fetch its results from the Apify dataset into a LangChain document loader. + +Note that if you already have some results in an Apify dataset, you can load them directly using `ApifyDatasetLoader`, as shown in [this notebook](https://github.com/hwchase17/langchain/blob/fe1eb8ca5f57fcd7c566adfc01fa1266349b72f3/docs/modules/indexes/document_loaders/examples/apify_dataset.ipynb). In that notebook, you'll also find the explanation of the `dataset_mapping_function`, which is used to map fields from the Apify dataset records to LangChain `Document` fields. + +```python +loader = apify.call_actor( + actor_id="apify/website-content-crawler", + run_input={"startUrls": [{"url": "https://python.langchain.com/en/latest/"}]}, + dataset_mapping_function=lambda item: Document( + page_content=item["text"] or "", metadata={"source": item["url"]} + ), +) +``` + +Initialize the vector index from the crawled documents: + +```python +index = VectorstoreIndexCreator().from_loaders([loader]) +``` + +And finally, query the vector index: + +```python +query = "What is LangChain?" +result = index.query_with_sources(query) + +print(result["answer"]) +print(result["sources"]) +``` + +LangChain is a standard interface through which you can interact with a variety of large language models (LLMs). It provides modules you can use to build language model applications. It also provides chains and agents with memory capabilities. + +## Resources + +- +- +- + diff --git a/sources/platform/integrations/make.md b/sources/platform/integrations/make.md index d965530b44..9b92c34d09 100644 --- a/sources/platform/integrations/make.md +++ b/sources/platform/integrations/make.md @@ -1,17 +1,17 @@ --- title: Make -description: Learn how to integrate your Apify actors with Make (formerly Integromat). -sidebar_position: 11.4 +description: Learn how to integrate your Apify Actors with Make. +sidebar_position: 11.12 slug: /integrations/make --- # Make integration -**Learn how to integrate your Apify actors with Make (formerly Integromat).** +**Learn how to integrate your Apify Actors with Make.** --- -[Make](https://make.com/) allows you to create scenarios where you can integrate various services (modules) to automate and centralize jobs. Apify has its own module which can be used to run Apify actors, be notified about run status, and get actor results directly in your Make scenario. +[Make](https://make.com/) *(formerly Integromat)* allows you to create scenarios where you can integrate various services (modules) to automate and centralize jobs. Apify has its own module you can use to run Apify Actors, get notified about run statuses, and receive Actor results directly in your Make scenario. ## Connect Apify to Make diff --git a/sources/platform/integrations/slack.md b/sources/platform/integrations/slack.md index eb8ad24383..2945cecc6c 100644 --- a/sources/platform/integrations/slack.md +++ b/sources/platform/integrations/slack.md @@ -1,17 +1,22 @@ --- title: Slack -description: Learn how to integrate your Apify actors with Slack. This article guides you from installation through to automating your whole workflow in Slack. -sidebar_position: 11.3 +description: Learn how to integrate your Apify Actors with Slack. This article guides you from installation through to automating your whole workflow in Slack. +sidebar_position: 11.13 slug: /integrations/slack --- # Slack integration -**Learn how to integrate your Apify actors with Slack. This article guides you from installation through to automating your whole workflow in Slack.** +**Learn how to integrate your Apify Actors with Slack. This article guides you from installation through to automating your whole workflow in Slack.** + +A tutorial can be found [here](https://help.apify.com/en/articles/6454058-apify-integration-for-slack). --- -[Slack](https://slack.com/) allows you to install various services in your workspace in order to automate and centralize jobs. Apify is one of these services, and it allows you to run your Apify actors, be notified about their run status, and get your results, all without opening your browser. +> Explore the [Slack integration tutorial](https://help.apify.com/en/articles/6454058-apify-integration-for-slack). + + +[Slack](https://slack.com/) allows you to install various services in your workspace in order to automate and centralize jobs. Apify is one of these services, and it allows you to run your Apify Actors, get notified about their run statuses, and receive your results, all without opening your browser. ## Get started diff --git a/sources/platform/integrations/webhooks/index.md b/sources/platform/integrations/webhooks/index.md index 84c893b78e..c0181987de 100644 --- a/sources/platform/integrations/webhooks/index.md +++ b/sources/platform/integrations/webhooks/index.md @@ -1,7 +1,7 @@ --- title: Webhooks description: Learn how to integrate multiple Apify actors or external systems with your actor or task run. Send alerts when your actor run succeeds or fails. -sidebar_position: 11.1 +sidebar_position: 11.02 slug: /integrations/webhooks --- diff --git a/sources/platform/schedules.md b/sources/platform/schedules.md index 79035677ae..20251553de 100644 --- a/sources/platform/schedules.md +++ b/sources/platform/schedules.md @@ -74,7 +74,7 @@ For integrations, you can also add a [webhook](/platform/integrations/webhooks) To create a new [schedule](/api/v2#/reference/schedules) using the [Apify API](/api/v2#), send a [POST request](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST) to the [create schedule](/api/v2#/reference/schedules/schedules-collection/create-schedule) endpoint. -You can find your [secret API token](./integrations/index.md) in your Apify account's [Integrations](https://console.apify.com/account?tab=integrations) tab. When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ([More info](/api/v2#/introduction/authentication)). +You can find your [secret API token](./integrations/index.mdx) in your Apify account's [Integrations](https://console.apify.com/account?tab=integrations) tab. When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ([More info](/api/v2#/introduction/authentication)). In the POST request's payload should be a JSON object specifying the schedule's name, your [user ID](https://console.apify.com/account#/integrations), and the schedule's **actions**. diff --git a/sources/platform/storage/dataset.md b/sources/platform/storage/dataset.md index 4e704ea404..4f2dd9633c 100644 --- a/sources/platform/storage/dataset.md +++ b/sources/platform/storage/dataset.md @@ -156,7 +156,7 @@ See the [Python API client documentation](/api/client/python/reference/class/Dat The [Apify API](/api/v2#/reference/datasets) allows you to access your datasets programmatically using [HTTP requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods) and easily share your crawling results. -If you are accessing your datasets using the **username~store-name** [store ID format](./index.md), you will need to use your [secret API token](../integrations/index.md#api-token). You can find the token (and your user ID) on the [Integrations](https://console.apify.com/account#/integrations) page of your Apify account. +If you are accessing your datasets using the **username~store-name** [store ID format](./index.md), you will need to use your [secret API token](../integrations/index.mdx#api-token). You can find the token (and your user ID) on the [Integrations](https://console.apify.com/account#/integrations) page of your Apify account. > When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ([More info](#introduction/authentication)). diff --git a/sources/platform/storage/key_value_store.md b/sources/platform/storage/key_value_store.md index c29739bf3c..da0e27203b 100644 --- a/sources/platform/storage/key_value_store.md +++ b/sources/platform/storage/key_value_store.md @@ -149,7 +149,7 @@ See the [Python API client documentation](/api/client/python/reference/class/Key The [Apify API](/api/v2#/reference/key-value-stores) allows you to access your key-value stores programmatically using [HTTP requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods) and easily share your crawling results. -If you are accessing your datasets using the **username~store-name** [store ID format](./index.md), you will need to use your [secret API token](../integrations/index.md#api-token). You can find the token (and your user ID) on the [Integrations](https://console.apify.com/account#/integrations) page of your Apify account. +If you are accessing your datasets using the **username~store-name** [store ID format](./index.md), you will need to use your [secret API token](../integrations/index.mdx#api-token). You can find the token (and your user ID) on the [Integrations](https://console.apify.com/account#/integrations) page of your Apify account. > When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ([More info](#introduction/authentication)). diff --git a/sources/platform/storage/request_queue.md b/sources/platform/storage/request_queue.md index dc5baa4563..637f3c4907 100644 --- a/sources/platform/storage/request_queue.md +++ b/sources/platform/storage/request_queue.md @@ -154,7 +154,7 @@ See the [Python API client documentation](/api/client/python/reference/class/Req The [Apify API](/api/v2#/reference/request-queues) allows you to access your request queues programmatically using [HTTP requests](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods). -If you are accessing your datasets using the **username~store-name** [store ID format](./index.md), you will need to use your [secret API token](../integrations/index.md#api-token). You can find the token (and your user ID) on the [Integrations](https://console.apify.com/account#/integrations) page of your Apify account. +If you are accessing your datasets using the **username~store-name** [store ID format](./index.md), you will need to use your [secret API token](../integrations/index.mdx#api-token). You can find the token (and your user ID) on the [Integrations](https://console.apify.com/account#/integrations) page of your Apify account. > When providing your API authentication token, we recommend using the request's `Authorization` header, rather than the URL. ([More info](#introduction/authentication)). diff --git a/src/components/Card.jsx b/src/components/Card.jsx index 0ab434b310..8a40640667 100644 --- a/src/components/Card.jsx +++ b/src/components/Card.jsx @@ -3,11 +3,14 @@ import Link from '@docusaurus/Link'; import clsx from 'clsx'; import styles from './Cards.module.css'; -const AcademyCard = ({ to, imageUrl, title, desc }) => { +// TODO: Better sizing for logo images (in integrations) +const Card = ({ to, imageUrl, title, desc, smallImage }) => { return (
- {!imageUrl || (
)} + {!imageUrl || (
+ +
)}

{title}

{desc}

@@ -17,4 +20,4 @@ const AcademyCard = ({ to, imageUrl, title, desc }) => { ); }; -export default AcademyCard; +export default Card; diff --git a/src/components/Cards.module.css b/src/components/Cards.module.css index 79d6fdf4f4..81d40ee256 100644 --- a/src/components/Cards.module.css +++ b/src/components/Cards.module.css @@ -21,6 +21,16 @@ html[data-theme="dark"] .card-hoverable:hover { object-fit: scale-down; } +.card-image-container-small { + height: 5rem; +} + +.card-image-container-small > img { + padding: 1rem; + height: 100%; + object-fit: contain; +} + .card-header { font-size: 120%; padding: 20px 1rem; diff --git a/static/img/platform/integrations/airbyte.svg b/static/img/platform/integrations/airbyte.svg new file mode 100644 index 0000000000..a85a38ecfd --- /dev/null +++ b/static/img/platform/integrations/airbyte.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/static/img/platform/integrations/appmixer.svg b/static/img/platform/integrations/appmixer.svg new file mode 100644 index 0000000000..8662b45801 --- /dev/null +++ b/static/img/platform/integrations/appmixer.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/platform/integrations/asana.svg b/static/img/platform/integrations/asana.svg new file mode 100644 index 0000000000..c64e9c92f7 --- /dev/null +++ b/static/img/platform/integrations/asana.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/platform/integrations/drive.svg b/static/img/platform/integrations/drive.svg new file mode 100644 index 0000000000..5d2eefb764 --- /dev/null +++ b/static/img/platform/integrations/drive.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/static/img/platform/integrations/git.svg b/static/img/platform/integrations/git.svg new file mode 100644 index 0000000000..3c871a34d7 --- /dev/null +++ b/static/img/platform/integrations/git.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/static/img/platform/integrations/github.svg b/static/img/platform/integrations/github.svg new file mode 100644 index 0000000000..92983e1019 --- /dev/null +++ b/static/img/platform/integrations/github.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/static/img/platform/integrations/gmail.svg b/static/img/platform/integrations/gmail.svg new file mode 100644 index 0000000000..1deffe2d8c --- /dev/null +++ b/static/img/platform/integrations/gmail.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/img/platform/integrations/hevo.svg b/static/img/platform/integrations/hevo.svg new file mode 100644 index 0000000000..015604dec5 --- /dev/null +++ b/static/img/platform/integrations/hevo.svg @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/img/platform/integrations/keboola.svg b/static/img/platform/integrations/keboola.svg new file mode 100644 index 0000000000..21da877c41 --- /dev/null +++ b/static/img/platform/integrations/keboola.svg @@ -0,0 +1,3 @@ + + + diff --git a/static/img/platform/integrations/langchain.png b/static/img/platform/integrations/langchain.png new file mode 100644 index 0000000000..75a23ea1e8 Binary files /dev/null and b/static/img/platform/integrations/langchain.png differ diff --git a/static/img/platform/integrations/make.svg b/static/img/platform/integrations/make.svg new file mode 100644 index 0000000000..0bf598c3c7 --- /dev/null +++ b/static/img/platform/integrations/make.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/static/img/platform/integrations/slack.svg b/static/img/platform/integrations/slack.svg new file mode 100644 index 0000000000..f690189dee --- /dev/null +++ b/static/img/platform/integrations/slack.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/static/img/platform/integrations/transposit.svg b/static/img/platform/integrations/transposit.svg new file mode 100644 index 0000000000..ab8dd480d3 --- /dev/null +++ b/static/img/platform/integrations/transposit.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/platform/integrations/trello.svg b/static/img/platform/integrations/trello.svg new file mode 100644 index 0000000000..6163a09395 --- /dev/null +++ b/static/img/platform/integrations/trello.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/static/img/platform/integrations/webhook.svg b/static/img/platform/integrations/webhook.svg new file mode 100644 index 0000000000..5ba2c26147 --- /dev/null +++ b/static/img/platform/integrations/webhook.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/static/img/platform/integrations/webhooks.svg b/static/img/platform/integrations/webhooks.svg new file mode 100644 index 0000000000..879fce7b2a --- /dev/null +++ b/static/img/platform/integrations/webhooks.svg @@ -0,0 +1,4 @@ + + + + diff --git a/static/img/platform/integrations/zapier.svg b/static/img/platform/integrations/zapier.svg new file mode 100644 index 0000000000..813b7cdfa8 --- /dev/null +++ b/static/img/platform/integrations/zapier.svg @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + +