Appbricx
Docs
FeaturesPricingStart free

Get started

OverviewWhat Appbricx isQuickstart with a coding agentQuickstart with the builderCore concepts

Guides

Data and tablesAccess and rolesBusiness rulesSign-inCustom screensRealtime and topicsWorkflows, schedules and webhooksServer functionsAI in your appPaymentsFilesMessagesIntegrationsVerifyPublishing, domains and rollbackOperating your appExport and self-hostSelf-host install

Tutorials

Build a booking app with Claude CodeMulti-user todo listClient portalSlack on new sign-upTemplates

Reference

Reference homeFrontend SDKHTTP APIMCP toolsCLIIntegrations catalogContract formatAI key resolutionRun Appbricx locally

Exa

Search the web, find similar pages, and get page contents with Exa's neural search.

AI and MLAPI key5 actionsAll integrations

On this page
  1. Connect
  2. Call it from a workflow
  3. Actions (5)
  4. find_similar_links
  5. get_contents
  6. perform_search
  7. custom_api_call
  8. generate_answer
  9. Details

Connect

Auth type: API key (secret_text). Paste the API key (or token) from the provider's settings into the connect dialog. It is encrypted at rest and only decrypted on the server when an action runs.

  • In the editor: Backend panel, Integrations tab, then Connect. This connects it for the project.
  • For every project in a workspace: Workspace settings, Integrations.
  • Owners and admins choose which integrations members may connect in the admin panel (Integrations tab), and can attach their own OAuth app there.

Call it from a workflow

Pass the action name and its input. The call resolves with { success, output, error? }; a missing connection resolves with success false and the reason. See ctx.integrations.invoke and ctx.integrations.call.

Native workflow
// .workflow.js (native ctx)
export async function run(ctx) {
  const res = await ctx.integrations.invoke("exa", "find_similar_links", {
    "url": "<url>"
  });
  if (!res.success) throw new Error(res.error);
  ctx.log.info("Exa answered", { output: res.output });
}
defineWorkflow module
// defineWorkflow module (@app/sdk ctx)
import { defineWorkflow } from "@app/sdk";

export default defineWorkflow({
  id: "exa-find-similar-links",
  name: "Exa: Find Similar Links",
  description: "Calls Exa when a row is created.",
  trigger: { type: "entity_event", entity: "tickets", event: "created" },
  async run(ctx, event) {
    const res = await ctx.integrations.call("exa", {
      "action": "find_similar_links",
      "url": "<url>"
    }) as { success: boolean; error?: string };
    if (!res.success) throw new Error(res.error);
  },
});
From an app (connector proxy)
curl -X POST "$APP_ORIGIN/__appbricx/connector-proxy/exa/find_similar_links" \
  -H "Authorization: Bearer $APP_KEY" \
  -H "content-type: application/json" \
  -d '{"props":{"url":"<url>"}}'

Actions

find_similar_linksin catalog

Find Similar Links. Find pages similar to a given URL.

InputTypeDescription
urlrequiredtextReference URL to find semantically similar links.
numResultsoptionalnumberNumber of results to return (max 100).
includeDomainsoptionalarrayList of domains to include in results.
excludeDomainsoptionalarrayList of domains to exclude from results.
startCrawlDateoptionaldate-time (ISO)Include links crawled after this date (ISO format).
endCrawlDateoptionaldate-time (ISO)Include links crawled before this date (ISO format).
startPublishedDateoptionaldate-time (ISO)Only include links published after this date (ISO format).
endPublishedDateoptionaldate-time (ISO)Only include links published before this date (ISO format).
includeTextoptionalarrayStrings that must be present in the webpage text (max 1 string of up to 5 words).
excludeTextoptionalarrayStrings that must not be present in the webpage text (max 1 string of up to 5 words).

get_contentsin catalog

Get Contents. Retrieve clean HTML content from specified URLs.

InputTypeDescription
urlsrequiredarrayArray of URLs to crawl
textoptionalbooleanIf true, returns full page text. If false, disables text return.
livecrawloptionalone of "never" | "fallback" | "always" | "auto"Options for livecrawling pages.
livecrawlTimeoutoptionalnumberTimeout for livecrawling in milliseconds.
subpagesoptionalnumberNumber of subpages to crawl.
subpageTargetoptionaltextKeyword(s) to find specific subpages.

perform_searchin catalog

Perform Search. Search the web using semantic or keyword-based search.

Also accepted as search.

InputTypeDescription
queryrequiredtextSearch query to find related articles and data.
typeoptionalone of "auto" | "keyword" | "neural"Type of search to perform.
categoryoptionalone of "company" | "research paper" | "news" | "pdf" | "github" | "tweet" | "personal site" | "linkedin profile" | "financial report"Category of data to focus the search on.
numResultsoptionalnumberNumber of results to return (max 100).
includeDomainsoptionalarrayLimit results to only these domains.
excludeDomainsoptionalarrayExclude results from these domains.
startCrawlDateoptionaldate-time (ISO)Only include results crawled after this ISO date.
endCrawlDateoptionaldate-time (ISO)Only include results crawled before this ISO date.
startPublishedDateoptionaldate-time (ISO)Only include results published after this ISO date.
endPublishedDateoptionaldate-time (ISO)Only include results published before this ISO date.
includeTextoptionalarrayStrings that must be present in the text of results.
excludeTextoptionalarrayStrings that must not be present in the text of results.

custom_api_call

Custom API Call. Make a custom API call to a specific endpoint

InputTypeDescription
urlrequiredobject (depends on other props)url
methodrequiredone of "GET" | "POST" | "PATCH" | "PUT" | "DELETE" | "HEAD"Method
headersrequiredobjectAuthorization headers are injected automatically from your connection.
queryParamsrequiredobjectQuery Parameters
body_typeoptionalone of "none" | "json" | "form_data" | "raw"Body Type
bodyoptionalobject (depends on other props)Body
response_is_binaryoptionalbooleanEnable for files like PDFs, images, etc.
failsafeoptionalbooleanNo Error on Failure
timeoutoptionalnumberTimeout (in seconds)
followRedirectsoptionalbooleanFollow redirects

generate_answer

Ask AI. Provides direct answers to queries by summarizing results.

InputTypeDescription
queryrequiredtextAsk a question to get summarized answers from the web.
textoptionalbooleanIf true, includes full text content from the search results
modelrequiredone of "exa" | "exa-pro"Choose the Exa model to use for the answer.

Details

Id
exa
Category
AI and ML
Tags
search, neural-search, web, ai, discovery
Package
@activepieces/piece-exa@0.1.5
Tier
Community

On this page

  1. Connect
  2. Call it from a workflow
  3. Actions (5)
  4. find_similar_links
  5. get_contents
  6. perform_search
  7. custom_api_call
  8. generate_answer
  9. Details
Appbricx

The backend, runtime and hosting for apps your coding agent builds. On our cloud, in yours, or on your own servers.

Features

Coding agents and MCPVerify testingBuilder consolePostgres databaseData APIRealtimeRow-level securitySign-in and authPaymentsWorkflows and jobsAI in your appIntegrationsBackups and rollbackHosting and domainsSelf-host and exportAll features

Product

ShowcasePricingFor coding agentsTemplatesPrivate cloudBring your own AI keyFAQ

Compare

Appbricx vs SupabaseLovable alternativeBolt alternativeFor freelancersFor agencies

Resources

DocumentationReferenceBlogSupportContact

© 2026 Appbricx. All rights reserved.

TermsPrivacyCookiesAcceptable Use