# Graana Agency Profile API Documentation

Scrappa's `GET /api/graana/agency` returns the public profile of one Graana agency by `id`. Take the id from `agency_id` on a listing or from the agency search.

## What you get

`name`, `url`, `address`, `phone`, `email`, `website`, `description`, `city_id`, `city`, `type`, `services`, `coordinates` and `logo`. The counts are `total_sale`, `total_rent`, `sale_by_type` and `rent_by_type` (per city and subtype) and `cities`. `featured_listings` holds up to 15 current listings of the agency in the search row shape. For all its properties call the search endpoint with `agency_id`, `city_id` and `purpose`.

## Notes

The profile is cached for a few minutes. A field the agency left empty is `null`. An id that has no agency returns `404`, which is never billed.

- **Documentation:** [https://scrappa.co/docs/graana-api/graana_agency](https://scrappa.co/docs/graana-api/graana_agency)
- **API group:** Graana API
- **Endpoint:** `GET https://scrappa.co/api/graana/agency`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | integer | Yes | Agency id from a listing or agency search, for example 17580. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/graana/agency?id=17580"
```

## Example response

```json
{
    "success": true,
    "agency": {
        "id": 17580,
        "url": "https://www.graana.com/agencies/17580",
        "name": "ASK GROUP",
        "address": "Pakistan Town",
        "phone": "03000000002",
        "email": "agency@example.com",
        "website": null,
        "description": null,
        "city_id": 1,
        "city": "Islamabad",
        "type": null,
        "services": null,
        "coordinates": null,
        "logo": null,
        "total_sale": 39,
        "total_rent": 0,
        "sale_by_type": [
            {
                "city_id": 1,
                "subtype": "house",
                "count": 4
            },
            {
                "city_id": 1,
                "subtype": "residential_plot",
                "count": 35
            }
        ],
        "rent_by_type": [],
        "cities": [
            {
                "city_id": 1,
                "city": "Islamabad",
                "count": 39
            }
        ],
        "featured_listings": [
            {
                "id": 1559223,
                "url": "https://www.graana.com/property/1559223",
                "title": "5 Marla House for Sale",
                "purpose": "sale",
                "type": "residential",
                "subtype": "house",
                "price": {
                    "amount": 29500000,
                    "currency": "PKR"
                },
                "area": {
                    "size": 5,
                    "unit": "marla"
                },
                "bedrooms": 5,
                "bathrooms": 5,
                "location": {
                    "area_id": 9580,
                    "area": "Wapda Town",
                    "city_id": 2,
                    "city": "Lahore"
                },
                "agency_id": 2344,
                "poster_name": "M Qaisar",
                "status": "published",
                "verified": false,
                "total_images": 3,
                "cover_image": "https://images.graana.com/images/original/cc517755497c782be011d5fefbb0d8d0",
                "images": [
                    {
                        "url": "https://images.graana.com/images/original/8fe6eb3dd4661ca841ecce8dadd750f4",
                        "type": "image"
                    },
                    {
                        "url": "https://images.graana.com/images/original/cc517755497c782be011d5fefbb0d8d0",
                        "type": "cover"
                    }
                ],
                "created_at": "2026-10-24T09:32:45.278Z"
            }
        ]
    },
    "meta": {
        "endpoint_family": "agency",
        "billable": true,
        "attempts": 1
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | Not Found | Nothing exists with that identifier on Graana (`not_found`). Non-billable. |
| 422 | Validation Error | A query parameter is missing, unknown or unusable. Unknown parameters and unknown values are rejected, never ignored. Non-billable. |
| 503 | Upstream Unavailable | Graana could not be reached after retries, answered with an error or changed its format (`upstream_unavailable`, `upstream_blocked`, `parser_drift`). Retryable and never billed. Clients are never rate limited. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
