Not a Friend Of

The API

Every tagline as static JSON. No key, no sign-up, nothing to install: fetch a file and go.

By the numbers

Endpoints

Every reference is a {name, url} pair you can follow. Lists come back as {count, next, previous, results}, and each list is a single page, so next is always null.

GET/v1/index.json

Start here: the data version, links to both collections, and the downloads.

/v1/index.json

Example response, lists cut to two items
{
  "version": "1.2.0",
  "updated": "2026-10-29",
  "notice": "Unofficial. Not affiliated with, sponsored by, or endorsed by Bravo or NBCUniversal. Tagline text is quoted from Bravo's programming and is not licensed by this site. Code and schema are MIT licensed.",
  "franchises": "https://notafriendof.siena.codes/v1/franchises.json",
  "housewives": "https://notafriendof.siena.codes/v1/housewives.json",
  "download": {
    "json": "https://notafriendof.siena.codes/v1/taglines.json",
    "csv": "https://notafriendof.siena.codes/v1/taglines.csv"
  }
}

GET/v1/franchises.json

Every franchise, as a named reference.

/v1/franchises.json

Example response, lists cut to two items
{
  "count": 7,
  "next": null,
  "previous": null,
  "results": [
    {
      "name": "The Real Housewives of Salt Lake City",
      "url": "https://notafriendof.siena.codes/v1/franchises/slc.json"
    },
    {
      "name": "The Real Housewives of Beverly Hills",
      "url": "https://notafriendof.siena.codes/v1/franchises/bh.json"
    },
    "… 5 more"
  ]
}

GET/v1/franchises/{slug}.json

One franchise: its eras, a reference to each season, and everyone who held a title card.

/v1/franchises/oc.json

Example response, lists cut to two items
{
  "slug": "oc",
  "name": "The Real Housewives of Orange County",
  "short_name": "Orange County",
  "abbreviation": "RHOC",
  "city": "Orange County",
  "premiered": 2006,
  "eras": [
    {
      "slug": "original",
      "name": "Original Run",
      "kind": "original",
      "seasons": [
        1,
        20
      ]
    }
  ],
  "seasons": [
    {
      "name": "Season 1",
      "url": "https://notafriendof.siena.codes/v1/franchises/oc/seasons/1.json"
    },
    {
      "name": "Season 2",
      "url": "https://notafriendof.siena.codes/v1/franchises/oc/seasons/2.json"
    },
    "… 18 more"
  ],
  "housewives": [
    {
      "name": "Vicki Gunvalson",
      "url": "https://notafriendof.siena.codes/v1/housewives/vicki-gunvalson.json"
    },
    {
      "name": "Jeana Keough",
      "url": "https://notafriendof.siena.codes/v1/housewives/jeana-keough.json"
    },
    "… 26 more"
  ]
}

GET/v1/franchises/{slug}/seasons/{number}.json

One season's cast: each housewife, her tagline, and its run, the seasons that same line covered.

/v1/franchises/oc/seasons/20.json

Example response, lists cut to two items
{
  "franchise": {
    "name": "The Real Housewives of Orange County",
    "url": "https://notafriendof.siena.codes/v1/franchises/oc.json"
  },
  "number": 20,
  "premiere": "2026-07-09",
  "era": {
    "slug": "original",
    "name": "Original Run",
    "kind": "original"
  },
  "cast": [
    {
      "housewife": {
        "name": "Carmella Garcia",
        "url": "https://notafriendof.siena.codes/v1/housewives/carmella-garcia.json"
      },
      "tagline": "I'm the center of attention and the centerfold.",
      "run": [
        20
      ]
    },
    {
      "housewife": {
        "name": "Emily Simpson",
        "url": "https://notafriendof.siena.codes/v1/housewives/emily-simpson.json"
      },
      "tagline": "My body may be new, but my mouth is the same as always.",
      "run": [
        20
      ]
    },
    "… 6 more"
  ]
}

GET/v1/housewives.json

Every housewife, as a named reference.

/v1/housewives.json

Example response, lists cut to two items
{
  "count": 146,
  "next": null,
  "previous": null,
  "results": [
    {
      "name": "Lisa Barlow",
      "url": "https://notafriendof.siena.codes/v1/housewives/lisa-barlow.json"
    },
    {
      "name": "Whitney Rose",
      "url": "https://notafriendof.siena.codes/v1/housewives/whitney-rose.json"
    },
    "… 144 more"
  ]
}

GET/v1/housewives/{slug}.json

One housewife and every tagline on record, with the seasons each one ran.

/v1/housewives/tamra-judge.json

Example response, lists cut to two items
{
  "slug": "tamra-judge",
  "name": "Tamra Judge",
  "credited_as": [
    "Tamra Barney"
  ],
  "franchise": {
    "name": "The Real Housewives of Orange County",
    "url": "https://notafriendof.siena.codes/v1/franchises/oc.json"
  },
  "taglines": [
    {
      "seasons": [
        {
          "name": "Season 3",
          "url": "https://notafriendof.siena.codes/v1/franchises/oc/seasons/3.json"
        }
      ],
      "tagline": "I'm the hottest housewife in Orange County."
    },
    {
      "seasons": [
        {
          "name": "Season 4",
          "url": "https://notafriendof.siena.codes/v1/franchises/oc/seasons/4.json"
        }
      ],
      "tagline": "I'm not the new girl anymore, so watch out."
    },
    "… 14 more"
  ]
}

GET/v1/taglines.json

The whole dataset in one file. If you want everything, take this instead of crawling.

/v1/taglines.json

Example response, lists cut to two items
{
  "$schema": "./schema.json",
  "version": "1.2.0",
  "updated": "2026-10-29",
  "coverage": {
    "slc": {
      "through_season": 6
    },
    "bh": {
      "through_season": 15
    },
    "ny": {
      "through_season": 16
    },
    "potomac": {
      "through_season": 11
    },
    "oc": {
      "through_season": 20
    },
    "nj": {
      "through_season": 14
    },
    "atl": {
      "through_season": 17
    }
  },
  "franchises": [
    {
      "slug": "slc",
      "name": "The Real Housewives of Salt Lake City",
      "short_name": "Salt Lake City",
      "abbreviation": "RHOSLC",
      "city": "Salt Lake City",
      "premiered": 2020,
      "seasons": 6,
      "premieres": [
        "2020-11-11",
        "2021-09-12",
        "… 4 more"
      ],
      "eras": [
        {
          "slug": "original",
          "name": "Original Run",
          "kind": "original",
          "seasons": [
            1,
            6
          ]
        }
      ]
    },
    {
      "slug": "bh",
      "name": "The Real Housewives of Beverly Hills",
      "short_name": "Beverly Hills",
      "abbreviation": "RHOBH",
      "city": "Beverly Hills",
      "premiered": 2010,
      "seasons": 15,
      "premieres": [
        "2010-10-14",
        "2011-09-05",
        "… 13 more"
      ],
      "eras": [
        {
          "slug": "original",
          "name": "Original Run",
          "kind": "original",
          "seasons": [
            1,
            15
          ]
        }
      ]
    },
    "… 5 more"
  ],
  "housewives": [
    {
      "slug": "lisa-barlow",
      "name": "Lisa Barlow",
      "franchise": "slc",
      "taglines": [
        {
          "seasons": [
            1
          ],
          "tagline": "When you take cheap shots, always expect a hangover."
        },
        {
          "seasons": [
            2
          ],
          "tagline": "You don't have to like me. I love myself enough for the both of us."
        },
        "… 4 more"
      ]
    },
    {
      "slug": "whitney-rose",
      "name": "Whitney Rose",
      "franchise": "slc",
      "taglines": [
        {
          "seasons": [
            1
          ],
          "tagline": "This rose isn't scared to handle a little prick."
        },
        {
          "seasons": [
            2
          ],
          "tagline": "In a town of beauties and beasts, there's only one wild rose."
        },
        "… 4 more"
      ]
    },
    "… 144 more"
  ]
}

GET/v1/taglines.csv

One row per season per housewife.

/v1/taglines.csv

Example response
franchise,franchise_abbr,season,housewife,housewife_slug,tagline,reused,run_seasons
slc,RHOSLC,1,Heather Gay,heather-gay,"Just like my pioneer ancestors, I'm trying to blaze a new trail.",false,1
slc,RHOSLC,1,Jen Shah,jen-shah,"In this town, I'm Queen Bee and MVP.",false,1
slc,RHOSLC,1,Lisa Barlow,lisa-barlow,"When you take cheap shots, always expect a hangover.",false,1

Fair use

There is no rate limit and no key, because every response is a static file. Please cache what you fetch, and if you want everything, take taglines.json once instead of crawling. Responses send Access-Control-Allow-Origin: *, so you can call the API from any web page.

Tagline text is quoted from Bravo's programming and is not licensed by this site, so permission to reuse it is not ours to give.