FlowiseAI/Flowise · error · Error

No API key provided

Error message

No API key provided

What it means

FirecrawlApp constructor requires a non-empty apiKey. The credential is read from nodeData and if it resolves to null, undefined, or empty string, this throws immediately - before any network call. apiUrl defaults to https://api.firecrawl.dev.

Source

Thrown at packages/components/nodes/documentloaders/FireCrawl/FireCrawl.ts:142

}

interface ExtractStatusResponse {
    success: boolean
    data: any
    status: 'completed' | 'pending' | 'processing' | 'failed' | 'cancelled'
    expiresAt: string
}

// FirecrawlApp class (not exported)
class FirecrawlApp {
    private apiKey: string
    private apiUrl: string

    constructor({ apiKey = null, apiUrl = null }: FirecrawlAppConfig) {
        this.apiKey = apiKey || ''
        this.apiUrl = apiUrl || 'https://api.firecrawl.dev'
        if (!this.apiKey) {
            throw new Error('No API key provided')
        }
    }

    async scrapeUrl(url: string, params: Params | null = null): Promise<ScrapeResponse> {
        const headers = this.prepareHeaders()

        // Create a clean payload with only valid parameters
        const validParams: any = {
            url,
            formats: ['markdown'],
            onlyMainContent: true
        }

        // Add optional parameters if they exist
        if (params?.scrapeOptions) {
            if (params.scrapeOptions.includeTags) {
                validParams.includeTags = Array.isArray(params.scrapeOptions.includeTags)
                    ? params.scrapeOptions.includeTags

View on GitHub (pinned to abe4a8601a)

Solutions

  1. Create a FireCrawl credential in Flowise with the key from https://firecrawl.dev/dashboard and attach it to the node.
  2. Confirm getCredentialParam('apiKey', ...) reads the same field name stored in the credential.
  3. If automating, ensure the credential is provisioned before the flow runs.
Defensive patterns

Strategy: validation

Validate before calling

function assertApiKey(key: unknown): asserts key is string {
  if (typeof key !== 'string' || key.trim() === '') {
    throw new Error('FireCrawl apiKey is missing - attach a FireCrawl credential to the node')
  }
}
// const apiKey = getCredentialParam('apiKey', credentialData, nodeData)
// assertApiKey(apiKey) before new FirecrawlApp({ apiKey })

Type guard

function hasApiKey(cred: unknown): cred is { apiKey: string } {
  return typeof cred === 'object' && cred !== null
    && typeof (cred as any).apiKey === 'string' && (cred as any).apiKey.trim() !== ''
}

Prevention

When it happens

Trigger: FireCrawl credential not attached to the node; credential exists but the apiKey field is blank; getCredentialParam returned undefined because the credential key name does not match.

Common situations: User added the node but forgot to attach a FireCrawl credential; API key was revoked on the FireCrawl dashboard; environment-specific credential mapping points at the wrong entry.

Related errors


AI-assisted analysis of FlowiseAI/Flowise@abe4a8601a (2026-08-12). Data as JSON: /api/errors/33a709d04eb3764a. Report an issue: GitHub.