> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.brevo.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.brevo.com/_mcp/server.

# Get all Companies

GET https://api.brevo.com/v3/companies

Retrieve a paginated list of companies with optional filtering, sorting, and search capabilities. Results are sorted by creation date in descending order by default, and can be filtered by attributes, linked contacts, linked deals, or modification/creation timestamps.

Reference: https://developers.brevo.com/reference/get-all-companies

## Authentication

- `api-key` header (required) — The API key should be passed in the request headers as `api-key` for authentication.

## Request

### Query parameters

- `filters[attributes.name]` (string, optional) — Filter by attributes. If you have a filter for the owner on your side please send it as filters[attributes.owner] and utilize the account email for the filtering.
- `linkedContactsIds` (long, optional) — Filter by linked contacts ids
- `linkedDealsIds` (string, optional) — Filter by linked Deals ids
- `modifiedSince` (string, optional) — Filter (urlencoded) the companies modified after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `createdSince` (string, optional) — Filter (urlencoded) the companies created after a given UTC date-time (YYYY-MM-DDTHH:mm:ss.SSSZ). Prefer to pass your timezone in date-time format for accurate result.
- `page` (long, optional) — Index of the first document of the page
- `limit` (long, optional) — Number of documents per page
- `sort` (enum, optional) — Sort the results in the ascending/descending order. Default order is **descending** by creation if `sort` is not passed
  - Allowed values: `asc`, `desc`
- `sortBy` (string, optional) — The field used to sort field names.

## Response

### 200

Returns companies list with filters

- `items` (list of object, optional) — List of companies
  - `attributes` (object, optional) — Company attributes with values
  - `id` (string, optional) — Unique company id
  - `linkedContactsIds` (list of integer, optional) — Contact ids for contacts linked to this company
  - `linkedDealsIds` (list of string, optional) — Deal ids for deals linked to this company

## Errors

### 400 Bad Request Error

bad request

- `code` (enum, required) — Error code displayed in case of a failure
  - Allowed values: `invalid_parameter`, `missing_parameter`, `out_of_range`, `campaign_processing`, `campaign_sent`, `document_not_found`, `not_enough_credits`, `permission_denied`, `duplicate_parameter`, `duplicate_request`, `method_not_allowed`, `unauthorized`, `account_under_validation`, `not_acceptable`, `bad_request`, `unprocessable_entity`, `Domain does not exist`, `Contact email not found`, `Attribute not found`, `Category id not found`, `Invalid parameters passed`, `Record(s) for identifier not found`, `Returned when query params are invalid`, `Returned when invalid data posted`, `Feed not found`, `Campaign ID not found`, `api-key not found`, `DMARC policy requires domain authentication`, `DNS records not properly configured`, `Invalid OTP code provided`, `OTP code has expired`, `Domain already exists in your account`, `The sum of all IP weights must equal 100`, `Authentication failed`, `Insufficient credits`, `Request already processed`
- `message` (string, required) — Readable message associated to the failure

## Examples

**Response**

```json
{
  "items": [
    {
      "attributes": {
        "created_at": "2022-01-13T19:04:24.376+05:30",
        "domain": "xyz",
        "last_updated_at": "2022-04-01T18:47:48.283+05:30",
        "name": "text",
        "number_of_contacts": 0,
        "owner": "62260474111b1101704a9d85",
        "owner_assign_date": "2022-04-01T18:21:13.379+05:30",
        "phone_number": 8171844192,
        "revenue": 10
      },
      "id": "629475917295261d9b1f4403",
      "linkedContactsIds": [
        1,
        2,
        3
      ],
      "linkedDealsIds": [
        "61a5ce58c5d4795761045990",
        "61a5ce58c5d4795761045991",
        "61a5ce58c5d4795761045992"
      ]
    }
  ]
}
```

**SDK Code**

```typescript
import { BrevoClient } from "@getbrevo/brevo";

async function main() {
    const client = new BrevoClient({
        apiKey: "YOUR_API_KEY_HERE",
    });
    await client.companies.getAllCompanies({});
}
main();

```

```python
from brevo import Brevo

client = Brevo(
    api_key="YOUR_API_KEY_HERE",
)

client.companies.get_all_companies()

```

```php
<?php

namespace Example;

use Brevo\Brevo;
use Brevo\Companies\Requests\GetCompaniesRequest;

$client = new Brevo(
    apiKey: 'YOUR_API_KEY_HERE',
);
$client->companies->getAllCompanies(
    new GetCompaniesRequest([]),
);

```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.brevo.com/v3/companies"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("api-key", "<apiKey>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.brevo.com/v3/companies")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["api-key"] = '<apiKey>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.brevo.com/v3/companies")
  .header("api-key", "<apiKey>")
  .asString();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.brevo.com/v3/companies");
var request = new RestRequest(Method.GET);
request.AddHeader("api-key", "<apiKey>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["api-key": "<apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.brevo.com/v3/companies")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```