> **For AI agents:** this page is a focused, LLM-optimized view of a
> single Fiber AI operation. Before calling it, fetch the routing
> instructions at [`https://api.fiber.ai/llms.txt`](https://api.fiber.ai/llms.txt) and the full operation
> index at [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md).

# multiSourceSearch

`POST /v1/multi-source/search`

**Tags:** `Agentic search`

Multi-source AI search

**Endpoint:** `https://api.fiber.ai/v1/multi-source/search`

## Description

AI-powered natural language search across multiple sources (LinkedIn, Google Maps, web, and more). Ideal for local business search where companies/employees have spotty web or LinkedIn presence.

**Pagination flow:**

1. **First page** — send `{ search: { request: "initial", query: "...", pageSize: 10 } }`. The `pageSize` you choose here is locked for the entire session.
2. **Subsequent pages** — send `{ search: { request: "subsequent", cursor: "" } }`.
3. When `nextCursor` is `null` in the response, there are no more results.

⚡ Rate limit: 120 requests per 1 minute

💰 Cost: Credits are charged after the search completes based on results: 2 credits per company found and 2 credits per prospect found. Each query resolves to either companies or prospects, so only one rate applies per page. ⓘ

## Request body (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your Fiber API key"
    },
    "search": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "request": {
              "type": "string",
              "description": "Use \"initial\" for the first page of a new search. Provide query, pageSize, and any filters.",
              "enum": [
                "initial"
              ]
            },
            "query": {
              "type": "string",
              "maxLength": 2000,
              "description": "Natural language search query, e.g. \"pizza shops in NYC\" or \"Series A SaaS founders in London\". The API infers whether to return companies or people."
            },
            "pageSize": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000,
              "default": 10,
              "description": "Number of results per page (default 10, max 1000). This value is locked for the entire pagination session."
            },
            "companyFilters": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "country_codes": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 3
                  },
                  "description": "ISO 3166-1 alpha-3 country codes (e.g. USA, GBR)."
                },
                "min_relevance": {
                  "type": [
                    "number",
                    "null"
                  ],
                  "minimum": 0,
                  "maximum": 1,
                  "description": "Minimum relevance score (0.0–1.0). Higher values mean a closer match to your query."
                },
                "funding_stages": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "enum": [
                      "no_funding_yet",
                      "pre_seed",
                      "seed",
                      "series_a",
                      "series_b",
                      "series_c",
                      "series_d",
                      "series_e",
                      "series_f",
                      "series_g",
                      "series_h",
                      "series_i",
                      "series_j",
                      "venture_other",
                      "private_equity"
                    ]
                  },
                  "description": "Last funding round stage filter. Acquired, public, closed, and unknown stages are not supported."
                },
                "employee_growth": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "enum": [
                      "high",
                      "growing",
                      "stable",
                      "declining"
                    ]
                  },
                  "description": "Year-over-year employee growth trend. Elements are OR-ed together."
                },
                "website_traffic": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "enum": [
                      "<1K",
                      "1K-10K",
                      "10K-100K",
                      "100K-1M",
                      "1M+",
                      "unknown"
                    ]
                  },
                  "description": "Monthly website traffic bucket filter. Elements are OR-ed together."
                },
                "employee_count": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "min": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0
                    },
                    "max": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0
                    }
                  },
                  "description": "Filter by number of employees (inclusive range)."
                },
                "founded_year": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "min": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0
                    },
                    "max": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 0
                    }
                  },
                  "description": "Filter by company founding year (inclusive range)."
                },
                "revenue": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "min": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "minimum": 0
                    },
                    "max": {
                      "type": [
                        "number",
                        "null"
                      ],
                      "minimum": 0
                    }
                  },
                  "description": "Annual revenue in USD (inclusive range)."
                },
                "is_b2b": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only B2B companies. If `false`, exclude B2B companies."
                },
                "is_tech": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only tech companies. If `false`, exclude tech companies."
                },
                "is_saas": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only SaaS companies. If `false`, exclude SaaS companies."
                },
                "is_startup": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only startup-stage companies. If `false`, exclude startups."
                },
                "website_traffic_growth": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "enum": [
                      "high",
                      "growing",
                      "stable",
                      "declining",
                      "unknown"
                    ]
                  },
                  "description": "Year-over-year website traffic growth trend. Elements are OR-ed together."
                },
                "has_linkedin_page": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only companies with a LinkedIn page. If `false`, exclude them."
                },
                "has_employees_on_linkedin": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only companies that have employees listed on LinkedIn. If `false`, exclude them."
                },
                "has_public_emails": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only companies with public contact emails. If `false`, exclude them."
                },
                "has_company_phone": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only companies with a phone number. If `false`, exclude them."
                },
                "hiring_is": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only companies that are currently hiring. If `false`, exclude them."
                },
                "is_ai": {
                  "type": [
                    "boolean",
                    "null"
                  ],
                  "description": "If `true`, include only AI-related companies. If `false`, exclude them."
                }
              },
              "description": "Optional filters applied on top of the AI-derived company filters (e.g. country, funding stage, employee count, etc)."
            },
            "peopleFilters": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "country_codes": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 3
                  },
                  "description": "ISO 3166-1 alpha-3 country codes (e.g. USA, GBR)."
                },
                "min_relevance": {
                  "type": [
                    "number",
                    "null"
                  ],
                  "minimum": 0,
                  "maximum": 1,
                  "description": "Minimum relevance score (0.0–1.0). Higher values mean a closer job-title match."
                },
                "job_titles": {
                  "type": [
                    "object",
                    "null"
                  ],
                  "properties": {
                    "include": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "type": "string"
                      },
                      "minItems": 1,
                      "maxItems": 20,
                      "description": "Job titles to search for. Abbreviations are supported (e.g. 'CTO'). Elements are OR-ed together."
                    },
                    "exclude": {
                      "type": [
                        "array",
                        "null"
                      ],
                      "items": {
                        "type": "string"
                      },
                      "minItems": 1,
                      "description": "Job title keywords to exclude from results."
                    }
                  }
                },
                "max_people_per_company": {
                  "type": [
                    "integer",
                    "null"
                  ],
                  "minimum": 1,
                  "maximum": 1000,
                  "description": "Maximum number of people to return per matched company."
                },
                "company_linkedin_ids": {
                  "type": [
                    "array",
                    "null"
                  ],
                  "items": {
                    "type": "string",
                    "pattern": "^\\d+$"
                  },
                  "description": "Restrict results to people from these companies. Provide the numeric LinkedIn company IDs returned by Fiber's company search endpoints."
                }
              },
              "description": "Optional filters applied on top of the AI-derived people filters (e.g. job titles, country, max people per company). Only used when the query resolves to a people search."
            }
          },
          "required": [
            "request",
            "query"
          ]
        },
        {
          "type": "object",
          "properties": {
            "request": {
              "type": "string",
              "description": "Use \"subsequent\" for page 2 and beyond. Only the cursor from the previous response is required; all other parameters are stored server-side.",
              "enum": [
                "subsequent"
              ]
            },
            "cursor": {
              "type": "string",
              "description": "The `nextCursor` value returned by the previous response. Valid for 3 days."
            }
          },
          "required": [
            "request",
            "cursor"
          ]
        }
      ]
    }
  },
  "required": [
    "apiKey",
    "search"
  ]
}
```

## Response — success (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "output": {
      "type": "object",
      "properties": {
        "data": {
          "oneOf": [
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "companies"
                  ]
                },
                "results": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Company name"
                      },
                      "domain": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Company domain"
                      },
                      "websiteUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Company website URL"
                      },
                      "linkedinUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "LinkedIn company page URL using the numeric company ID (e.g. https://linkedin.com/company/1234). Null if unavailable."
                      },
                      "industry": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Primary industry. The value comes from the data provider and may vary in format."
                      },
                      "employeeCount": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Estimated employee count"
                      },
                      "city": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Company city"
                      },
                      "countryCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Company country (ISO alpha-3 code, e.g. USA)"
                      },
                      "foundedYear": {
                        "type": [
                          "integer",
                          "null"
                        ],
                        "description": "Year the company was founded"
                      },
                      "description": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Company description"
                      }
                    }
                  },
                  "description": "Matched companies"
                }
              },
              "required": [
                "type",
                "results"
              ]
            },
            {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "enum": [
                    "prospects"
                  ]
                },
                "results": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "firstName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "First name"
                      },
                      "lastName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Last name"
                      },
                      "jobTitle": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Job title"
                      },
                      "headline": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "LinkedIn headline"
                      },
                      "linkedinUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "LinkedIn profile URL"
                      },
                      "countryCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "Person's country (ISO alpha-3 code, e.g. USA)"
                      },
                      "companyName": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The person's current company name"
                      },
                      "companyDomain": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The person's current company domain"
                      },
                      "companyLinkedinUrl": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The person's current company LinkedIn URL"
                      },
                      "companyCity": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The person's current company city"
                      },
                      "companyCountryCode": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "description": "The person's current company headquarters country (ISO alpha-3 code, e.g. USA)"
                      }
                    }
                  },
                  "description": "Matched prospects with company info"
                }
              },
              "required": [
                "type",
                "results"
              ]
            }
          ],
          "description": "Search results — either companies or prospects, never both"
        },
        "message": {
          "type": "string"
        },
        "nextCursor": {
          "type": [
            "string",
            "null"
          ],
          "description": "Cursor for the next page. Pass this as `cursor` in a `{ request: \"subsequent\", cursor: \"...\" }` request. `null` means there are no more results. Cursors expire after 3 days."
        }
      },
      "required": [
        "data",
        "message"
      ]
    },
    "chargeInfo": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-now"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged"
          ],
          "description": "Credits were charged immediately for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charging-later"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "Credits will be charged after the operation completes"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-for-async-process"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged",
            "message"
          ],
          "description": "Credits that were charged for an asynchronous operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "free"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "No credits were charged for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "credits-refunded"
              ]
            },
            "creditsRefunded": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsRefunded",
            "message"
          ],
          "description": "Credits were refunded for this operation"
        }
      ]
    },
    "warnings": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Full path to extraneous field (e.g., 'searchParams.ExtraField')"
          },
          "message": {
            "type": "string",
            "description": "Warning message"
          }
        },
        "required": [
          "field",
          "message"
        ]
      },
      "description": "Warnings about extraneous fields in request"
    },
    "advice": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "description": "Tips, recommendations, and suggestions for using this API effectively."
    }
  },
  "required": [
    "output",
    "chargeInfo"
  ],
  "additionalProperties": false
}
```

---

Canonical JSON: [`https://api.fiber.ai/openapi.json`](https://api.fiber.ai/openapi.json)
Operation index: [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md)
