Member Junction
    Preparing search index...

    Action that searches the web through the Brave Search API.

    Brave matters here for a reason that is structural rather than qualitative: it serves results from its own index (40B+ pages) rather than reselling Google's or Bing's. Every SERP-proxy vendor — and every product built on the Google Custom Search JSON API, which is discontinued on 2027-01-01 — depends on a search engine continuing to permit that access. Brave does not, so it fails independently of the rest of this package's web-search actions. That is the whole point of adding it.

    Its output shape is deliberately title / url / snippet, which is the shape Google Custom Search returns today, so callers migrating off that action are making a rename rather than a rewrite.

    Authentication is the X-Subscription-Token header. Brave requires Accept: application/json and returns gzip, which fetch negotiates itself.

    // Basic search
    await runAction({
    ActionName: 'Brave Search',
    Params: [{ Name: 'Query', Value: 'association management software trends' }]
    });

    // Recent results only, more of them
    await runAction({
    ActionName: 'Brave Search',
    Params: [
    { Name: 'Query', Value: 'nonprofit membership dues changes' },
    { Name: 'Freshness', Value: 'pw' },
    { Name: 'Count', Value: 20 }
    ]
    });

    // Second page, UK results, with the extra per-page snippets
    await runAction({
    ActionName: 'Brave Search',
    Params: [
    { Name: 'Query', Value: 'charity commission filing deadlines' },
    { Name: 'Country', Value: 'GB' },
    { Name: 'Offset', Value: 1 },
    { Name: 'ExtraSnippets', Value: true }
    ]
    });

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    Accessors

    Methods

    Constructors

    Properties

    AuthorizesCaller: boolean

    True when the action authorizes its caller itself, so a public entry point such as the RunAction mutation may run it for an authenticated user without an MJ: Action Authorizations link. Set it only on an action that either checks an authorization the caller must hold, or reads and writes only with the caller's own permissions. Leave it false for an action that acts with more authority than its caller, or that reaches data or sends messages the caller chooses but could not otherwise reach.

    The engine reads the marker only from the class that runs, never from its parent classes. A subclass that overrides a marked action must declare the marker again.

    Accessors

    • get SupportsAudience(): boolean

      Whether this action can bound what it returns to an audience (RunActionParams.Audience): everyone besides the caller who will see its output, such as the other participants of a shared conversation.

      false by default, and the engine enforces it: when a run's audience adds a reader beyond the caller, ActionEngineServer.RunAction refuses the action with result code AUDIENCE_UNSUPPORTED, without running it. Override to return true only when the action honours the audience in full — every record, snippet and count it returns is something every reader may see (pass the audience to the search engine, check each reader's entitlement to anything it scopes by, and leave out aggregates computed before that filtering).

      Returns boolean

    Methods

    • Executes the Brave search.

      Parameters

      • params: RunActionParams

        The action parameters containing:

        • Query: Search query text (required, max 400 characters)
        • Count: 1-20 results (default 10)
        • Offset: Page offset 0-9 (default 0) — pages, not results
        • Country: 2-letter country code for localisation, e.g. 'US', 'GB'
        • SearchLang: Language code for results, e.g. 'en'
        • SafeSearch: 'off' | 'moderate' (default) | 'strict'
        • Freshness: 'pd' | 'pw' | 'pm' | 'py', or 'YYYY-MM-DDtoYYYY-MM-DD'
        • ExtraSnippets: Return additional snippets per result (default false). Brave gates this on plan tier, so it is off unless asked for

      Returns Promise<ActionResultSimple>

      Structured web results with titles, URLs and snippets