---
type: "firecrawl-provider"
description: "City of Seattle (seattle.gov): the City Council roster with office phone, email, page ids and term dates, one councilmember's typed contact card with CMS provenance, the City Clerk's terms of office for every elected official, council district lookup by coordinates (ArcGIS), site search, generic CMS page content and Council Connection news. Anonymous throughout: the Ingeniux content API, the public ArcGIS feature services and the WordPress REST API need no cookies, tokens or keys."
use_when: "City of Seattle (seattle.gov): the City Council roster with office phone, email, page ids and term dates, one councilmember's typed contact card with CMS provenance, the City Clerk's terms of office for every elected official, council district lookup by coordinates (ArcGIS), site search, generic CMS page content and Council Connection news. Anonymous throughout: the Ingeniux content API, the public ArcGIS feature services and the WordPress REST API need no cookies, tokens or keys."
categories: "Public records"
capabilities: 7
credits_per_call: 5
---
# City of Seattle on Firecrawl Alexandria

City of Seattle (seattle.gov): the City Council roster with office phone, email, page ids and term dates, one councilmember's typed contact card with CMS provenance, the City Clerk's terms of office for every elected official, council district lookup by coordinates (ArcGIS), site search, generic CMS page content and Council Connection news. Anonymous throughout: the Ingeniux content API, the public ArcGIS feature services and the WordPress REST API need no cookies, tokens or keys.

- Categories: Public records
- Category index: [Public records category](https://firecrawl.dev/alexandria/agents/categories/public-records)
- Provider key: `seattle-gov`
- Access: Firecrawl credits
- Cost: 5 credits per call

## More

- [Human guide](https://firecrawl.dev/app/alexandria/seattle-gov)
- [OpenAPI spec](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/openapi.json)

## Capabilities

- [Council news](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/council_news): Posts from Council Connection (council.seattle.gov), the City Council's news blog, through its WordPress REST API: id, dates, slug, link, title, excerpt, author id, category and tag ids plus category slugs (e.g. `councilmember-lin`, `news-releases`). Full-text `search`, `categories` filter, `per_page`/`page` pagination with the total from the API headers.
- [Council roster](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/council_roster): Current Seattle City Council roster by seat (Districts 1-7, Positions 8-9): name, role (Councilmember / Council President), district description, published office phone and email, councilmember page URL and CMS ids, headshot, and (by default) the City Clerk's term record (elected or appointed date, term length, term expiry, footnote). Sources: the roster page's BoardMemberComponent records, the Elected Officials page cards and the Terms of Office page.
- [Councilmember](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/councilmember): One Seattle councilmember's page: name, seat, banner image, the typed ContactComponent (main/alt phone, TTY, fax, main/alt email, mailing and street address, coordinates, hours) and CMS provenance (page changed, contact card created/changed/published timestamps from the component XML). Identify the member by page slug (`eddie-lin`), Ingeniux page id (`x182337`, from `council_roster`) or a seattle.gov/council/members/... URL.
- [Find district](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/find_district): Which Seattle City Council district contains a WGS84 point (longitude, latitude), with that district's councilmember contact record and the two at-large positions, from the Seattle City GIS feature services behind maps.seattle.gov/find-your-district. A point outside the seven districts is `not_found`.
- [Page content](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/page_content): Any seattle.gov CMS record (page or component) by Ingeniux id through the site's own content API: attributes (id, name, view, friendly URL, render time) and the element tree (name, value, attributes, children). Optionally restrict to named elements (the API silently omits names that do not exist). Unknown ids are `not_found`.
- [Search pages](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/search_pages): seattle.gov site search (server-rendered /searchresults): hits with title, URL, excerpt, relevance score, last-changed timestamp and Ingeniux page id, the total, page window and the taxonomy facets offered for narrowing (`cats`). Page ids feed `page_content`. `page` + `pagesize` (10 or 25) paginate; `next_page` is null on the last page.
- [Terms of office](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/terms_of_office): The City Clerk's Terms of Office for Elected Officials page: for the Mayor, every City Council position, the City Attorney and each Municipal Court judge, the name, elected or appointed date, term length, term expiry and any footnote explaining a partial or appointed term.

## 1. Choose this provider when

City of Seattle (seattle.gov): the City Council roster with office phone, email, page ids and term dates, one councilmember's typed contact card with CMS provenance, the City Clerk's terms of office for every elected official, council district lookup by coordinates (ArcGIS), site search, generic CMS page content and Council Connection news. Anonymous throughout: the Ingeniux content API, the public ArcGIS feature services and the WordPress REST API need no cookies, tokens or keys.

## 2. Minimal request

Call `POST https://api.firecrawl.dev/v2/scrape` with `{ alexandria: { provider, capability, options } }`. For a batch, send `{ alexandria: [...] }` with up to 10 calls.

```json
{
  "provider": "seattle-gov",
  "capability": "seattle-city-government/council_news",
  "options": {
    "per_page": 3,
    "search": "Lin"
  }
}
```

## 3. Add provider options

Use only the options needed for the task:

- `categories` (string): Category ids, comma separated, as returned in `posts[].categories`. Pattern: ^[0-9]+(,[0-9]+)*$. Example: `posts[].categories`
- `page` (number): page Example: `1`
- `per_page` (number): per_page Example: `10`
- `search` (string): WordPress full-text search, e.g. a councilmember's surname. Example: `<search>`

## 4. Request through your preferred interface

### JavaScript

```javascript
const result = await firecrawl.scrape({
  alexandria: {
    provider: "seattle-gov",
    capability: "seattle-city-government/council_news",
    options: {
      per_page: 3,
      search: "Lin",
    },
  },
});
```

### Python

```python
result = firecrawl.scrape_alexandria({
  "provider": "seattle-gov",
  "capability": "seattle-city-government/council_news",
  "options": {
    "per_page": 3,
    "search": "Lin"
  }
})
```

### cURL

```sh
curl https://api.firecrawl.dev/v2/scrape \
  -H "Authorization: Bearer $FIRECRAWL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "alexandria": {
    "provider": "seattle-gov",
    "capability": "seattle-city-government/council_news",
    "options": {
      "per_page": 3,
      "search": "Lin"
    }
  }
}'
```

### CLI

```sh
firecrawl scrape 'seattle-gov/seattle-city-government/council_news' \
  --options '{"per_page":3,"search":"Lin"}'
```


### MCP

Call the FCX MCP retrieve tool with this object:

```json
{
  "provider": "seattle-gov",
  "capability": "seattle-city-government/council_news",
  "options": {
    "per_page": 3,
    "search": "Lin"
  }
}
```

Ask for only the returned fields needed by the task.

## 5. Full request shape

```json
{
  "provider": "seattle-gov",
  "capability": "seattle-city-government/council_news",
  "options": {
    "per_page": 3,
    "search": "Lin"
  }
}
```

## 6. Response data

The response includes `success`, `provider`, `capability`, `creditsCost` and `data`. This example shows the provider payload in `data`:

```json
{
  "next_page": 2,
  "observed_at_ms": 1790276747529,
  "post_count": 3,
  "posts": [
    {
      "author_id": 15,
      "categories": [
        272,
        251,
        1,
        277
      ],
      "category_slugs": [
        "councilmember-rivera",
        "news",
        "news-releases",
        "rivera"
      ],
      "date": "2026-09-22T18:48:51",
      "date_gmt": "2026-09-23T01:48:51",
      "excerpt": "Potential for unintended consequences and higher grocery prices SEATTLE – Today Councilmember Maritza Rivera (District 4) released the following statement after the after the amended Fair Pricing legislation (Council Bill 121267) was passed by the City Council 7-2. The legislation bans algorithmic pricing on groceries but goes so far as to potentially limit popular loyalty…",
      "id": 22150,
      "link": "https://council.seattle.gov/2026/09/22/councilmember-rivera-votes-no-on-fair-pricing-ordinance-citing-affordability-concerns-for-seattle-families/",
      "modified_gmt": "2026-09-23T01:48:52",
      "slug": "councilmember-rivera-votes-no-on-fair-pricing-ordinance-citing-affordability-concerns-for-seattle-families",
      "tags": [
        282
      ],
      "title": "Councilmember Rivera votes ‘no’ on Fair Pricing ordinance citing affordability concerns for Seattle families"
    },
    {
      "author_id": 15,
      "categories": [
        295,
        251,
        1,
        294
      ],
      "category_slugs": [
        "councilmember-rinck",
        "news",
        "news-releases",
        "rinck"
      ],
      "date": "2026-09-22T11:45:58",
      "date_gmt": "2026-09-22T18:45:58",
      "excerpt": "Councilmember Rinck sponsors Dolly Parton Day Proclamation and collaborates with Imagination Library of Washington and The Seattle Public Library program with Washington Children’s Authors On Sept.22, Seattle City Councilmember Alexis Mercedes Rinck (Position 8) presented a proclamation marking this Friday, Sept. 25 as Dolly Parton Day in the City of Seattle to honor the late…",
      "id": 22141,
      "link": "https://council.seattle.gov/2026/09/22/city-of-seattle-recognizes-sept-25-as-dolly-parton-day-honored-with-a-themed-story-hour/",
      "modified_gmt": "2026-09-22T18:46:01",
      "slug": "city-of-seattle-recognizes-sept-25-as-dolly-parton-day-honored-with-a-themed-story-hour",
      "tags": [
        296
      ],
      "title": "City of Seattle Recognizes Sept. 25 as Dolly Parton Day, honored with a themed story hour"
    },
    {
      "author_id": 15,
      "categories": [
        272,
        251,
        1,
        277
      ],
      "category_slugs": [
        "councilmember-rivera",
        "news",
        "news-releases",
        "rivera"
      ],
      "date": "2026-09-22T10:37:35",
      "date_gmt": "2026-09-22T17:37:35",
      "excerpt": "Today Councilmember Maritza Rivera (District 4) issued the following statement in response to yesterday’s Seattle Times article about a contract providing telehealth mental health counseling for students that is not being used as much as projected. “When the City makes investments, we need to also ensure the services are being utilized. That’s the accountability that…",
      "id": 22143,
      "link": "https://council.seattle.gov/2026/09/22/councilmember-rivera-responds-to-seattle-times-article-on-citys-telehealth-youth-mental-health-contract/",
      "modified_gmt": "2026-09-22T17:37:36",
      "slug": "councilmember-rivera-responds-to-seattle-times-article-on-citys-telehealth-youth-mental-health-contract",
      "tags": [
        282
      ],
      "title": "Councilmember Rivera responds to Seattle Times article on City’s telehealth youth mental health contract"
    }
  ],
  "query": {
    "categories": null,
    "page": 1,
    "per_page": 3,
    "search": "Lin"
  },
  "source_url": "https://council.seattle.gov/wp-json/wp/v2/posts?search=Lin&per_page=3&page=1",
  "total": 3884,
  "total_pages": 1295
}
```

## API reference-derived contract

The following capability contract is generated from the same normalized Alexandria API reference exposed in the API spec.

### Council news

- Capability: `seattle-city-government/council_news`
- Description: Posts from Council Connection (council.seattle.gov), the City Council's news blog, through its WordPress REST API: id, dates, slug, link, title, excerpt, author id, category and tag ids plus category slugs (e.g. `councilmember-lin`, `news-releases`). Full-text `search`, `categories` filter, `per_page`/`page` pagination with the total from the API headers.
- Instructions: Recent statements and news releases from the council or one councilmember.
- Cost: 5 credits per call
- Capability file: [Council news](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/council_news)

Accepted options:
- `categories` (string): Category ids, comma separated, as returned in `posts[].categories`. Pattern: ^[0-9]+(,[0-9]+)*$. Example: `posts[].categories`
- `page` (number): page Example: `1`
- `per_page` (number): per_page Example: `10`
- `search` (string): WordPress full-text search, e.g. a councilmember's surname. Example: `<search>`

Response schema example:
```json
{
  "next_page": 2,
  "observed_at_ms": 1790276747529,
  "post_count": 3,
  "posts": [
    {
      "author_id": 15,
      "categories": [
        272,
        251,
        1,
        277
      ],
      "category_slugs": [
        "councilmember-rivera",
        "news",
        "news-releases",
        "rivera"
      ],
      "date": "2026-09-22T18:48:51",
      "date_gmt": "2026-09-23T01:48:51",
      "excerpt": "Potential for unintended consequences and higher grocery prices SEATTLE – Today Councilmember Maritza Rivera (District 4) released the following statement after the after the amended Fair Pricing legislation (Council Bill 121267) was passed by the City Council 7-2. The legislation bans algorithmic pricing on groceries but goes so far as to potentially limit popular loyalty…",
      "id": 22150,
      "link": "https://council.seattle.gov/2026/09/22/councilmember-rivera-votes-no-on-fair-pricing-ordinance-citing-affordability-concerns-for-seattle-families/",
      "modified_gmt": "2026-09-23T01:48:52",
      "slug": "councilmember-rivera-votes-no-on-fair-pricing-ordinance-citing-affordability-concerns-for-seattle-families",
      "tags": [
        282
      ],
      "title": "Councilmember Rivera votes ‘no’ on Fair Pricing ordinance citing affordability concerns for Seattle families"
    },
    {
      "author_id": 15,
      "categories": [
        295,
        251,
        1,
        294
      ],
      "category_slugs": [
        "councilmember-rinck",
        "news",
        "news-releases",
        "rinck"
      ],
      "date": "2026-09-22T11:45:58",
      "date_gmt": "2026-09-22T18:45:58",
      "excerpt": "Councilmember Rinck sponsors Dolly Parton Day Proclamation and collaborates with Imagination Library of Washington and The Seattle Public Library program with Washington Children’s Authors On Sept.22, Seattle City Councilmember Alexis Mercedes Rinck (Position 8) presented a proclamation marking this Friday, Sept. 25 as Dolly Parton Day in the City of Seattle to honor the late…",
      "id": 22141,
      "link": "https://council.seattle.gov/2026/09/22/city-of-seattle-recognizes-sept-25-as-dolly-parton-day-honored-with-a-themed-story-hour/",
      "modified_gmt": "2026-09-22T18:46:01",
      "slug": "city-of-seattle-recognizes-sept-25-as-dolly-parton-day-honored-with-a-themed-story-hour",
      "tags": [
        296
      ],
      "title": "City of Seattle Recognizes Sept. 25 as Dolly Parton Day, honored with a themed story hour"
    },
    {
      "author_id": 15,
      "categories": [
        272,
        251,
        1,
        277
      ],
      "category_slugs": [
        "councilmember-rivera",
        "news",
        "news-releases",
        "rivera"
      ],
      "date": "2026-09-22T10:37:35",
      "date_gmt": "2026-09-22T17:37:35",
      "excerpt": "Today Councilmember Maritza Rivera (District 4) issued the following statement in response to yesterday’s Seattle Times article about a contract providing telehealth mental health counseling for students that is not being used as much as projected. “When the City makes investments, we need to also ensure the services are being utilized. That’s the accountability that…",
      "id": 22143,
      "link": "https://council.seattle.gov/2026/09/22/councilmember-rivera-responds-to-seattle-times-article-on-citys-telehealth-youth-mental-health-contract/",
      "modified_gmt": "2026-09-22T17:37:36",
      "slug": "councilmember-rivera-responds-to-seattle-times-article-on-citys-telehealth-youth-mental-health-contract",
      "tags": [
        282
      ],
      "title": "Councilmember Rivera responds to Seattle Times article on City’s telehealth youth mental health contract"
    }
  ],
  "query": {
    "categories": null,
    "page": 1,
    "per_page": 3,
    "search": "Lin"
  },
  "source_url": "https://council.seattle.gov/wp-json/wp/v2/posts?search=Lin&per_page=3&page=1",
  "total": 3884,
  "total_pages": 1295
}
```

### Council roster

- Capability: `seattle-city-government/council_roster`
- Description: Current Seattle City Council roster by seat (Districts 1-7, Positions 8-9): name, role (Councilmember / Council President), district description, published office phone and email, councilmember page URL and CMS ids, headshot, and (by default) the City Clerk's term record (elected or appointed date, term length, term expiry, footnote). Sources: the roster page's BoardMemberComponent records, the Elected Officials page cards and the Terms of Office page.
- Instructions: Who currently sits on the Seattle City Council, how to reach each office, and when each term ends. Use `councilmember` for one member's full contact card and provenance.
- Cost: 5 credits per call
- Capability file: [Council roster](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/council_roster)

Accepted options:
- `include_terms` (boolean): Also fetch the City Clerk's Terms of Office page and attach `term` to each member (one extra request). Default true. Example: `false`

Response schema example:
```json
{
  "member_count": 9,
  "members": [
    {
      "component_xid": "x177271",
      "district_description": "West Seattle, South Park, Georgetown, Pioneer Square",
      "email": "rob.saka@seattle.gov",
      "name": "Rob Saka",
      "page_url": "https://www.seattle.gov/council/members/rob-saka",
      "page_xid": "x176716",
      "phone": "(206) 684-8801",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/saka_300.jpg",
      "role": "Councilmember",
      "seat": "District 1",
      "seat_number": 1,
      "seat_type": "district",
      "term": {
        "date": "11/2023",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2027",
        "term_length": "4 years"
      }
    },
    {
      "component_xid": "x182358",
      "district_description": "South Seattle, Yesler Terrace to Rainier Beach",
      "email": "eddie.lin@seattle.gov",
      "name": "Eddie Lin",
      "page_url": "https://www.seattle.gov/council/members/eddie-lin",
      "page_xid": "x182337",
      "phone": "(206) 684-8802",
      "photo_url": "https://www.seattle.gov/images/Council/Members/Lin/lin_300x300.jpg",
      "role": "Councilmember",
      "seat": "District 2",
      "seat_number": 2,
      "seat_type": "district",
      "term": {
        "date": "11/2025",
        "footnote": "Eddie Lin was elected in November 2025 to serve the remainder of the unexpired term of Tammy Morales, who resigned from the City Council in January 2025.",
        "status": "elected",
        "term_expires": "12/2027",
        "term_length": "n/a"
      }
    },
    {
      "component_xid": "x177331",
      "district_description": "Central Seattle",
      "email": "joy.hollingsworth@seattle.gov",
      "name": "Joy Hollingsworth",
      "page_url": "https://www.seattle.gov/council/members/joy-hollingsworth",
      "page_xid": "x176718",
      "phone": "(206) 684-8803",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/hollingsworth_300.jpg",
      "role": "Council President",
      "seat": "District 3",
      "seat_number": 3,
      "seat_type": "district",
      "term": {
        "date": "11/2023",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2027",
        "term_length": "4 years"
      }
    },
    {
      "component_xid": "x177332",
      "district_description": "Northeast Seattle",
      "email": "maritza.rivera@seattle.gov",
      "name": "Maritza Rivera",
      "page_url": "https://www.seattle.gov/council/members/maritza-rivera",
      "page_xid": "x176719",
      "phone": "(206) 684-8804",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/rivera_300.jpg",
      "role": "Councilmember",
      "seat": "District 4",
      "seat_number": 4,
      "seat_type": "district",
      "term": {
        "date": "11/2023",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2027",
        "term_length": "4 years"
      }
    },
    {
      "component_xid": "x177333",
      "district_description": "North Seattle",
      "email": "debora.juarez@seattle.gov",
      "name": "Debora Juarez",
      "page_url": "https://www.seattle.gov/council/members/debora-juarez",
      "page_xid": "x176720",
      "phone": "(206) 684-8805",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/juarez_300.jpg",
      "role": "Councilmember",
      "seat": "District 5",
      "seat_number": 5,
      "seat_type": "district",
      "term": {
        "date": "7/2025",
        "footnote": "Debora Juarez was appointed to replace Cathy Moore, who resigned from the City Council in July 2025. As set out in the City Charter, Councilmember Juarez will serve \"until a successor is elected and qualified\" at a special election held in concert with the 2026 state general election.",
        "status": "appointed",
        "term_expires": "11/2026",
        "term_length": "n/a"
      }
    },
    {
      "component_xid": "x177334",
      "district_description": "Northwest Seattle",
      "email": "dan.strauss@seattle.gov",
      "name": "Dan Strauss",
      "page_url": "https://www.seattle.gov/council/members/dan-strauss",
      "page_xid": "x144891",
      "phone": "(206) 684-8806",
      "photo_url": "https://www.seattle.gov/images/Council/Members/Strauss/Struass-2022-headshot_square.jpg",
      "role": "Councilmember",
      "seat": "District 6",
      "seat_number": 6,
      "seat_type": "district",
      "term": {
        "date": "11/2023",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2027",
        "term_length": "4 years"
      }
    },
    {
      "component_xid": "x177335",
      "district_description": "Downtown to Magnolia, including Queen Anne, Uptown, Westlake, Interbay, Eastlake, South Lake Union, and Belltown",
      "email": "robert.kettle@seattle.gov",
      "name": "Robert Kettle",
      "page_url": "https://www.seattle.gov/council/members/bob-kettle",
      "page_xid": "x176721",
      "phone": "(206) 684-8807",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/kettle_300.jpg",
      "role": "Councilmember",
      "seat": "District 7",
      "seat_number": 7,
      "seat_type": "district",
      "term": {
        "date": "11/2023",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2027",
        "term_length": "4 years"
      }
    },
    {
      "component_xid": "x177336",
      "district_description": "Citywide, Representing All of Seattle",
      "email": "AlexisMercedes.Rinck@seattle.gov",
      "name": "Alexis Mercedes Rinck",
      "page_url": "https://www.seattle.gov/council/members/alexis-mercedes-rinck",
      "page_xid": "x176722",
      "phone": "(206) 684-8808",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/rinck_300.jpg",
      "role": "Councilmember",
      "seat": "Position 8",
      "seat_number": 8,
      "seat_type": "at_large",
      "term": {
        "date": "11/2025",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2029",
        "term_length": "4 years"
      }
    },
    {
      "component_xid": "x183679",
      "district_description": "Citywide, Representing All of Seattle",
      "email": "dionne.foster@seattle.gov",
      "name": "Dionne Foster",
      "page_url": "https://www.seattle.gov/council/members/dionne-foster",
      "page_xid": "x183470",
      "phone": "(206) 684-8809",
      "photo_url": "https://www.seattle.gov/images/Council/Members/Foster/foster_300x300%20.jpg",
      "role": "Councilmember",
      "seat": "Position 9",
      "seat_number": 9,
      "seat_type": "at_large",
      "term": {
        "date": "11/2025",
        "footnote": null,
        "status": "elected",
        "term_expires": "12/2029",
        "term_length": "4 years"
      }
    }
  ],
  "observed_at_ms": 1790276698203,
  "roster_expanded_at": "2026-09-24T12:00:47",
  "roster_page_xid": "x143957",
  "roster_url": "https://www.seattle.gov/council/members",
  "source_urls": [
    "https://www.seattle.gov/api/content/x143957/elements/BoardMemberComponent",
    "https://www.seattle.gov/api/content/x54327/elements/Title,CardContainerComponent",
    "https://www.seattle.gov/api/content/x76513/elements/Title,BodyCopy"
  ]
}
```

### Councilmember

- Capability: `seattle-city-government/councilmember`
- Description: One Seattle councilmember's page: name, seat, banner image, the typed ContactComponent (main/alt phone, TTY, fax, main/alt email, mailing and street address, coordinates, hours) and CMS provenance (page changed, contact card created/changed/published timestamps from the component XML). Identify the member by page slug (`eddie-lin`), Ingeniux page id (`x182337`, from `council_roster`) or a seattle.gov/council/members/... URL.
- Instructions: Full published contact details and freshness evidence for a specific councilmember after `council_roster` identified the seat.
- Cost: 5 credits per call
- Capability file: [Councilmember](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/councilmember)

Accepted options:
- `slug` (string): Page slug under /council/members/, e.g. `eddie-lin` or `rob-saka`. Example: `eddie-lin`
- `url` (string): A councilmember page URL, e.g. `https://www.seattle.gov/council/members/eddie-lin` (subpages resolve to the member page). Example: `https://www.seattle.gov/council/members/eddie-lin`
- `xid` (string): Ingeniux page id of the councilmember page, e.g. `x182337`. Pattern: ^x[0-9]{1,9}$. Example: `x182337`

Response schema example:
```json
{
  "banner_image_url": "https://www.seattle.gov/images/Council/Members/CouncilmemberBanners/lin_635x250.jpg",
  "contact": {
    "component_name": "Eddie Lin Contact Card_LEG",
    "contact_name": "Contact Us",
    "contact_xid": "x182357",
    "email_alt": "Eddie.Lin@seattle.gov",
    "email_main": "Eddie.Lin@seattle.gov",
    "fax": "206-684-8587",
    "hours": null,
    "latitude": 47.604051,
    "longitude": -122.330042,
    "mailing_address": {
      "address": "PO Box 34025",
      "addressee": "Seattle City Council",
      "building": null,
      "city": "Seattle",
      "state": "WA",
      "zip": "98124-4025"
    },
    "phone_alt": null,
    "phone_main": "206-684-8802",
    "standardized_name": "Eddie Lin, Councilmember",
    "street_address": {
      "address": "600 Fourth Avenue",
      "building": "Seattle City Hall",
      "city": "Seattle",
      "state": "WA",
      "suite_or_floor": "2nd Floor",
      "zip": "98104"
    },
    "tty": null
  },
  "name": "Eddie Lin",
  "observed_at_ms": 1790276704555,
  "page_url": "https://www.seattle.gov/council/members/eddie-lin",
  "page_xid": "x182337",
  "provenance": {
    "contact_changed": "2025-11-25T17:08:31",
    "contact_created": "2025-11-21T07:31:18",
    "contact_published": "2026-09-18T22:04:19",
    "contact_xml_url": "https://www.seattle.gov/x182357.xml",
    "page_expanded_at": "2026-09-24T12:00:54"
  },
  "seat": "District 2 (South Seattle, Yesler Terrace to Rainier Beach)",
  "slug": "eddie-lin",
  "source_urls": [
    "https://www.seattle.gov/council/members/eddie-lin",
    "https://www.seattle.gov/api/content/x182337/elements/Title,Excerpt,BannerImage,ContactComponent",
    "https://www.seattle.gov/x182357.xml"
  ]
}
```

### Find district

- Capability: `seattle-city-government/find_district`
- Description: Which Seattle City Council district contains a WGS84 point (longitude, latitude), with that district's councilmember contact record and the two at-large positions, from the Seattle City GIS feature services behind maps.seattle.gov/find-your-district. A point outside the seven districts is `not_found`.
- Instructions: Map an address's coordinates to its council district and representative. Geocoding is not provided; supply lon/lat.
- Cost: 5 credits per call
- Capability file: [Find district](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/find_district)

Accepted options:
- `lat` (number, required): Latitude, WGS84 decimal degrees (Seattle is about 47.49 to 47.73). Example: `10`
- `lon` (number, required): Longitude, WGS84 decimal degrees (Seattle is about -122.4 to -122.2). Example: `10`

Response schema example:
```json
{
  "at_large": [
    {
      "email": "AlexisMercedes.Rinck@seattle.gov",
      "name": "Alexis Mercedes Rinck",
      "phone": "(206) 684-8808",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/rinck_300.jpg",
      "position": 8,
      "website": "https://www.seattle.gov/council/rinck"
    },
    {
      "email": "Dionne.Foster@seattle.gov",
      "name": "Dionne Foster",
      "phone": "(206) 684-8809",
      "photo_url": "https://www.seattle.gov/images/Council/Members/Foster/foster_300x300%20.jpg",
      "position": 9,
      "website": "https://seattle.gov/council/members/dionne-foster"
    }
  ],
  "district": {
    "area_sqmi": 7.70361902,
    "councilmember": {
      "email": "Robert.Kettle@seattle.gov",
      "name": "Robert Kettle",
      "phone": "(206) 684-8807",
      "photo_url": "https://www.seattle.gov/images/Council/Members/SquareHeadshots/kettle_300.jpg",
      "website": "https://www.seattle.gov/council/kettle"
    },
    "display_name": "CD - 7",
    "district_name": "Pioneer Square to Magnolia",
    "number": 7
  },
  "layer_last_modified": "Thu, 19 Mar 2026 22:07:34 GMT",
  "observed_at_ms": 1790276723290,
  "query": {
    "lat": 47.6062,
    "lon": -122.3321
  },
  "source_urls": [
    "https://services.arcgis.com/ZOyb2t4B0UYuYNYH/arcgis/rest/services/Council_District_Member_Info/FeatureServer/0/query?geometry=-122.3321%2C47.6062&geometryType=esriGeometryPoint&inSR=4326&spatialRel=esriSpatialRelIntersects&outFields=*&returnGeometry=false&f=json",
    "https://services.arcgis.com/ZOyb2t4B0UYuYNYH/arcgis/rest/services/Seattle_City_Council_Positions/FeatureServer/0/query?where=1%3D1&outFields=*&returnGeometry=false&f=json"
  ]
}
```

### Page content

- Capability: `seattle-city-government/page_content`
- Description: Any seattle.gov CMS record (page or component) by Ingeniux id through the site's own content API: attributes (id, name, view, friendly URL, render time) and the element tree (name, value, attributes, children). Optionally restrict to named elements (the API silently omits names that do not exist). Unknown ids are `not_found`.
- Instructions: Read a page found by `search_pages`, or a component id from `council_roster` / `councilmember`, when the specialised functions do not cover it.
- Cost: 5 credits per call
- Capability file: [Page content](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/page_content)

Accepted options:
- `elements` (string[]): Element names to return, e.g. ["Title", "Excerpt", "BodyCopy"]. Omit for the full record (large pages embed feeds and can exceed 800 KB). Example: `[]`
- `xid` (string, required): Ingeniux id, e.g. `x143957` (roster page) or `x182357` (a contact component). Pattern: ^x[0-9]{1,9}$. Example: `x143957`

Response schema example:
```json
{
  "element_count": 2,
  "elements": [
    {
      "attributes": {
        "characterLimit": "",
        "openByDefault": "false"
      },
      "children": [],
      "name": "Title",
      "value": "Terms of Office for Elected Officials"
    },
    {
      "attributes": {
        "characterLimit": "",
        "openByDefault": "false"
      },
      "children": [],
      "name": "Excerpt",
      "value": "Names, election dates, and term lengths of Seattle's elected officials, including the Mayor, City Councilmembers, City Attorney, and Municipal Court Judges"
    }
  ],
  "expanded_at": "2026-09-24T12:01:02",
  "name": "Terms of Office for Elected Officials",
  "observed_at_ms": 1790276741128,
  "source_url": "https://www.seattle.gov/api/content/x76513/elements/Title,Excerpt",
  "url": "https://www.seattle.gov/city-clerk/agendas-and-legislative-resources/terms-of-office-for-elected-officials",
  "view_name": "DepartmentDetail",
  "xid": "x76513"
}
```

### Search pages

- Capability: `seattle-city-government/search_pages`
- Description: seattle.gov site search (server-rendered /searchresults): hits with title, URL, excerpt, relevance score, last-changed timestamp and Ingeniux page id, the total, page window and the taxonomy facets offered for narrowing (`cats`). Page ids feed `page_content`. `page` + `pagesize` (10 or 25) paginate; `next_page` is null on the last page.
- Instructions: Find seattle.gov pages or documents about a topic, person or program, then read one with `page_content`.
- Cost: 5 credits per call
- Capability file: [Search pages](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/search_pages)

Accepted options:
- `cats` (string): Optional facet filter: a taxonomy id from a previous result's `facets[].value` (e.g. `1889`), `_document_` for documents only, or several joined with commas. Example: `facets[].value`
- `page` (number): page Example: `1`
- `pagesize` (number): Hits per page. Only the sizes the site paginates correctly are accepted: the server accepts other values on page 1 but renders empty pages after it. Example: `10`
- `terms` (string, required): Search words (the site's `terms` parameter). Example: `<terms>`

Response schema example:
```json
{
  "facets": [
    {
      "category": "Departments",
      "count": 3,
      "label": "Archives",
      "value": "1884"
    },
    {
      "category": "Departments",
      "count": 1,
      "label": "Clerk",
      "value": "1889"
    },
    {
      "category": "Documents",
      "count": 185,
      "label": "Documents",
      "value": "_document_"
    }
  ],
  "from": 1,
  "hit_count": 10,
  "hits": [
    {
      "asset_id": null,
      "changed": "2026-09-04T22:04:44",
      "excerpt": "Eddie Lin's term began immediately upon certification on Nov. 25 and will last through 2027. Council district: 2 In office ...",
      "score": 0.0524174459,
      "title": "About Councilmember Eddie Lin",
      "url": "https://www.seattle.gov/council/members/eddie-lin/about-eddie-lin",
      "xid": "x182341"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:36",
      "excerpt": "District 2 (South Seattle, Yesler Terrace to Rainier Beach) Welcome! It is an honor to serve as your District 2 representative on the ...",
      "score": 0.032012675,
      "title": "Eddie Lin",
      "url": "https://www.seattle.gov/council/members/eddie-lin",
      "xid": "x182337"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:00",
      "excerpt": "Contact Councilmember Eddie Lin's Staff",
      "score": 0.032012675,
      "title": "Councilmember Eddie Lin's Staff",
      "url": "https://www.seattle.gov/council/members/eddie-lin/staff",
      "xid": "x182340"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:13",
      "excerpt": "Councilmember Eddie Lin's committee schedule",
      "score": 0.011451941,
      "title": "Eddie's Committees & Calendar",
      "url": "https://www.seattle.gov/council/members/eddie-lin/committees-and-calendar",
      "xid": "x182339"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:11",
      "excerpt": "Names, election dates, and term lengths of Seattle's elected officials, including the Mayor, City Councilmembers, City Attorney, and ...",
      "score": 0.00511180749,
      "title": "Terms of Office for Elected Officials",
      "url": "https://www.seattle.gov/city-clerk/agendas-and-legislative-resources/terms-of-office-for-elected-officials",
      "xid": "x76513"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:04:48",
      "excerpt": "The City Charter was amended by voters in November 2013 via Charter Amendment 19. This provided that City Council would consist of nine ...",
      "score": 0.00511180749,
      "title": "2016-Present",
      "url": "https://www.seattle.gov/city-archives/seattle-facts/city-officials/city-council-members/city-council-2016-present",
      "xid": "x66052"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:40",
      "excerpt": "Sign up for multiple Seattle City Councilmembers' newsletters If you'd like to receive Councilmembers' newsletters, enter your ...",
      "score": 0.00446905,
      "title": "Newsletter Signup",
      "url": "https://www.seattle.gov/council/news-and-media/newsletter-signup",
      "xid": "x100772"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:04:56",
      "excerpt": "Historical materials in the archives related to Council District 2 in southeast Seattle Listed here is a small selection of records ...",
      "score": 0.00446905,
      "title": "Guide to SMA Resources for Council District 2",
      "url": "https://www.seattle.gov/city-archives/search-collections/resources-by-council-district/guide-to-council-district-2",
      "xid": "x110031"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:18",
      "excerpt": "Seattle’s Comprehensive Plan is a roadmap for where and how our city will grow and invest in our communities over the next 20 years and ...",
      "score": 0.00446905,
      "title": "Seattle's Comprehensive Plan",
      "url": "https://www.seattle.gov/council/topics/comprehensive-plan",
      "xid": "x159759"
    },
    {
      "asset_id": null,
      "changed": "2026-09-04T22:05:00",
      "excerpt": "Seattle is committed to protecting its people, especially those most impacted by recent federal policy changes, including our LGBTQIA+ and ...",
      "score": 0.00446905,
      "title": "Federal changes: Protecting our Seattle",
      "url": "https://www.seattle.gov/council/topics/federal-changes-protecting-our-seattle",
      "xid": "x175039"
    }
  ],
  "next_page": 2,
  "observed_at_ms": 1790276734522,
  "page": 1,
  "pagesize": 10,
  "source_url": "https://www.seattle.gov/searchresults?terms=eddie+lin&pagesize=10&page=1",
  "terms": "eddie lin",
  "to": 10,
  "total": 208
}
```

### Terms of office

- Capability: `seattle-city-government/terms_of_office`
- Description: The City Clerk's Terms of Office for Elected Officials page: for the Mayor, every City Council position, the City Attorney and each Municipal Court judge, the name, elected or appointed date, term length, term expiry and any footnote explaining a partial or appointed term.
- Instructions: Term dates for Seattle's elected officials, including those outside the council (mayor, city attorney, judges).
- Cost: 5 credits per call
- Capability file: [Terms of office](https://firecrawl.dev/alexandria/agents/providers/seattle-gov/seattle-city-government/terms_of_office)

Accepted options:

Response schema example:
```json
{
  "expanded_at": "2026-09-24T12:00:54",
  "footnotes": [
    {
      "marker": "*",
      "text": "Eddie Lin was elected in November 2025 to serve the remainder of the unexpired term of Tammy Morales, who resigned from the City Council in January 2025."
    },
    {
      "marker": "**",
      "text": "Debora Juarez was appointed to replace Cathy Moore, who resigned from the City Council in July 2025. As set out in the City Charter, Councilmember Juarez will serve \"until a successor is elected and qualified\" at a special election held in concert with the 2026 state general election."
    }
  ],
  "observed_at_ms": 1790276716806,
  "official_count": 18,
  "officials": [
    {
      "branch": "Executive",
      "date": "11/2025",
      "footnote": null,
      "footnote_marker": null,
      "name": "Katie Wilson",
      "office": "Mayor",
      "office_url": "https://www.seattle.gov/mayor",
      "position": null,
      "seat": null,
      "status": "elected",
      "term_expires": "12/2029",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "11/2023",
      "footnote": null,
      "footnote_marker": null,
      "name": "Rob Saka",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 1: District 1",
      "seat": "District 1",
      "status": "elected",
      "term_expires": "12/2027",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "11/2025",
      "footnote": "Eddie Lin was elected in November 2025 to serve the remainder of the unexpired term of Tammy Morales, who resigned from the City Council in January 2025.",
      "footnote_marker": "*",
      "name": "Eddie Lin",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 2: District 2",
      "seat": "District 2",
      "status": "elected",
      "term_expires": "12/2027",
      "term_length": "n/a"
    },
    {
      "branch": "Legislative",
      "date": "11/2023",
      "footnote": null,
      "footnote_marker": null,
      "name": "Joy Hollingsworth",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 3: District 3",
      "seat": "District 3",
      "status": "elected",
      "term_expires": "12/2027",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "11/2023",
      "footnote": null,
      "footnote_marker": null,
      "name": "Maritza Rivera",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 4: District 4",
      "seat": "District 4",
      "status": "elected",
      "term_expires": "12/2027",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "7/2025",
      "footnote": "Debora Juarez was appointed to replace Cathy Moore, who resigned from the City Council in July 2025. As set out in the City Charter, Councilmember Juarez will serve \"until a successor is elected and qualified\" at a special election held in concert with the 2026 state general election.",
      "footnote_marker": "**",
      "name": "Debora Juarez",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 5: District 5",
      "seat": "District 5",
      "status": "appointed",
      "term_expires": "11/2026",
      "term_length": "n/a"
    },
    {
      "branch": "Legislative",
      "date": "11/2023",
      "footnote": null,
      "footnote_marker": null,
      "name": "Dan Strauss",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 6: District 6",
      "seat": "District 6",
      "status": "elected",
      "term_expires": "12/2027",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "11/2023",
      "footnote": null,
      "footnote_marker": null,
      "name": "Robert Kettle",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 7: District 7",
      "seat": "District 7",
      "status": "elected",
      "term_expires": "12/2027",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "11/2025",
      "footnote": null,
      "footnote_marker": null,
      "name": "Alexis Mercedes Rinck",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 8: At-large",
      "seat": "Position 8",
      "status": "elected",
      "term_expires": "12/2029",
      "term_length": "4 years"
    },
    {
      "branch": "Legislative",
      "date": "11/2025",
      "footnote": null,
      "footnote_marker": null,
      "name": "Dionne Foster",
      "office": "City Council",
      "office_url": "https://www.seattle.gov/council",
      "position": "Position 9: At-large",
      "seat": "Position 9",
      "status": "elected",
      "term_expires": "12/2029",
      "term_length": "4 years"
    },
    {
      "branch": "Law",
      "date": "11/2025",
      "footnote": null,
      "footnote_marker": null,
      "name": "Erika Evans",
      "office": "City Attorney",
      "office_url": "https://www.seattle.gov/cityattorney",
      "position": null,
      "seat": null,
      "status": "elected",
      "term_expires": "12/2029",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Faye Chess",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Andrea Chin",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Anita Crawford-Willis",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Willie Gregory",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Catherine McDowall",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Damon Shadid",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    },
    {
      "branch": "Judicial",
      "date": "11/2022",
      "footnote": null,
      "footnote_marker": null,
      "name": "Pooja Vaddadi",
      "office": "Municipal Court",
      "office_url": "https://www.seattle.gov/courts/house.htm",
      "position": "Judge",
      "seat": null,
      "status": "elected",
      "term_expires": "12/2026",
      "term_length": "4 years"
    }
  ],
  "page_url": "https://www.seattle.gov/city-clerk/agendas-and-legislative-resources/terms-of-office-for-elected-officials",
  "page_xid": "x76513",
  "source_url": "https://www.seattle.gov/api/content/x76513/elements/Title,Excerpt,BodyCopy",
  "title": "Terms of Office for Elected Officials"
}
```
