Member Junction
    Preparing search index...

    Action that queries Perplexity. It fronts two different products, selected by Mode, because they answer different questions and cost different money.

    • search (default) calls POST /search, Perplexity's raw search endpoint. It returns ranked title / url / snippet results with no model in the loop: sub-second, flat-priced per query, and deterministic enough to cache. This is the mode to use when something wants sources.
    • answer calls POST /chat/completions against the Sonar models. It returns synthesised prose plus a flat citation list, takes seconds rather than milliseconds, and bills per token. Use it when a caller genuinely wants a written answer rather than results to read.

    search is the default deliberately. Every caller that omitted Mode before this parameter existed was paying Sonar generation prices, and waiting for generation latency, to obtain what was usually just a list of links — and Citations is still populated in search mode, so callers that only read the URL list keep working unchanged.

    // Structured results — fast, flat-priced (default)
    await runAction({
    ActionName: 'Perplexity Search',
    Params: [{ Name: 'Query', Value: 'latest developments in quantum computing' }]
    });

    // Structured results, recent only, restricted to two domains
    await runAction({
    ActionName: 'Perplexity Search',
    Params: [
    { Name: 'Query', Value: 'IRS Form 990 filing changes' },
    { Name: 'MaxResults', Value: 15 },
    { Name: 'SearchRecencyFilter', Value: 'month' },
    { Name: 'SearchDomainFilter', Value: ['irs.gov', 'councilofnonprofits.org'] }
    ]
    });

    // A written answer with citations — slower, token-billed
    await runAction({
    ActionName: 'Perplexity Search',
    Params: [
    { Name: 'Query', Value: 'summarise the 2026 nonprofit reporting changes' },
    { Name: 'Mode', Value: 'answer' },
    { Name: 'Model', Value: 'sonar-pro' }
    ]
    });

    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 Perplexity call.

      Parameters

      • params: RunActionParams

        The action parameters containing:

        • Query: Search query text (required)
        • Mode: 'search' (default) for structured results, or 'answer' for Sonar prose
        • SearchDomainFilter: Restrict to these domains (max 20) — both modes
        • SearchRecencyFilter: 'hour' | 'day' | 'week' | 'month' | 'year' — both modes

        search mode only:

        • MaxResults: 1-20 (default 10)
        • Country: 2-letter country code for localisation

        answer mode only:

        • Model: 'sonar' (default), 'sonar-pro', 'sonar-reasoning-pro', 'sonar-deep-research'. Note the legacy llama-3.1-sonar-* identifiers were retired by Perplexity in February 2025 and now fail with an invalid-model error
        • MaxTokens, Temperature, TopP
        • ReturnImages, ReturnRelatedQuestions

      Returns Promise<ActionResultSimple>

      Structured results in search mode; prose plus citations in answer mode