Facebook Pages — Authoritative List of Categories - facebook

I'm trying to find out about a Facebook user's interests based on pages they like, etc. It would be useful to have the list of possible page categories. I have made a rough list based on the dropdown menus from the page creation form, but the values in this are slightly different to those returned by the Graph API (e.g. "Sports_teams" as opposed to "Sports team").
So, what I'd like to know is:
Where can I find a complete list of available categories, in the form that I'll see them when I query the Graph API?
Are these strings localised? If so, where can I find the en_GB ones?
Thanks in advance for your help.
Ross
BTW, my list of categories is:
19,Band
19,Musician
68,Restaurant
88,Film
89,TV Programme
91,Technology product/service
92,Financial Service
94,Fashion
108,Museum/attraction
109,Park
110,Travel
111,Hotel/B&B/Hostel
112,Hotel/B&B/Hostel
113,Travel service
114,Airline/Ship/Train Station
115,Convention or sports centre
116,Car Hire
117,Home living
121,Café
123,Health and beauty
124,Education
125,Event planning service
126,Banking and financial service
127,Technology and telecommunications service
129,Medical service
130,Home service
131,Car Dealer/Vehicle Service
132,Local business
133,Pharmaceutical
134,Pets
135,Professional service
136,Professional service
137,Property
138,Food & drink
139,Supermarket
140,Automotive
141,Consumer product
142,Sports/athletics
143,Retail
144,Shop
145,Online shop
147,Religious organisation
148,Religious centre
149,Library/Public Building
150,Government
151,Politician
152,Non-profit
154,Game
156,Sports team
157,Actor
158,Model
159,Comedian
160,Visual artist
161,Writer
162,Critic
163,Public figure
164,Club
165,Pub/bar
167,Website
169,Athlete
170,Communications
176,Products
349,Government Official

I took the time to document a script that can grab the above data in JSON format. For anyone interested, check out this gist. The list of categories that I got as of March 23, 2012 is:
{
"1105": "Movie",
"1108": "Producer",
"1109": "Writer",
"1112": "TV/Movie Award",
"1113": "Fictional Character",
"1114": "Movie Character",
"1200": "Album",
"1201": "Song",
"1207": "Music Video",
"1208": "Concert Tour",
"1210": "Radio Station",
"1211": "Record Label",
"1212": "Music Award",
"1213": "Music Chart",
"1300": "Book",
"1301": "Author",
"1307": "Magazine",
"1309": "Book Series",
"1400": "TV Show",
"1402": "TV Network",
"1404": "TV Channel",
"1600": "Athlete",
"1601": "Artist",
"1602": "Public Figure",
"1604": "Journalist",
"1605": "News Personality",
"1606": "Chef",
"1607": "Lawyer",
"1610": "Comedian",
"1613": "Teacher",
"1614": "Dancer",
"1617": "Entrepreneur",
"1700": "Politician",
"1701": "Government Official",
"1800": "Sports League",
"1801": "Sports Team",
"1802": "Coach",
"1803": "Amateur Sport Team",
"1804": "School Sports Team",
"2200": "Company",
"2201": "Product/Service",
"2202": "Website",
"2205": "Cars",
"2206": "Bags/Luggage",
"2208": "Camera/Photo",
"2209": "Clothing (Brand)",
"2210": "Computers (Brand)",
"2211": "Software",
"2213": "Electronics",
"2214": "Health/Beauty",
"2216": "Building Materials",
"2217": "Commercial Equipment",
"2219": "Furniture",
"2220": "Household Supplies",
"2222": "Patio/Garden",
"2223": "Tools/Equipment",
"2224": "Wine/Spirits",
"2226": "Jewelry/Watches",
"2230": "Pet Supplies",
"2231": "Outdoor & Sporting Goods Company",
"2232": "Baby Goods/Kids Goods",
"2233": "Media/News Company",
"2234": "Finance Company",
"2235": "Non-Governmental Organization (NGO)",
"2236": "Insurance Company",
"2238": "Energy Company",
"2239": "Retail Company",
"2240": "Automotive Company",
"2241": "Industrial Company",
"2243": "Medical Company",
"2244": "Aerospace Company",
"2245": "Mining Company",
"2246": "Agriculture Company",
"2248": "Consulting Agency",
"2249": "Legal Company",
"2250": "Education",
"2252": "Food & Beverage Company",
"2253": "Telecommunication Company",
"2255": "Computer Company",
"2256": "Internet Company",
"2257": "Tobacco Company",
"2258": "Travel Company",
"2262": "Vitamins/Supplements",
"2263": "Pharmaceuticals",
"2265": "Phone/Tablet",
"2300": "Games/Toys",
"2301": "App Page",
"2303": "Board Game",
"2500": "Local Business",
"2505": "Transit Stop",
"2601": "School",
"2602": "College & University",
"2603": "Non-Profit Organization",
"2606": "Cause",
"2618": "Political Party",
"2632": "Pet",
"2637": "Middle School",
"1757592557789532": "Advertising/Marketing Service",
"1574325646194878": "Agriculture",
"128966563840349": "Airport",
"1086422341396773": "Apparel",
"133436743388217": "Arts & Entertainment",
"180410821995109": "Automotive",
"125178521242121": "Aviation",
"110290705711626": "Bar",
"139225689474222": "Beauty",
"197048876974331": "Book Store",
"1728747447366202": "Business",
"187133811318958": "Business Service",
"917138848432787": "Casino & Gaming",
"557045641143373": "Design",
"188234584533149": "Doctor",
"806240166180298": "Environmental Service",
"193705277324704": "Event Planning Service",
"871941916244102": "Fashion",
"1022050661163852": "Finance",
"150108431712141": "Grocery Store",
"108427109235243": "Home Improvement",
"1025733874177680": "Home Improvement Service",
"1730236023904374": "Home Service",
"133152263416981": "Hospital/Clinic",
"164243073639257": "Hotel",
"505091123022329": "Hotel & Lodging",
"209889829023118": "Landmark & Historical Place",
"241113486274430": "Legal",
"169896676390222": "Library",
"1758418281071392": "Local Service",
"1422088814483501": "Marine",
"145118935550090": "Medical & Health",
"192511100766680": "Movie Theater",
"179943432047564": "Performance & Sports Venue",
"144982405562750": "Pet Service",
"147714868971098": "Public Services & Government",
"198327773511962": "Real Estate",
"186982054657561": "Recreation & Fitness",
"187714557925874": "Religious Organization",
"273819889375819": "Restaurant",
"200600219953504": "Shopping/Retail",
"109976259083543": "Stadium, Arena & Sports Venue",
"124861974254366": "Tour Agency",
"145887745471348": "Train Station",
"150148928375567": "Biotechnology Company",
"184395321600410": "Cargo & Freight Company",
"191334714243008": "Chemical Company",
"152880021441864": "Community Organization",
"170968163319233": "Community Service",
"140234236045713": "Elementary School",
"161422927240513": "Government Organization",
"110152272401235": "High School",
"192775991124365": "Labor Union",
"198503866828628": "Organization",
"373543049350668": "Political Organization",
"180551801986954": "Preschool",
"297544187300691": "Science & Engineering",
"150060378385891": "Appliances",
"1605186416478696": "Brand",
"192647794097278": "Home Decor",
"132852590115660": "Kitchen/Cooking",
"110249975723427": "Office Supplies",
"211579738882707": "Video Game",
"1602034176774683": "Actor",
"792007097567368": "Band",
"361282040719868": "Blogger",
"1784467105117322": "Fashion Model",
"502966423232592": "Film Director",
"301500100194179": "Fitness Model",
"1720316034885300": "Motivational Speaker",
"1335670856447673": "Musician",
"181475575221097": "Photographer",
"842783295865930": "Political Candidate",
"494338820719492": "Scientist",
"596582600510249": "Festival",
"856055631167537": "Literary Arts",
"370369022981015": "Movie/Television Studio",
"756092301147942": "Performance Art",
"1758092431143387": "Performing Arts",
"627651640670228": "Podcast",
"943469559038367": "Theatrical Play",
"1784293938474260": "Theatrical Productions"
}

I gathered a random sample of 105k pages using Facebook's search api and got 197 page categories, way more than the 147 that appear on the "create page" webpage. This is the list:
Actor/director
Aerospace/defense
Airport
Album
Amateur sports team
Anatomical structure
Animal
Animal breed
App
App page
Appliances
Artist
Arts/entertainment/nightlife
Arts/humanities website
Athlete
Attractions/things to do
Author
Automobiles and parts
Automotive
Baby goods/kids goods
Bags/luggage
Bank/financial institution
Bank/financial services
Bar
Biotechnology
Book
Book genre
Book store
Building materials
Business person
Business services
Business/economy website
Camera/photo
Cars
Cause
Chef
Chemicals
Church/religious organization
City
Clothing
Club
Coach
Color
Comedian
Commercial equipment
Community
Community organization
Community/government
Company
Computers
Computers/internet website
Computers/technology
Concert tour
Concert venue
Consulting/business services
Continent
Country
Dancer
Degree
Diseases
Doctor
Drink
Drugs
Editor
Education
Education website
Electronics
Energy/utility
Engineering/construction
Entertainer
Entertainment website
Episode
Event planning/event services
Farming/agriculture
Fictional character
Field of study
Food
Food/beverages
Food/grocery
Furniture
Games/toys
Government official
Government organization
Government website
Health/beauty
Health/medical/pharmaceuticals
Health/medical/pharmacy
Health/wellness website
Home decor
Home improvement
Home/garden website
Hospital/clinic
Hotel
Household supplies
Industrials
Insurance company
Interest
Internet/software
Jewelry/watches
Journalist
Kitchen/cooking
Landmark
Language
Lawyer
Legal/law
Library
Local business
Local/travel website
Magazine
Media/news/publishing
Medical procedure
Mining/materials
Monarch
Movie
Movie general
Movie genre
Movie theater
Movies/music
Museum/art gallery
Music
Music award
Music chart
Music video
Musical genre
Musical instrument
Musician/band
Neighborhood
News personality
News/media website
Non-governmental organization (ngo)
Non-profit organization
Office supplies
Organization
Other
Outdoor gear/sporting goods
Patio/garden
Personal blog
Personal website
Pet services
Pet supplies
Playlist
Political ideology
Political organization
Political party
Politician
Producer
Product/service
Professional services
Professional sports team
Public figure
Public places
Publisher
Radio station
Real estate
Record label
Recreation/sports website
Reference website
Regional website
Religion
Restaurant/cafe
Retail and consumer merchandise
School
School sports team
Science website
Shopping/retail
Small business
Society/culture website
Software
Song
Spas/beauty/personal care
Sport
Sports league
Sports venue
Sports/recreation/activities
State/province/region
Studio
Teacher
Teens/kids website
Telecommunication
Tools/equipment
Tours/sightseeing
Transit stop
Transport/freight
Transportation
Travel/leisure
Tv
Tv channel
Tv genre
Tv network
Tv show
Tv/movie award
University
Vitamins/supplements
Website
Wine/spirits
Work position
Writer
In case you're wondering, this is the code I used (python):
categories = set()
graph = facebook.GraphAPI(token)
for i in xrange(20):
for j in xrange(10):
q = chr(97+i)+chr(97+j)
for r in graph.request("search", {"q": q, "type":"page", "limit": 1000})["data"]:
categories.add(str(r["category"]))
Basically perform a bunch of random 2 character long queries and gather the resulting pages. It works!

As of Dec-2014 i got the following list with search API (Graph API version v2.2)
https://developers.facebook.com/docs/graph-api/using-graph-api/v2.2#search
Returns a list of possible place Page topics and their IDs. Use with
topic_filter=all parameter to get the full list.
search?type=placetopic&topic_filter=all
"Abortion Services"
"Accessories Store"
"Accountant"
"Active Life"
"Acupuncture"
"Addiction Resources"
"Admissions Training"
"Adoption Service"
"Adult Education"
"Adult Entertainment"
"Advertising Agency"
"Advertising Service"
"Afghani Restaurant"
"African Methodist Episcopal Church"
"African Restaurant"
"Agricultural Service"
"AIDS Resources"
"Airline Industry Services"
"Airline"
"Airport Lounge"
"Airport Shuttle"
"Airport Terminal"
"Airport"
"Allergist"
"Allergy Doctor"
"Alternative & Holistic Health"
"Ambulance & Rescue"
"American Restaurant"
"Amusement Park Ride"
"Amusement"
"Anglican Church"
"Animal Shelter"
"Antique Store"
"Antiques & Vintage"
"Apartment & Condo Building"
"Apostolic Church"
"Appliances"
"Appraiser"
"Arcade"
"Archaeological Services"
"Archery"
"Architect"
"Argentine Restaurant"
"Armed Forces"
"Armored Cars"
"Aromatherapy"
"Art Gallery"
"Art Museum"
"Art Restoration"
"Art School"
"Artistic Services"
"Arts & Crafts Supply Store"
"Arts & Entertainment"
"Arts & Marketing"
"Asian Fusion Restaurant"
"Asian Restaurant"
"Assembly of God"
"Athletic Education"
"ATVs & Golf Carts"
"Auction House"
"Audiologist"
"Audiovisual Equipment"
"Auditorium"
"Auto Body Shop"
"Auto Glass"
"Automation Services"
"Automobile Leasing"
"Automotive Consultant"
"Automotive Customizing"
"Automotive Manufacturing"
"Automotive Parts & Accessories"
"Automotive Repair"
"Automotive Restoration"
"Automotive Storage"
"Automotive Trailer Services"
"Automotive Wholesaler"
"Automotive"
"Aviation Fuel"
"Aviation School"
"Awnings & Canopies"
"Babysitter"
"Bail Bonds"
"Bakery"
"Bands & Musicians"
"Bank Equipment & Service"
"Bank"
"Bankruptcy Lawyer"
"Baptist Church"
"Bar & Grill"
"Bar"
"Barbecue Restaurant"
"Barber Shop"
"Bartending Service"
"Basque Restaurant"
"Batting Cage"
"Beach Resort"
"Beach"
"Beauty Salon"
"Bed and Breakfast"
"Beer Garden"
"Belgian Restaurant"
"Big Box Retailer"
"Bike Rental & Bike Share"
"Bike Shop"
"Bingo Hall"
"Biotechnology"
"Blinds & Curtains"
"Blood Bank"
"Boat Dealer"
"Boat Rental"
"Boat Service"
"Boating"
"Book & Magazine Distribution"
"Book Store"
"Borough"
"Bowling Alley"
"Brazilian Restaurant"
"Breakfast & Brunch Restaurant"
"Brewery"
"Bridal Shop"
"Bridge"
"British Restaurant"
"Broadcasting & Media Production"
"Brokers & Franchising"
"Buddhist Temple"
"Buffet Restaurant"
"Burger Restaurant"
"Burial & Cremation Service"
"Burmese Restaurant"
"Bus Line"
"Bus Station"
"Business Center"
"Business Consultant"
"Business Services"
"Business Supply Service"
"Butcher"
"Cabin"
"Cabinets & Countertops"
"Cable & Satellite Service"
"Cafe"
"Cafeteria"
"Cajun & Creole Restaurant"
"Cambodian Restaurant"
"Camera Store"
"Camp"
"Campground"
"Campus Building"
"Canadian Restaurant"
"Candy Store"
"Cantonese Restaurant"
"Car Dealership"
"Car Parts & Accessories"
"Car Rental"
"Car Wash & Detailing"
"Cargo & Freight"
"Caribbean Restaurant"
"Carnival Supplies"
"Carpenter"
"Carpet & Flooring Store"
"Carpet Cleaner"
"Cash Advance Service"
"Casino"
"Caterer"
"Catholic Church"
"Cemetery"
"Charismatic Church"
"Charity Organization"
"Charter Buses"
"Cheerleading"
"Chemicals & Gasses"
"Chicken Restaurant"
"Chicken Wings"
"Child Care"
"Child Protective Services"
"Children's Clothing Store"
"Chinese Restaurant"
"Chiropractor"
"Christian Church"
"Christian Science Church"
"Church of Christ"
"Church of God"
"Church of Jesus Christ of Latter-day Saints"
"Church"
"Circus"
"City Hall"
"City"
"Classes"
"Cleaning Service"
"Clergy"
"Clinic"
"Clothing Store"
"Clothing Supply & Distribution"
"Clubhouse"
"Coffee Shop"
"Collectibles Store"
"Collection Agency"
"College & University"
"Comedy Club"
"Comic Book Store"
"Commercial & Industrial Equipment"
"Commercial & Industrial"
"Commercial Automotive"
"Commercial Bank"
"Commercial Real Estate"
"Community & Government"
"Community Center"
"Community Organization"
"Computer Services"
"Computer Store"
"Computer Training"
"Computers & Electronics"
"Concert Venue"
"Concrete Contractor"
"Congregational Church"
"Construction Service & Supply"
"Consulate & Embassy"
"Continental Restaurant"
"Contractor"
"Convenience Store"
"Convent & Monastery"
"Convention Center"
"Cooking Lesson"
"Copying & Printing"
"Copyright Lawyer"
"Copywriting Service"
"Corporate Lawyer"
"Corporate Office"
"Cosmetics & Beauty Supply"
"Costume Shop"
"Cottage"
"Counseling & Mental Health"
"Country"
"County"
"Courthouse"
"Credit Counseling"
"Crêperie"
"Criminal Lawyer"
"Crisis Prevention Center"
"Cruise Excursions"
"Cruise"
"Cuban Restaurant"
"Culinary School"
"Cultural Gifts Store"
"Cupcake Shop"
"Currency Exchange"
"Cyber Cafe"
"Damage Restoration Service"
"Dance Club"
"Dance Instruction"
"Dating Service"
"Day Care & Preschool"
"Day Spa"
"Deck & Patio"
"Deli"
"Dental Equipment"
"Dentist"
"Department Store"
"Dermatologist"
"Dessert Restaurant"
"Dim Sum Restaurant"
"Diner"
"Direct Mail Service"
"Disability Services"
"Disabled Persons Services"
"Disaster Relief"
"Discount Store"
"Dive Bar"
"Divorce & Family Lawyer"
"DJ"
"DMV"
"Doctor"
"Document Service"
"Dog Training"
"Dog Walker"
"Donuts & Bagels"
"Dorm"
"Drinking Water Distribution"
"Drive In Restaurant"
"Driving Range"
"Driving School"
"Drug & Alcohol Rehab"
"Drugstore"
"Dry Cleaner"
"DVD & Video Store"
"Eastern Orthodox Church"
"Eco Tours"
"Education"
"Educational Camp"
"Educational Consultant"
"Educational Organization"
"Educational Research"
"Educational Service"
"Educational Supplies"
"Electrician"
"Electronic Equipment Service"
"Electronics Store"
"Elementary School"
"Elevator Services"
"Email Marketing"
"Emergency Roadside Service"
"Emissions Inspection"
"Employment Agency"
"Employment Lawyer"
"Engineering Service"
"Entertainer"
"Entertainment Service"
"Environmental Conservation"
"Environmental Consultant"
"Episcopal Church"
"Equipment Service & Supply"
"Escrow Services"
"Estate Lawyer"
"Estate Planning"
"Esthethics"
"Ethiopian Restaurant"
"Ethnic Grocery Store"
"Evangelical Church"
"Event Planner"
"Event Planning"
"Event Venue"
"Event"
"Excavation & Wrecking"
"Exchange Program"
"Exotic Car Rental"
"Eyewear"
"Fairground"
"Family Doctor"
"Family Medicine Practice"
"Family Style Restaurant"
"Farm"
"Farmers Market"
"Fashion Designer"
"Fast Food Restaurant"
"Ferry & Boat"
"Filipino Restaurant"
"Financial Aid"
"Financial Planning"
"Financial Services"
"Fine Dining Restaurant"
"Fire Protection"
"Fire Station"
"Fireplaces"
"Fireproofing"
"Fireworks Retailer"
"First Aid Class"
"First Aid Service"
"Fish & Chips Shop"
"Fishing"
"Fitness Center"
"Flea Market"
"Florist"
"Fondue Restaurant"
"Food & Beverage Service & Distribution"
"Food & Grocery"
"Food & Restaurant"
"Food Consultant"
"Food Stand"
"Food Truck"
"Forestry & Logging"
"Formal Wear"
"Franchising Service"
"French Restaurant"
"Frozen Yogurt Shop"
"Fruit & Vegetable Store"
"Full Gospel Church"
"Funeral Service"
"Furniture Repair"
"Furniture Store"
"Garage Door Services"
"Garden Center"
"Gardener"
"Gas & Chemical Service"
"Gas Station"
"Gastropub"
"Gay Bar"
"Genealogist"
"Geologic Service"
"German Restaurant"
"Gift Shop"
"Glass Products"
"Glass Service"
"Gluten-Free Restaurant"
"Go Karting"
"Golf Course"
"Government Organization"
"Governmental Law"
"Graphic Design"
"Greek Restaurant"
"Grocery Store"
"Gun Range"
"Gun Store"
"Gym"
"Hair & Beauty Supply"
"Hair Removal"
"Hair Replacement"
"Hair Salon"
"Hairpieces & Extensions"
"Halal Restaurant"
"Halfway House"
"Handwriting Service"
"Hardware & Tools Service"
"Hardware Store"
"Hawaiian Restaurant"
"Health Agency"
"Health Care Administration"
"Health Food Restaurant"
"Health Food Store"
"Health Spa"
"Healthcare Administrator"
"Heating, Ventilating & Air Conditioning"
"High School"
"Highway"
"Himalayan Restaurant"
"Hindu Temple"
"Historical Place"
"History Museum"
"Holiness Church"
"Home Cleaning"
"Home Decor"
"Home Improvement"
"Home Inspection"
"Home Security"
"Home Theater Store"
"Home Window Service"
"Home"
"Hookah Lounge"
"Horse-Drawn Vehicles"
"Horses"
"Hospital"
"Hospitality Service"
"Hostel"
"Hot Air Balloons"
"Hot Dog Joint"
"Hot Dog Stand"
"Hotel Supply Service"
"Hotel"
"House Sitter"
"Housewares"
"Housing & Homeless Shelter"
"Housing Assistance Service"
"Hungarian Restaurant"
"Hunting and Fishing"
"Ice Cream Parlor"
"Ice Machines"
"Ice Skating"
"Image Consultant"
"Independent Church"
"Indian Restaurant"
"Indonesian Restaurant"
"Inn"
"Insurance Agent"
"Insurance Broker"
"Interdenominational Church"
"Interior Designer"
"Internal Medicine"
"International Restaurant"
"Internet Cafe"
"Internet Service Provider"
"Inventory Control Service"
"Investing Service"
"Irish Restaurant"
"Island"
"Italian Restaurant"
"Janitorial Service"
"Japanese Restaurant"
"Jazz Club"
"Jewelry Store"
"Jewelry Supplier"
"Junior High School"
"Just For Fun"
"Juvenile Law"
"Karaoke"
"Kennel"
"Kingdom Hall"
"Kitchen Construction"
"Kitchen Supplies"
"Korean Restaurant"
"Kosher Restaurant"
"Labor & Employment Law"
"Laboratory Equipment"
"Lake"
"Landmark"
"Landscaping"
"Language School"
"Laser Hair Removal"
"Laser Tag"
"Late Night Restaurant"
"Latin American Restaurant"
"Laundromat"
"Law Enforcement"
"Law Practice"
"Lebanese Restaurant"
"Library"
"Lifestyle Services"
"Lighting Fixtures"
"Limo Service"
"Liquor Store"
"Live & Raw Food Restaurant"
"Loans"
"Lobbyist"
"Local Education"
"Locksmith"
"Lodge"
"Lodging"
"Lottery Retailer"
"Lounge"
"Luggage Service"
"Lutheran Church"
"Maid & Butler"
"Makeup Artist"
"Malaysian Restaurant"
"Malpractice Law"
"Management Service"
"Manufacturing"
"Marina"
"Marine Equipment"
"Marine Service Station"
"Market Research Consultant"
"Market"
"Marketing Consultant"
"Martial Arts"
"Masonry"
"Massage"
"Mattress Manufacturing"
"Mattress Wholesale"
"Mattresses & Bedding"
"Meat Shop"
"Medical & Health"
"Medical Center"
"Medical Equipment"
"Medical Lab"
"Medical Research"
"Medical School"
"Medical Spa"
"Medical Supplies"
"Mediterranean Restaurant"
"Meeting Room"
"Mennonite Church"
"Men's Clothing Store"
"Merchandising Service"
"Metals"
"Methodist Church"
"Mexican Restaurant"
"Middle Eastern Restaurant"
"Middle School"
"Military Base"
"Miniature Golf"
"Mission"
"Mobile Homes"
"Mobile Phone Shop"
"Modeling Agency"
"Modern Art Museum"
"Modern European Restaurant"
"Mongolian Restaurant"
"Monument"
"Moroccan Restaurant"
"Mortgage Brokers"
"Mosque"
"Motel"
"Motorcycle Repair"
"Motorcycles"
"Mountain Biking"
"Mountain"
"Mover"
"Movie & Television Studio"
"Movie Theatre"
"Museum"
"Music Lessons & Instruction"
"Music Production"
"Music Store"
"Musical Instrument Store"
"Nail Salon"
"Nanny"
"National Park"
"Nazarene Church"
"Neighborhood"
"Nepalese Restaurant"
"New American Restaurant"
"Newspaper"
"Night Club"
"Nightlife"
"Nondenominational Church"
"Notary Public"
"Nursing Home"
"Nursing"
"Nutritionist"
"OBGYN"
"Occupational Safety"
"Occupational Therapist"
"Ocean"
"Office Supplies"
"Oil Lube & Filter Service"
"Oncologist"
"Ophthalmologist"
"Optometrist"
"Orchestra"
"Organization"
"Other"
"Otolaryngologist"
"Outdoor Equipment Store"
"Outdoor Recreation"
"Outdoor Services"
"Outdoors"
"Outlet Store"
"Packaging Supplies & Equipment"
"Paintball"
"Painter"
"Pakistani Restaurant"
"Park"
"Parking"
"Party Center"
"Party Supplies"
"Passport & Visa Service"
"Patent Trademark & Copyright Law"
"Patrol & Security"
"Paving & Asphalt Service"
"Pawn Shop"
"Pediatrics"
"Pentecostal Church"
"Performance Venue"
"Performing Arts Education"
"Persian Restaurant"
"Personal Coaching"
"Personal Trainer"
"Peruvian Restaurant"
"Pest Control"
"Pet Breeder"
"Pet Cemetery"
"Pet Groomer"
"Pet Service"
"Pet Sitter"
"Pet Store"
"Petroleum Services"
"Petting Zoo"
"Pharmacy"
"Pho Restaurant"
"Photographer"
"Photographic Services & Equipment"
"Physical Fitness"
"Physical Therapist"
"Physician Assistant"
"Picnic Ground"
"Pizza Place"
"Plastic Surgery"
"Plastics"
"Playground"
"Plumber"
"Podiatrist"
"Police Station"
"Polish Restaurant"
"Political Organization"
"Polynesian Restaurant"
"Pool & Billiards"
"Port"
"Portable Building Service"
"Portable Toilet Rentals"
"Portuguese Restaurant"
"Post Office"
"Pregnancy & Childbirth Service"
"Presbyterian Church"
"Preschool"
"Printing Service"
"Prison & Correctional Facility"
"Private Investigator"
"Private Plane Charter"
"Private School"
"Private Transportation"
"Professional Services"
"Promotional Item Services"
"Property Law"
"Property Management"
"Psychic"
"Psychologist"
"Pub"
"Public Places & Attractions"
"Public Relations"
"Public School"
"Public Services"
"Public Square"
"Public Transportation"
"Public Utility"
"Publisher"
"Race Cars"
"Race Track"
"Racquetball Court"
"Radio & Communication Equipment"
"Rafting"
"Railroad"
"Ramen Restaurant"
"Real Estate Agent"
"Real Estate Appraiser"
"Real Estate Developer"
"Real Estate Investment"
"Real Estate Lawyer"
"Real Estate Service"
"Real Estate Title & Development"
"Real Estate"
"Recreation Center"
"Recreational Vehicle Dealer"
"Recruiter"
"Recycling & Waste Management"
"Refrigeration Sales & Service"
"Refrigeration"
"Region"
"Religious Book Store"
"Religious Center"
"Religious Organization"
"Religious School"
"Rent to Own Store"
"Rental Company"
"Rental Shop"
"Repair Service"
"Reproductive Services"
"Research Service"
"Reservoir"
"Residence & Other"
"Resort"
"Restaurant Supply"
"Restaurant Wholesale"
"Restaurant"
"Retirement & Assisted Living Facility"
"River"
"Robotics"
"Rock Climbing"
"Rodeo"
"Roller Coaster"
"Roofer"
"Rubber Service & Supply"
"Russian Restaurant"
"RV Dealership"
"RV Park"
"RV Repair"
"Safety & First Aid Service"
"Salad Bar"
"Salvation Army"
"Sandwich Shop"
"Scandinavian Restaurant"
"School Fundraiser"
"School Transportation"
"School"
"Scooter Rental"
"Screen Printing & Embroidery"
"Scuba Diving"
"Seafood Restaurant"
"Seasonal Store"
"Secretarial Service"
"Security"
"Senior Center"
"Septic Tank Service"
"Service Station Supply"
"Seventh Day Adventist Church"
"Sewer Service"
"Sewing & Seamstress"
"Shoe Store"
"Shopping & Retail"
"Shopping District"
"Shopping Mall"
"Shopping Service"
"Signs & Banner Service"
"Sikh Temple"
"Singaporean Restaurant"
"Ski & Snowboard School"
"Ski Resort"
"Skin Care"
"Sky Diving"
"Smog Check Station"
"Smoothie & Juice Bar"
"Snowmobiles"
"Social Club"
"Social Services"
"Solar Energy Service"
"Sorority & Fraternity"
"Soul Food Restaurant"
"Soup Restaurant"
"Southern Restaurant"
"Southwestern Restaurant"
"Spa"
"Spa, Beauty & Personal Care"
"Spanish Restaurant"
"Specialty Grocery Store"
"Specialty School"
"Speech Pathologist"
"Sporting Goods Store"
"Sports & Recreation"
"Sports Bar"
"Sports Center"
"Sports Club"
"Sports Instruction"
"Sports Promoter"
"Sports Venue & Stadium"
"Sportswear"
"Startup"
"State Park"
"State"
"Statue & Fountain"
"Steakhouse"
"Storage Service"
"Storage"
"Street"
"Subway & Light Rail Station"
"Supply & Distribution Services"
"Surfing Spot"
"Surveyor"
"Sushi Restaurant"
"Swimming Pool Maintenance"
"Swimming Pool"
"Swimwear"
"Symphony"
"Synagogue"
"Taiwanese Restaurant"
"Take Out Restaurant"
"Tanning Salon Supplier"
"Tanning Salon"
"Tapas Bar & Restaurant"
"Tattoo & Piercing"
"Tax Preparation"
"Taxi"
"Taxidermist"
"Tea Room"
"Technical Institute"
"Teeth Whitening"
"Telemarketing Service"
"Tennis"
"Tex-Mex Restaurant"
"Textiles"
"Thai Restaurant"
"Theatre"
"Theatrical Equipment"
"Theme Park"
"Thrift or Consignment Store"
"Ticket Sales"
"Tire Dealer"
"Tobacco Store"
"Tools Service"
"Tour Company"
"Tour Guide"
"Tourist Attraction"
"Tourist Information"
"Tours & Sightseeing"
"Towing Service"
"Toy Store"
"Trade School"
"Traffic School"
"Trailer Rental"
"Train Station"
"Translator"
"Transportation Service"
"Travel & Transportation"
"Travel Agency"
"Trophies & Engraving"
"Truck Rental"
"Truck Towing"
"Turkish Restaurant"
"Tutoring"
"Upholstery Service"
"Urban Farm"
"Vacation Home Rental"
"Vegetarian & Vegan Restaurant"
"Vending Machine Service"
"Veterinarian"
"Video Games"
"Vietnamese Restaurant"
"Vintage Store"
"Wallpaper"
"Warehouse"
"Waste Management"
"Water Filtration & Treatment"
"Water Park"
"Web Design"
"Web Development"
"Wedding Planning"
"Well Water Drilling Service"
"Wholesale & Supply Store"
"Wig Store"
"Wildlife Sanctuary"
"Wills & Estate Lawyer"
"Window Service & Repair"
"Wine Bar"
"Winery & Vineyard"
"Women's Clothing Store"
"Women's Health"
"Workplace & Office"
"Writing Service"
"Yoga & Pilates"
"Youth Organization"
"Zoo & Aquarium"

this should be the complete list, reverse engineered as mentioned above:
2506,Airport
2508,Arts/Entertainment/Nightlife
2523,Attractions/Things to Do
2509,Automotive
2512,Bank/Financial Services
2100,Bar
1305,Book Store
2518,Business Services
2264,Church/Religious Organization
2101,Club
2519,Community/Government
1209,Concert Venue
2250,Education
2511,Event Planning/Event Services
2513,Food/Grocery
2514,Health/Medical/Pharmacy
2515,Home Improvement
2527,Hospital/Clinic
2501,Hotel
2503,Landmark
1306,Library
2500,Local Business
1111,Movie Theater
2528,Museum/Art Gallery
2231,Outdoor Gear/Sporting Goods
2516,Pet Services
2517,Professional Services
2522,Public Places
2520,Real Estate
1900,Restaurant/Cafe
2601,School
2521,Shopping/Retail
2510,Spas/Beauty/Personal Care
2507,Sports Venue
2524,Sports/Recreation/Activities
2525,Tours/Sightseeing
2505,Transit Stop
2526,Transportation
2602,University
2244,Aerospace/Defense
2240,Automobiles and Parts
2234,Bank/Financial Institution
2254,Biotechnology
2606,Cause
2247,Chemicals
2264,Church/Religious Organization
2260,Community Organization
2200,Company
2255,Computers/Technology
2248,Consulting/Business Services
2250,Education
2238,Energy/Utility
2251,Engineering/Construction
2246,Farming/Agriculture
2252,Food/Beverages
2604,Government Organization
2214,Health/Beauty
2243,Health/Medical/Pharmaceuticals
2241,Industrials
2236,Insurance Company
2256,Internet/Software
2249,Legal/Law
2233,Media/News/Publishing
2245,Mining/Materials
2235,Non-Governmental Organization (NGO)
2603,Non-Profit Organization
2600,Organization
2261,Political Organization
2618,Political Party
2239,Retail and Consumer Merchandise
2601,School
2237,Small Business
2253,Telecommunication
2242,Transport/Freight
2258,Travel/Leisure
2602,University
2301,App
2215,Appliances
2232,Baby Goods/Kids Goods
2206,Bags/Luggage
2216,Building Materials
2208,Camera/Photo
2205,Cars
2209,Clothing
2217,Commercial Equipment
2210,Computers
2263,Drugs
2213,Electronics
2252,Food/Beverages
2219,Furniture
2300,Games/Toys
2214,Health/Beauty
2218,Home Decor
2220,Household Supplies
2226,Jewelry/Watches
2221,Kitchen/Cooking
2227,Movies/Music
1204,Musical Instrument
2212,Office Supplies
2231,Outdoor Gear/Sporting Goods
2222,Patio/Garden
2230,Pet Supplies
2201,Product/Service
2211,Software
2223,Tools/Equipment
2262,Vitamins/Supplements
2202,Website
2224,Wine/Spirits
1103,Actor/Director
1601,Artist
1600,Athlete
1301,Author
1609,Business Person
1606,Chef
1802,Coach
1610,Comedian
1614,Dancer
1608,Doctor
1308,Editor
1611,Entertainer
1113,Fictional Character
1701,Government Official
1604,Journalist
1607,Lawyer
1612,Monarch
1202,Musician/Band
1605,News Personality
1700,Politician
1108,Producer
1602,Public Figure
1613,Teacher
1109,Writer
1200,Album
1803,Amateur Sports Team
1300,Book
1305,Book Store
1208,Concert Tour
1209,Concert Venue
1113,Fictional Character
1306,Library
1307,Magazine
1105,Movie
1111,Movie Theater
1212,Music Award
1213,Music Chart
1207,Music Video
1204,Musical Instrument
1206,Playlist
1801,Professional Sports Team
1210,Radio Station
1211,Record Label
1804,School Sports Team
1201,Song
1800,Sports League
2507,Sports Venue
1110,Studio
1404,TV Channel
1402,TV Network
1400,TV Show
1112,TV/Movie Award

150 categories as of June 3rd, 2014, API v2.0. You should note that these are only the main categories of a page. Each Facebook Page has a category_list array field that has subcategories that are not shown here. You can get a list of all subcategories for places via the graph API by this query: search?type=place_topic&topic_filter=all
FYI since Facebook changes all the time, the easiest way to obtain the list is to do as #RichSutton suggested and go to the Create Page page, and do inspect element on the drop-down lists. 5-6 copy-pastes, a regex later you have your complete list (with some duplicates).
1103, Actor/Director
1105, Movie
1108, Producer
1109, Writer
1110, Studio
1111, Movie Theater
1112, TV/Movie Award
1113, Fictional Character
1114, Movie Character
1200, Album
1201, Song
1202, Musician/Band
1207, Music Video
1208, Concert Tour
1209, Concert Venue
1210, Radio Station
1211, Record Label
1212, Music Award
1213, Music Chart
1300, Book
1301, Author
1305, Book Store
1306, Library
1307, Magazine
1309, Book Series
1400, TV Show
1402, TV Network
1404, TV Channel
1600, Athlete
1601, Artist
1602, Public Figure
1604, Journalist
1605, News Personality
1606, Chef
1607, Lawyer
1608, Doctor
1609, Business Person
1610, Comedian
1611, Entertainer
1613, Teacher
1614, Dancer
1615, Designer
1616, Photographer
1617, Entrepreneur
1700, Politician
1701, Government Official
1800, Sports League
1801, Professional Sports Team
1802, Coach
1803, Amateur Sports Team
1804, School Sports Team
1900, Restaurant/Cafe
2100, Bar
2101, Club
2200, Company
2201, Product/Service
2202, Website
2205, Cars
2206, Bags/Luggage
2208, Camera/Photo
2209, Clothing
2210, Computers
2211, Software
2212, Office Supplies
2213, Electronics
2214, Health/Beauty
2215, Appliances
2216, Building Materials
2217, Commercial Equipment
2218, Home Decor
2219, Furniture
2220, Household Supplies
2221, Kitchen/Cooking
2222, Patio/Garden
2223, Tools/Equipment
2224, Wine/Spirits
2226, Jewelry/Watches
2230, Pet Supplies
2231, Outdoor Gear/Sporting Goods
2232, Baby Goods/Kids Goods
2233, Media/News/Publishing
2234, Bank/Financial Institution
2235, Non-Governmental Organization (NGO)
2236, Insurance Company
2237, Small Business
2238, Energy/Utility
2239, Retail and Consumer Merchandise
2240, Automobiles and Parts
2241, Industrials
2242, Transport/Freight
2243, Health/Medical/Pharmaceuticals
2244, Aerospace/Defense
2245, Mining/Materials
2246, Farming/Agriculture
2247, Chemicals
2248, Consulting/Business Services
2249, Legal/Law
2250, Education
2251, Engineering/Construction
2252, Food/Beverages
2253, Telecommunication
2254, Biotechnology
2255, Computers/Technology
2256, Internet/Software
2258, Travel/Leisure
2260, Community Organization
2261, Political Organization
2262, Vitamins/Supplements
2263, Drugs
2264, Church/Religious Organization
2265, Phone/Tablet
2300, Games/Toys
2301, App Page
2302, Video Game
2303, Board Game
2500, Local Business
2501, Hotel
2503, Landmark
2506, Airport
2507, Sports Venue
2508, Arts/Entertainment/Nightlife
2509, Automotive
2510, Spas/Beauty/Personal Care
2511, Event Planning/Event Services
2512, Bank/Financial Services
2513, Food/Grocery
2514, Health/Medical/Pharmacy
2515, Home Improvement
2516, Pet Services
2517, Professional Services
2518, Business Services
2519, Community/Government
2520, Real Estate
2521, Shopping/Retail
2522, Public Places
2523, Attractions/Things to Do
2524, Sports/Recreation/Activities
2525, Tours/Sightseeing
2526, Transportation
2527, Hospital/Clinic
2528, Museum/Art Gallery
2600, Organization
2601, School
2602, University
2603, Non-Profit Organization
2604, Government Organization
2606, Cause
2618, Political Party
2632, Pet
2637, Middle School

Here is always fresh list of category:
https://developers.facebook.com/tools/explorer/145634995501895/?method=GET&path=search%3Ftype%3Dplacetopic%26topic_filter%3Dall%26limit%3D10000&version=v2.6
If you want get full list of category, best way is create openGraph request to this endpoint:
/search?type=placetopic&topic_filter=all&limit=10000

Here's a plain (e.g. no jQuery required) Javascript function that will extract the id/category pairs from the create-a-page page:
function get_categories() {
var result = {};
var options = document.getElementsByTagName('option');
for (var i=0; i < options.length; i++) {
var obj = options[i];
if (obj.parentNode.id == 'category' && obj.value != '0')
result[obj.value] = obj.innerHTML;
};
return result;
}

The authoritative list can be reverse engineered from here: http://www.facebook.com/pages/create.php. But there currently is no way to get this programatically from the graph API. +1 for adding it.

Category List as of Oct 17th 2013. Took all the categories and cat ID's from page settings.
{
"1301":"Author",
"1300":"Book",
"1309":"Book Series",
"1305":"Book Store",
"1306":"Library",
"1308":"Literary Editor",
"1307":"Magazine",
"1304":"Publisher",
"2301":"App Page",
"2215":"Appliances",
"2232":"Baby Goods/Kids Goods",
"2206":"Bags/Luggage",
"2303":"Board Game",
"2216":"Building Materials",
"2208":"Camera/Photo",
"2205":"Cars",
"2209":"Clothing",
"2217":"Commercial Equipment",
"2210":"Computers",
"2263":"Drugs",
"2213":"Electronics",
"2252":"Food/Beverages",
"2219":"Furniture",
"2300":"Games/Toys",
"2214":"Health/Beauty",
"2218":"Home Decor",
"2220":"Household Supplies",
"2226":"Jewelry/Watches",
"2221":"Kitchen/Cooking",
"2212":"Office Supplies",
"2231":"Outdoor Gear/Sporting Goods",
"2222":"Patio/Garden",
"2230":"Pet Supplies",
"2265":"Phone/Tablet",
"2201":"Product/Service",
"2211":"Software",
"2223":"Tools/Equipment",
"2302":"Video Game",
"2262":"Vitamins/Supplements",
"2202":"Website",
"2224":"Wine/Spirits",
"2244":"Aerospace/Defense",
"2240":"Automobiles and Parts",
"2234":"Bank/Financial Institution",
"2254":"Biotechnology",
"2606":"Cause",
"2247":"Chemicals",
"2264":"Church/Religious Organization",
"2260":"Community Organization",
"2200":"Company",
"2255":"Computers/Technology",
"2248":"Consulting/Business Services",
"2250":"Education",
"2238":"Energy/Utility",
"2251":"Engineering/Construction",
"2246":"Farming/Agriculture",
"2252":"Food/Beverages",
"2604":"Government Organization",
"2214":"Health/Beauty",
"2243":"Health/Medical/Pharmaceuticals",
"2241":"Industrials",
"2236":"Insurance Company",
"2256":"Internet/Software",
"2249":"Legal/Law",
"2233":"Media/News/Publishing",
"2245":"Mining/Materials",
"2235":"Non-Governmental Organization (NGO)",
"2603":"Non-Profit Organization",
"2600":"Organization",
"2261":"Political Organization",
"2618":"Political Party",
"2239":"Retail and Consumer Merchandise",
"2601":"School",
"2237":"Small Business",
"2253":"Telecommunication",
"2242":"Transport/Freight",
"2258":"Travel/Leisure",
"2602":"University",
"2506":"Airport",
"2508":"Arts/Entertainment/Nightlife",
"2523":"Attractions/Things to Do",
"2509":"Automotive",
"2512":"Bank/Financial Services",
"2100":"Bar",
"1305":"Book Store",
"2518":"Business Services",
"2264":"Church/Religious Organization",
"2101":"Club",
"2519":"Community/Government",
"1209":"Concert Venue",
"1608":"Doctor",
"2250":"Education",
"2511":"Event Planning/Event Services",
"2513":"Food/Grocery",
"2514":"Health/Medical/Pharmacy",
"2515":"Home Improvement",
"2527":"Hospital/Clinic",
"2501":"Hotel",
"2503":"Landmark",
"1607":"Lawyer",
"1306":"Library",
"2500":"Local Business",
"1111":"Movie Theater",
"2528":"Museum/Art Gallery",
"2231":"Outdoor Gear/Sporting Goods",
"2516":"Pet Services",
"2517":"Professional Services",
"2522":"Public Places",
"2520":"Real Estate",
"1900":"Restaurant/Cafe",
"2601":"School",
"2521":"Shopping/Retail",
"2510":"Spas/Beauty/Personal Care",
"2507":"Sports Venue",
"2524":"Sports/Recreation/Activities",
"2525":"Tours/Sightseeing",
"2526":"Transportation",
"2602":"University",
"1103":"Actor/Director",
"1113":"Fictional Character",
"1105":"Movie",
"1114":"Movie Character",
"1111":"Movie Theater",
"1108":"Producer",
"1110":"Studio",
"1112":"TV/Movie Award",
"1109":"Writer",
"1200":"Album",
"1208":"Concert Tour",
"1209":"Concert Venue",
"1212":"Music Award",
"1213":"Music Chart",
"1207":"Music Video",
"1202":"Musician/Band",
"1210":"Radio Station",
"1211":"Record Label",
"1201":"Song",
"2612":"Community",
"2631":"Just For Fun",
"1103":"Actor/Director",
"1601":"Artist",
"1600":"Athlete",
"1301":"Author",
"1609":"Business Person",
"1606":"Chef",
"1802":"Coach",
"1610":"Comedian",
"1614":"Dancer",
"1611":"Entertainer",
"1113":"Fictional Character",
"1701":"Government Official",
"1604":"Journalist",
"1612":"Monarch",
"1114":"Movie Character",
"1202":"Musician/Band",
"1605":"News Personality",
"2632":"Pet",
"1700":"Politician",
"1108":"Producer",
"1602":"Public Figure",
"1613":"Teacher",
"1109":"Writer",
"1803":"Amateur Sports Team",
"1600":"Athlete",
"1802":"Coach",
"1801":"Professional Sports Team",
"1804":"School Sports Team",
"1805":"Sports Event",
"1800":"Sports League",
"2507":"Sports Venue",
"1103":"Actor/Director",
"1405":"Episode",
"1113":"Fictional Character",
"1114":"Movie Character",
"1110":"Studio",
"1404":"TV Channel",
"1402":"TV Network",
"1400":"TV Show",
"1112":"TV/Movie Award",
"1109":"Writer",
"2701":"Arts/Humanities Website",
"2702":"Business/Economy Website",
"2703":"Computers/Internet Website",
"2704":"Education Website",
"2705":"Entertainment Website",
"2706":"Government Website",
"2707":"Health/Wellness Website",
"2708":"Home/Garden Website",
"2715":"Local/Travel Website",
"2709":"News/Media Website",
"2700":"Personal Blog",
"2717":"Personal Website",
"2710":"Recreation/Sports Website",
"2711":"Reference Website",
"2712":"Regional Website",
"2713":"Science Website",
"2714":"Society/Culture Website",
"2716":"Teens/Kids Website"
}

Sorted & Merged all the lists and from the create page :
151 entries :
Actor/Director
Aerospace/Defence
Airport
Album
Amateur Sports Team
Appliances
App Page
Artist
Arts/Entertainment/Nightlife
Author
Baby Goods/Kids Goods
Bags/Luggage
Bank/Financial Institution
Bank/Financial Services
Biotechnology
Blogger
Board Game
Book
Book Series
Bookshop
Building Materials
Business Person
Business Services
Camera/Photo
Cars
Cars and Parts
Cause
Chef
Chemicals
Church/Religious Organisation
Cinema
Clothing
Club
Coach
Comedian
Commercial Equipment
Community/Government
Community Organisation
Company</option>
Computers
Computers/Technology
Concert Tour
Concert Venue
Consulting/Business Services
Dancer
Designer
DIY
Doctor
Education
Electronics
Energy/Utility
Engineering/Construction
Entertainer
Entrepreneur
Event Planning/Event Services
Farming/Agriculture
Fictional Character
Film
Film Character
Food/Drink
Food/Groceries
Furniture
Games/Toys
Government Official
Government Organisation
Health/Beauty
Health/Medical/Pharmaceuticals
Health/Medical/Pharmacy
Home Decor
Hospital/Clinic
Hotel
Household Supplies
Industrials
Insurance Company
Internet/Software
Jewellery/Watches
Journalist
Kitchen/Cooking
Landmark
Lawyer
Legal/Law
Library
Local Business
Magazine
Media/News/Publishing
Medications
Middle School
Mining/Materials
Museum/Art Gallery
Music Award
Music Chart
Musician/Band
Music Video
News Personality
Non-governmental Organisation (NGO)
Non-profit Organisation
Nursery
Office Supplies
Organisation
Outdoor Gear/Sporting Goods
Patio/Garden
Performance Art
Pet
Pet Services
Pet Supplies
Phone/Tablet
Photographer
Political Organisation
Political Party
Politician
Primary School
Producer
Product/Service
Professional Services
Property
Public Figure
Public Places
Radio Station
Record Label
Restaurant/Café
Retail and Consumer Merchandise
School
School Sports Team
Shopping/Retail
Small Business
Software
Song
Spas/Beauty/Personal Care
Sports League
Sportsperson
Sports/Recreation/Activities
Sports Team
Sports Venue
Studio
Teacher
Telecommunication
Tools/Equipment
Tours/Sightseeing
Transport
Transport/Freight
Travel/Leisure
TV Channel
TV/Film Award
TV Network
TV Programme
University
Video Game
Vitamins/Supplements
Website
Wine/Spirits
Writer
Updated on 05-06-2015

Ross, although I am not 100% sure about this, my guess would be that this data is kept and updated internally by Facebook, and so if you wanted to use it in an app, you would have to make an array of some kind yourself containing all of the (current) categories used by Facebook - as you have outlined here (I have looked extensively through their API, Graph, etc documentation, and do not recall seeing any mention of how you can get categories for interests).
You might also have a look at this link:
http://developers.facebook.com/docs/reference/fql/user
Best.

I had to extract all categories and place topics, but I found problems extracting them using the solutions provided in this thread. The query of #not_this_again does in his reply does not return a complete list of place topics, I don't know why.
I found that Facebook returns categories as well as place topics in the category_list attribute of pages. Therefore, I extracted about 400k places and processed their category list to get as much results as I could. The results were obtained the 20th of October 2017.
I hope it helps, Xavi
204 categories:
1103 Actor/Director
1105 Movie
1106 Movie Genre
1108 Producer
1109 Writer
1110 Studio
1111 Movie Theater
1112 TV/Movie Award
1113 Fictional Character
1114 Movie Character
1200 Album
1201 Song
1202 Musician/Band
1203 Musical Genre
1204 Musical Instrument
1205 Music
1207 Music Video
1208 Concert Tour
1209 Concert Venue
1210 Radio Station
1211 Record Label
1212 Music Award
1213 Music Chart
1300 Book
1301 Author
1302 Book Genre
1305 Book Store
1306 Library
1307 Magazine
1308 Literary Editor
1309 Book Series
1400 TV Show
1401 TV Genre
1402 TV Network
1404 TV Channel
1500 Interest
1501 Sport
1600 Athlete
1601 Artist
1602 Public Figure
1604 Journalist
1605 News Personality
1606 Chef
1607 Lawyer
1608 Doctor
1609 Business Person
1610 Comedian
1611 Entertainer
1613 Teacher
1614 Dancer
1615 Designer
1616 Photographer
1617 Entrepreneur
1700 Politician
1701 Government Official
1800 Sports League
1801 Professional Sports Team
1802 Coach
1803 Amateur Sports Team
1804 School Sports Team
1805 Sports Event
1900 Restaurant/Cafe
1901 Cuisine
2000 Food
2100 Bar
2101 Club
2200 Company
2201 Product/Service
2202 Website
2203 Brand/Company Type
2205 Cars
2206 Bags/Luggage
2208 Camera/Photo
2209 Clothing
2210 Computers
2211 Software
2212 Office Supplies
2213 Electronics
2214 Health/Beauty
2215 Appliances
2216 Building Materials
2217 Commercial Equipment
2218 Home Decor
2219 Furniture
2220 Household Supplies
2221 Kitchen/Cooking
2222 Patio/Garden
2223 Tools/Equipment
2224 Wine/Spirits
2226 Jewelry/Watches
2230 Pet Supplies
2231 Outdoor Gear/Sporting Goods
2232 Baby Goods/Kids Goods
2233 Media/News/Publishing
2234 Bank/Financial Institution
2235 Non-Governmental Organization (NGO)
2236 Insurance Company
2237 Small Business
2238 Energy/Utility
2239 Retail and Consumer Merchandise
2240 Automobiles and Parts
2241 Industrials
2242 Transport/Freight
2243 Health/Medical/Pharmaceuticals
2244 Aerospace/Defense
2245 Mining/Materials
2246 Farming/Agriculture
2247 Chemicals
2248 Consulting/Business Services
2249 Legal/Law
2250 Education
2251 Engineering/Construction
2252 Food/Beverages
2253 Telecommunication
2254 Biotechnology
2255 Computers/Technology
2256 Internet/Software
2257 Tobacco Company
2258 Travel/Leisure
2260 Community Organization
2261 Political Organization
2262 Vitamins/Supplements
2263 Drugs
2264 Church/Religious Organization
2265 Phone/Tablet
2300 Games/Toys
2301 App Page
2302 Video Game
2303 Board Game
2401 City
2405 Neighborhood
2500 Local Business
2501 Hotel
2503 Landmark
2505 Transit Stop
2506 Airport
2507 Sports Venue
2508 Arts/Entertainment/Nightlife
2509 Automotive
2510 Spas/Beauty/Personal Care
2511 Event Planning/Event Services
2512 Bank/Financial Services
2513 Food/Grocery
2514 Health/Medical/Pharmacy
2515 Home Improvement
2516 Pet Services
2517 Professional Services
2518 Business Services
2519 Community/Government
2520 Real Estate
2521 Shopping/Retail
2522 Public Places
2523 Attractions/Things to Do
2524 Sports/Recreation/Activities
2525 Tours/Sightseeing
2526 Transportation
2527 Hospital/Clinic
2528 Museum/Art Gallery
2600 Organization
2601 School
2602 University
2603 Non-Profit Organization
2604 Government Organization
2606 Cause
2607 Religious Place of Worship
2608 Field of Study
2609 Concentration or Major
2611 Work Position
2612 Community
2613 Degree
2617 Work Project
2618 Political Party
2619 Course
2620 Political Ideology
2621 Animal
2622 Animal Breed
2624 Article
2625 Competition
2629 Junior High School
2632 Pet
2637 Middle School
2700 Personal Blog
2701 Arts & Humanities Website
2702 Business & Economy Website
2703 Computers & Internet Website
2704 Education Website
2705 Entertainment Website
2706 Government Website
2707 Health & Wellness Website
2708 Home & Garden Website
2709 News & Media Website
2710 Recreation & Sports Website
2711 Reference Website
2712 Regional Website
2713 Science Website
2714 Society & Culture Website
2715 Local & Travel Website
2716 Teens & Kids Website
2717 Personal Website
2900 Science
2902 Video
2903 Art
3006 Medical Procedure
3107 Geographical Place
and 1201 place topics that are available in this gist (besides categories, too).

Related

ERROR: function jsonb_array_elements_text(jsonb[]) does not exist

Having a hard time traversing and querying elements from a jsonb[] row.
CREATE TABLE foo (
id uuid PRIMARY KEY,
work_experience jsonb[] NOT NULL
);
INSERT INTO foo (id, work_experience)
VALUES (
'b4e942a0-49b4-4fa7-8f7a-5fbf0541d1c9',
E'{"{\\"id\\": \\"7cd74bae-ff5b-4f58-ab20-0218f820ffff\\", \\"skills\\": [{\\"id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68|313384d2-486d-4b7f-ba33-76b1cd696f0a|fd3c41b8-8c15-47e2-a80d-cf3683b2d0da\\", \\"level1\\": \\"Programming languages\\", \\"level2\\": \\"Scripting languages\\", \\"level3\\": \\"TypeScript\\", \\"level1_id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68\\", \\"level2_id\\": \\"313384d2-486d-4b7f-ba33-76b1cd696f0a\\", \\"level3_id\\": \\"fd3c41b8-8c15-47e2-a80d-cf3683b2d0da\\"}, {\\"id\\": \\"84dff39f-2ed6-408c-a188-14cf55a09c5b|e13b48c1-fd0f-4ecc-89de-58e9312b9435|686af7e4-6d58-4148-b227-3bf65ff10273\\", \\"level1\\": \\"Software frameworks & libraries\\", \\"level2\\": \\"Frontend frameworks & libraries\\", \\"level3\\": \\"React\\", \\"level1_id\\": \\"84dff39f-2ed6-408c-a188-14cf55a09c5b\\", \\"level2_id\\": \\"e13b48c1-fd0f-4ecc-89de-58e9312b9435\\", \\"level3_id\\": \\"686af7e4-6d58-4148-b227-3bf65ff10273\\"}, {\\"id\\": \\"84dff39f-2ed6-408c-a188-14cf55a09c5b|c4e54726-7bd5-44bb-8597-a05eb2272e2b|cda4441f-dba6-495c-9e2e-7429bd5e0465\\", \\"level1\\": \\"Software frameworks & libraries\\", \\"level2\\": \\"Backend frameworks & libraries\\", \\"level3\\": \\"Node.js\\", \\"level1_id\\": \\"84dff39f-2ed6-408c-a188-14cf55a09c5b\\", \\"level2_id\\": \\"c4e54726-7bd5-44bb-8597-a05eb2272e2b\\", \\"level3_id\\": \\"cda4441f-dba6-495c-9e2e-7429bd5e0465\\"}, {\\"id\\": \\"84dff39f-2ed6-408c-a188-14cf55a09c5b|e13b48c1-fd0f-4ecc-89de-58e9312b9435|fd3c41b8-8c15-47e2-a80d-cf3683b2d0da\\", \\"level1\\": \\"Software frameworks & libraries\\", \\"level2\\": \\"Frontend frameworks & libraries\\", \\"level3\\": \\"TypeScript\\", \\"level1_id\\": \\"84dff39f-2ed6-408c-a188-14cf55a09c5b\\", \\"level2_id\\": \\"e13b48c1-fd0f-4ecc-89de-58e9312b9435\\", \\"level3_id\\": \\"fd3c41b8-8c15-47e2-a80d-cf3683b2d0da\\"}], \\"end_date\\": null, \\"position\\": \\"Senior Software Engineer + Team Lead\\", \\"start_date\\": \\"2019-10-01T00:00:00\\", \\"description\\": \\"Draper, Utah, United States\\\\n• Architected Expert Portal* from the ground up using a Node/Typescript\\\\nbackend, a\\\\nPostgreSQL database, a GraphQL API layer, a Webpack build process, with a\\\\nTypescript/React front-end and XState for state management\\\\n• Enforced coding best practices with linting rules and code formatters by\\\\nautomating it in\\\\ngit workflow\\\\n• Automated deployment Expert Portal* to EC2 instances and the #pluralsight\\\\nNPM\\\\nartifactory using Github, TeamCity, and Octopus\\\\n• Improved product team workflow by building a browser extention to add\\\\nLeanKit card\\\\ntemplate functionality\\\\n• Consumed and published data through Kafka streams and RabbitMQ\\\\nmessages\\\\n• Interviewed, onboarded, and trained junior to mid-level engineers\\", \\"company_name\\": \\"Pluralsight\\"}","{\\"id\\": \\"9e2c2b44-39a4-4369-b237-c51fd938e61d\\", \\"skills\\": [{\\"id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68|313384d2-486d-4b7f-ba33-76b1cd696f0a|012abcd1-3a6a-4803-a47e-42f46b402024\\", \\"level1\\": \\"Programming languages\\", \\"level2\\": \\"Scripting languages\\", \\"level3\\": \\"JavaScript\\", \\"level1_id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68\\", \\"level2_id\\": \\"313384d2-486d-4b7f-ba33-76b1cd696f0a\\", \\"level3_id\\": \\"012abcd1-3a6a-4803-a47e-42f46b402024\\"}], \\"end_date\\": \\"2019-10-01T00:00:00\\", \\"position\\": \\"Software Engineer II\\", \\"start_date\\": \\"2017-11-01T00:00:00\\", \\"description\\": \\"Greater Salt Lake City Area\\\\nWorked on the KSL Jobs Classifieds team as a full-stack developer. Following\\\\nthe scrum methodology, I added new features and maintained all things\\\\npowered by KSL Jobs.\\\\n• Built and deployed a \\\\\\"white label\\\\\\" version of KSL Jobs for the Silicon Slopes\\\\nbrand. (https://siliconslopes.ksl.com)\\\\n• Rewrote major sections of the current KSL Jobs site in React.js\\\\n• Automated querying data for reports and analytic purposes through Node and\\\\nPHP scripts\\\\n• Provided rich data tracking through Google Tag Manager, Google Analytics,\\\\nand BigQuery\\\\n• Migrated Solr search engine to ElasticSearch with a GraphQL API\\", \\"company_name\\": \\"Deseret Digital Media\\"}","{\\"id\\": \\"efbf68f4-7bdc-4ab6-bba9-fbf7ec38aeef\\", \\"skills\\": [{\\"id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68|f45abc59-1e7e-4853-a498-999fcf12d498|4b266297-6e25-4443-90ec-248bded4225a\\", \\"level1\\": \\"Programming languages\\", \\"level2\\": \\"High-level languages\\", \\"level3\\": \\"PHP\\", \\"level1_id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68\\", \\"level2_id\\": \\"f45abc59-1e7e-4853-a498-999fcf12d498\\", \\"level3_id\\": \\"4b266297-6e25-4443-90ec-248bded4225a\\"}], \\"end_date\\": \\"2019-08-01T00:00:00\\", \\"position\\": \\"Full Stack Developer\\", \\"start_date\\": \\"2017-01-01T00:00:00\\", \\"description\\": \\"Provo, Utah Area\\\\nWorked with Appritech LLC to modernize their legacy software and add new\\\\nfeatures to automate their business processes.\\\\n• Building new call handler from the ground up using JavaScript ES6,\\\\nBootstrap, SASS for\\\\nfront-end, and PHP7/Laravel for back-end\\\\n• Implemented real-time call management system and built reporting API.\\\\nImproved call agent\\\\nproductivity by 70%\\\\n• Upgraded deprecated PHP legacy code to PHP 7\\\\n• Synchronized follow up calls with Twilio API functionality for SMS message\\\\nforwarding\\\\n• Installed and setup Apache server for an after hours call center\\", \\"company_name\\": \\"Appritech Software\\"}","{\\"id\\": \\"2db60c6c-c214-4d9b-9034-baba676203a8\\", \\"skills\\": [{\\"id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68|f45abc59-1e7e-4853-a498-999fcf12d498|4b266297-6e25-4443-90ec-248bded4225a\\", \\"level1\\": \\"Programming languages\\", \\"level2\\": \\"High-level languages\\", \\"level3\\": \\"PHP\\", \\"level1_id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68\\", \\"level2_id\\": \\"f45abc59-1e7e-4853-a498-999fcf12d498\\", \\"level3_id\\": \\"4b266297-6e25-4443-90ec-248bded4225a\\"}], \\"end_date\\": \\"2017-09-01T00:00:00\\", \\"position\\": \\"Web Developer\\", \\"start_date\\": \\"2017-02-01T00:00:00\\", \\"description\\": \\"Provo, Utah Area\\\\nWorked with Redcore LLC to build entrepreneurial tools, marketing tools, and\\\\nadding new functionality to the current Wordpress-integrated website and\\\\nCMS.\\\\n• Built Brand Management website from the ground up using Bootstrap and\\\\nJavaScript on the\\\\nfront end, with PHP and MySQL on the back-end\\\\n• Automated managerial and accounting tasks, such as invoice generation,\\\\nand transactions using Stripe API\\\\n• Debugged and perfected current web applications to enrich UX\\\\n• Doubled clientele by expanding Redcore services offered to include website\\\\ncreation and\\\\nmanagement\\", \\"company_name\\": \\"Redcore LLC\\"}","{\\"id\\": \\"c3f1d5b2-5586-477d-ae4c-e2927463244e\\", \\"skills\\": [{\\"id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68|313384d2-486d-4b7f-ba33-76b1cd696f0a|012abcd1-3a6a-4803-a47e-42f46b402024\\", \\"level1\\": \\"Programming languages\\", \\"level2\\": \\"Scripting languages\\", \\"level3\\": \\"JavaScript\\", \\"level1_id\\": \\"c8a5328d-87ba-419d-802f-80b1d940bb68\\", \\"level2_id\\": \\"313384d2-486d-4b7f-ba33-76b1cd696f0a\\", \\"level3_id\\": \\"012abcd1-3a6a-4803-a47e-42f46b402024\\"}], \\"end_date\\": \\"2017-03-01T00:00:00\\", \\"position\\": \\"Software and Web Developer\\", \\"start_date\\": \\"2016-12-01T00:00:00\\", \\"description\\": \\"Provo, Utah Area\\\\nThis internship was focused on building core website and software for\\\\nCentaurific using the LAMP stack.\\\\n• Created dynamic landing pages for products to generate leads\\\\n• Designed a MySQL database to organize data and generate excel reports\\\\n• Revitalized marketing efforts through analytics and a social media sharing\\\\npage\\", \\"company_name\\": \\"Centaurific\\"}"}'
);
(Here is what that work_experience row looks like in JSON:)
[
{
"id": "7cd74bae-ff5b-4f58-ab20-0218f820ffff",
"skills": [
{
"id": "c8a5328d-87ba-419d-802f-80b1d940bb68|313384d2-486d-4b7f-ba33-76b1cd696f0a|fd3c41b8-8c15-47e2-a80d-cf3683b2d0da",
"level1": "Programming languages",
"level2": "Scripting languages",
"level3": "TypeScript",
"level1_id": "c8a5328d-87ba-419d-802f-80b1d940bb68",
"level2_id": "313384d2-486d-4b7f-ba33-76b1cd696f0a",
"level3_id": "fd3c41b8-8c15-47e2-a80d-cf3683b2d0da"
},
{
"id": "84dff39f-2ed6-408c-a188-14cf55a09c5b|e13b48c1-fd0f-4ecc-89de-58e9312b9435|686af7e4-6d58-4148-b227-3bf65ff10273",
"level1": "Software frameworks & libraries",
"level2": "Frontend frameworks & libraries",
"level3": "React",
"level1_id": "84dff39f-2ed6-408c-a188-14cf55a09c5b",
"level2_id": "e13b48c1-fd0f-4ecc-89de-58e9312b9435",
"level3_id": "686af7e4-6d58-4148-b227-3bf65ff10273"
},
{
"id": "84dff39f-2ed6-408c-a188-14cf55a09c5b|c4e54726-7bd5-44bb-8597-a05eb2272e2b|cda4441f-dba6-495c-9e2e-7429bd5e0465",
"level1": "Software frameworks & libraries",
"level2": "Backend frameworks & libraries",
"level3": "Node.js",
"level1_id": "84dff39f-2ed6-408c-a188-14cf55a09c5b",
"level2_id": "c4e54726-7bd5-44bb-8597-a05eb2272e2b",
"level3_id": "cda4441f-dba6-495c-9e2e-7429bd5e0465"
},
{
"id": "84dff39f-2ed6-408c-a188-14cf55a09c5b|e13b48c1-fd0f-4ecc-89de-58e9312b9435|fd3c41b8-8c15-47e2-a80d-cf3683b2d0da",
"level1": "Software frameworks & libraries",
"level2": "Frontend frameworks & libraries",
"level3": "TypeScript",
"level1_id": "84dff39f-2ed6-408c-a188-14cf55a09c5b",
"level2_id": "e13b48c1-fd0f-4ecc-89de-58e9312b9435",
"level3_id": "fd3c41b8-8c15-47e2-a80d-cf3683b2d0da"
}
],
"end_date": null,
"position": "Senior Software Engineer + Team Lead",
"start_date": "2019-10-01T00:00:00",
"description": "Draper, Utah, United Statesn• Architected Expert Portal* from the ground up using a Node/Typescriptnbackend, anPostgreSQL database, a GraphQL API layer, a Webpack build process, with anTypescript/React front-end and XState for state managementn• Enforced coding best practices with linting rules and code formatters bynautomating it inngit workflown• Automated deployment Expert Portal* to EC2 instances and the #pluralsightnNPMnartifactory using Github, TeamCity, and Octopusn• Improved product team workflow by building a browser extention to addnLeanKit cardntemplate functionalityn• Consumed and published data through Kafka streams and RabbitMQnmessagesn• Interviewed, onboarded, and trained junior to mid-level engineers",
"company_name": "Pluralsight"
},
{
"id": "9e2c2b44-39a4-4369-b237-c51fd938e61d",
"skills": [
{
"id": "c8a5328d-87ba-419d-802f-80b1d940bb68|313384d2-486d-4b7f-ba33-76b1cd696f0a|012abcd1-3a6a-4803-a47e-42f46b402024",
"level1": "Programming languages",
"level2": "Scripting languages",
"level3": "JavaScript",
"level1_id": "c8a5328d-87ba-419d-802f-80b1d940bb68",
"level2_id": "313384d2-486d-4b7f-ba33-76b1cd696f0a",
"level3_id": "012abcd1-3a6a-4803-a47e-42f46b402024"
}
],
"end_date": "2019-10-01T00:00:00",
"position": "Software Engineer II",
"start_date": "2017-11-01T00:00:00",
"description": "Greater Salt Lake City AreanWorked on the KSL Jobs Classifieds team as a full-stack developer. Followingnthe scrum methodology, I added new features and maintained all thingsnpowered by KSL Jobs.n• Built and deployed a "white label" version of KSL Jobs for the Silicon Slopesnbrand. (https://siliconslopes.ksl.com)n• Rewrote major sections of the current KSL Jobs site in React.jsn• Automated querying data for reports and analytic purposes through Node andnPHP scriptsn• Provided rich data tracking through Google Tag Manager, Google Analytics,nand BigQueryn• Migrated Solr search engine to ElasticSearch with a GraphQL API",
"company_name": "Deseret Digital Media"
},
{
"id": "efbf68f4-7bdc-4ab6-bba9-fbf7ec38aeef",
"skills": [
{
"id": "c8a5328d-87ba-419d-802f-80b1d940bb68|f45abc59-1e7e-4853-a498-999fcf12d498|4b266297-6e25-4443-90ec-248bded4225a",
"level1": "Programming languages",
"level2": "High-level languages",
"level3": "PHP",
"level1_id": "c8a5328d-87ba-419d-802f-80b1d940bb68",
"level2_id": "f45abc59-1e7e-4853-a498-999fcf12d498",
"level3_id": "4b266297-6e25-4443-90ec-248bded4225a"
}
],
"end_date": "2019-08-01T00:00:00",
"position": "Full Stack Developer",
"start_date": "2017-01-01T00:00:00",
"description": "Provo, Utah AreanWorked with Appritech LLC to modernize their legacy software and add newnfeatures to automate their business processes.n• Building new call handler from the ground up using JavaScript ES6,nBootstrap, SASS fornfront-end, and PHP7/Laravel for back-endn• Implemented real-time call management system and built reporting API.nImproved call agentnproductivity by 70%n• Upgraded deprecated PHP legacy code to PHP 7n• Synchronized follow up calls with Twilio API functionality for SMS messagenforwardingn• Installed and setup Apache server for an after hours call center",
"company_name": "Appritech Software"
},
{
"id": "2db60c6c-c214-4d9b-9034-baba676203a8",
"skills": [
{
"id": "c8a5328d-87ba-419d-802f-80b1d940bb68|f45abc59-1e7e-4853-a498-999fcf12d498|4b266297-6e25-4443-90ec-248bded4225a",
"level1": "Programming languages",
"level2": "High-level languages",
"level3": "PHP",
"level1_id": "c8a5328d-87ba-419d-802f-80b1d940bb68",
"level2_id": "f45abc59-1e7e-4853-a498-999fcf12d498",
"level3_id": "4b266297-6e25-4443-90ec-248bded4225a"
}
],
"end_date": "2017-09-01T00:00:00",
"position": "Web Developer",
"start_date": "2017-02-01T00:00:00",
"description": "Provo, Utah AreanWorked with Redcore LLC to build entrepreneurial tools, marketing tools, andnadding new functionality to the current Wordpress-integrated website andnCMS.n• Built Brand Management website from the ground up using Bootstrap andnJavaScript on thenfront end, with PHP and MySQL on the back-endn• Automated managerial and accounting tasks, such as invoice generation,nand transactions using Stripe APIn• Debugged and perfected current web applications to enrich UXn• Doubled clientele by expanding Redcore services offered to include websitencreation andnmanagement",
"company_name": "Redcore LLC"
},
{
"id": "c3f1d5b2-5586-477d-ae4c-e2927463244e",
"skills": [
{
"id": "c8a5328d-87ba-419d-802f-80b1d940bb68|313384d2-486d-4b7f-ba33-76b1cd696f0a|012abcd1-3a6a-4803-a47e-42f46b402024",
"level1": "Programming languages",
"level2": "Scripting languages",
"level3": "JavaScript",
"level1_id": "c8a5328d-87ba-419d-802f-80b1d940bb68",
"level2_id": "313384d2-486d-4b7f-ba33-76b1cd696f0a",
"level3_id": "012abcd1-3a6a-4803-a47e-42f46b402024"
}
],
"end_date": "2017-03-01T00:00:00",
"position": "Software and Web Developer",
"start_date": "2016-12-01T00:00:00",
"description": "Provo, Utah AreanThis internship was focused on building core website and software fornCentaurific using the LAMP stack.n• Created dynamic landing pages for products to generate leadsn• Designed a MySQL database to organize data and generate excel reportsn• Revitalized marketing efforts through analytics and a social media sharingnpage",
"company_name": "Centaurific"
}
]
I'd like to query out the structure. I tried this and a few other variants of it to no avail:
SELECT workexp
FROM foo,
jsonb_array_elements(work_experience) workexp;
And I get this error message:
ERROR: function jsonb_array_elements_text(jsonb[]) does not exist
LINE 3: jsonb_array_elements(work_experience) workexp;
^
HINT: No function matches the given name and argument types. You might need to add explicit type casts.
Everything I look up has documentation on traversing and querying jsonb rows, but not jsonb[] ones. How can I query for the "skills"."id"s?
EDIT -- SOLUTION:
All of the solutions given were helpful but I selected Ramin Faracov for suggesting to use unnest. Thank you!
This is the query that I came up with:
SELECT
id expert_id,
we_sk->>'id' work_exp_skill_id
FROM (
SELECT
id,
unnest(work_experience)->'skills' we
FROM foo_json
) sk,
jsonb_array_elements(sk.we) we_sk;
In PostgreSQL all jsonb array functions only for using JSONB types, not JSONB[].
First-way you can use unnest function to convert arrays to rows, after then you can use jsonb_array_elements.
Second-way change type JSONB[] to JSON in your table. Don't worry, you can still insert your JSON string data which is written above into JSONB field without any problems. Inside the JSON and JSONB strings, we can use arrays using formatted strings. Jsonb array functions only for arrays written inside JSON string.
db fiddle demo.
you don't need jsonb[], just use jsonb.
You need to properly reformat the jsonb, so that you can insert to postgresql.
I user datagrip syntax highlight to reformat your code to db. like this.
CTE is more easier to reformat the logic. So i use it.
--query filter mainid then the inner id.
-- "84dff39f-2ed6-408c-a188-14cf55a09c5b|e13b48c1-fd0f-4ecc-89de-58e9312b9435|fd3c41b8-8c15-47e2-a80d-cf3683b2d0da"
with a as (
SELECT workexp
FROM foo_json,
jsonb_array_elements(work_experience) workexp),
b as(select workexp['id'] mainid,
jsonb_array_elements(workexp['skills']) last_level,
count(*) over() from a),
c as(select
last_level,
pg_typeof(mainid) from b
where mainid::text = '"7cd74bae-ff5b-4f58-ab20-0218f820ffff"'::text)
select *,
last_level['level1'],
last_level['level2'],
last_level['level3'],
last_level['level1_id'],
last_level['level2_id'],
last_level['level3_id']
from c
where
last_level['id']::text
= '"84dff39f-2ed6-408c-a188-14cf55a09c5b|e13b48c1-fd0f-4ecc-89de-58e9312b9435|fd3c41b8-8c15-47e2-a80d-cf3683b2d0da"'::text;
--query filter based on mainid (not the inner nested)
with a as (
SELECT workexp
FROM foo_json,
jsonb_array_elements(work_experience) workexp),
b as(select workexp['id'] mainid, workexp['skills'], count(*) over() from a)
select *, pg_typeof(mainid) from b
where mainid::text = '"7cd74bae-ff5b-4f58-ab20-0218f820ffff"'::text;
postgresql 15 (dev)
In postgresql 15, there is json_table. make nested json/jsonb query more easier.
SELECT jt.* FROM foo_json,
JSON_TABLE(work_experience, '$[*]' COLUMNS(
main_id text path '$.id', start_date date path '$.start_date',
position text path '$.position', company_name text path '$.company_name',
NESTED PATH '$.skills[*]' COLUMNS (
innerid text path '$.id',
level2 text, level3 text)
)) jt;

PAYEE_ACCOUNT_NOT_VERIFIED - PayPal Problem

I have a question about users who set up a PayPal account but haven't verified it. In our system, they can start selling, but PayPal does not allow customers to buy products until the seller verifies the account(?). Is it possible to remove this limit or anything to do with it from the PayPal website so that people who set up a new account can start selling immediately and, for example, verify their account later? The question is for this error: PAYEE_ACCOUNT_NOT_VERIFIED
This is what we send (from database):
{"intent": "CAPTURE", "application_context": {"cancel_url": "XX," return_url ":"XX"}," purchase_units " : [{"invoice_id": "11-04033241 \ / 12 \ / 2021 \ / 87", "items": [{"name": "Y", "unit_amount": {"currency_code": " AUD "," value ":" 38.50 "}," quantity ":" 1 "," category ":" PHYSICAL_GOODS "}]," amount ": {" value ":" 53.50 "," currency_code ":" AUD " , "breakdown": {"item_total": {"value": "38.50", "currency_code": "AUD"}, "shipping": {"value": "15.00", "currency_code": "AUD"}} }, "payee": {"merchant_id": "XX"}, "payment_instruction": {"disbursement_mode": "INSTANT", "platform_fees": [{"amount": {"currency_code": "AUD", "value ":" 3.50 "}}]," payee ": {" merchant_id ":" XX "}}," shipping ": {" address ": {" address_line_1 ":" X "," address_line_2 ":" " , "admin_area_1": "XX", "admin_area_2": "XX", "postal_code": "XX", " country_code ":" AU "}}}]}
This is the answer from PayPal:
{"name": "NOT_AUTHORIZED", "details": [{"issue": "PAYEE_ACCOUNT_NOT_VERIFIED", "description": "Payee has not verified their account with PayPal. Your current setup requires the 'payee' to have an account with PayPal before you can process transactions on their behalf. "}]," Message ":" Authorization failed due to insufficient permissions. "," Debug_id ":" aef1250ffb618 "," links ": [{" href ":" https: / /developer.paypal.com/docs/api/orders/v2/#error-PAYEE_ACCOUNT_NOT_VERIFIED","rel":"information_link","method":"GET "}]}
The payee account with the merchant_id you specified needs to confirm their primary email in paypal.com here. Re-send a verification email as needed, which will have a link to verify it.
If this is sandbox, the same can be done in a sandbox account but sandbox never sends "real" emails. Instead go to the Notifications left nav tab in the developer dashboard, to read "emails" for the sandbox accounts that belong to that developer dashboard login.

Azure Pipelines: Bulk approve of deployments to environments

Is there any way to approve runs via the CLI or the API (or anything else)? I'm looking for a way to bulk approve multiple runs from different pipelines but it's not available in the UI.
Let's say I have 100 pipelines that have a deployment job to a production environment. I would like to approve all awaiting for approval runs.
Currently, I cannot find something like it in the docs of the Azure DevOps REST API or the CLI.
The feature docs:
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/environments
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/approvals
The following question is related but I'm looking for any way of solving it but not just via API:
Approve a yaml pipeline deployment in Azure DevOps using REST api
I was just searching for an answer for this regarding getting the approval id that you would need. In fact there is an undocumented API to approve an approval check.
This is as Merlin explain the following
https://dev.azure.com/{org}/{project}/_apis/pipelines/approvals/{approvalId}
The body has to look like this
[{
"approvalId": "{approvalId}",
"status": {approvalStatus},
"comment": ""
}]
where {approvalStatus} is telling the API if you approved or not. You probly have to try, but I had a 4 as a status. I guess there are only 2 possibilities. Either for "approved" or "denied".
The question is now how you get the approval ID? I found it. You get it by using the timeline API of a classic build. The build API documentation says that you get it by the following
https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}?api-version=5.1
the build timeline you get in the response of the build run, but it has a pattern which is
https://dev.azure.com/{organization}/{project}/_apis/build/builds/{buildId}/Timeline?api-version=5.1
Besides a flat array container a parent / child rleationship from stage, phase, job and tasks, you can find within it something like the following:
{
"records": [
{
"previousAttempts": [
],
"id": "95f5837e-769d-5a92-9ecb-0e7edb3ac322",
"parentId": "9e7965a8-d99d-5b8f-b47b-3ee7c58a5b1c",
"type": "Checkpoint",
"name": "Checkpoint",
"startTime": "2020-08-14T13:44:03.05Z",
"finishTime": null,
"currentOperation": null,
"percentComplete": null,
"state": "inProgress",
"result": null,
"resultCode": null,
"changeId": 73,
"lastModified": "0001-01-01T00:00:00",
"workerName": null,
"details": null,
"errorCount": 0,
"warningCount": 0,
"url": null,
"log": null,
"task": null,
"attempt": 1,
"identifier": "Checkpoint"
},
{
"previousAttempts": [
],
"id": "9e7965a8-d99d-5b8f-b47b-3ee7c58a5b1c",
"parentId": null,
"type": "Stage",
"name": "Power Platform Test (orgf92be262)",
"startTime": null,
"finishTime": null,
"currentOperation": null,
"percentComplete": null,
"state": "pending",
"result": null,
"resultCode": null,
"changeId": 1,
"lastModified": "0001-01-01T00:00:00",
"workerName": null,
"order": 2,
"details": null,
"errorCount": 0,
"warningCount": 0,
"url": null,
"log": null,
"task": null,
"attempt": 1,
"identifier": "Import_Test"
},
{
"previousAttempts": [
],
"id": "e54149c5-b5a7-4b82-8468-56ad493224b5",
"parentId": "95f5837e-769d-5a92-9ecb-0e7edb3ac322",
"type": "Checkpoint.Approval",
"name": "Checkpoint.Approval",
"startTime": "2020-08-14T13:44:03.02Z",
"finishTime": null,
"currentOperation": null,
"percentComplete": null,
"state": "inProgress",
"result": null,
"resultCode": null,
"changeId": 72,
"lastModified": "0001-01-01T00:00:00",
"workerName": null,
"details": null,
"errorCount": 0,
"warningCount": 0,
"url": null,
"log": null,
"task": null,
"attempt": 1,
"identifier": "e54149c5-b5a7-4b82-8468-56ad493224b5"
}
],
"lastChangedBy": "00000002-0000-8888-8000-000000000000",
"lastChangedOn": "2020-08-14T13:44:03.057Z",
"id": "86fb4204-9c5e-4e72-bdb1-eefe230480ec",
"changeId": 73,
"url": "https://dev.azure.com/***"
}
below you can see a step that is called "Checkpoint.Approval". The id of that step IS the approval Id you need to approve everything. If you want to know from which stage the approval is, then you can follow up the parentIds until the parentId property is null.
This will then be the stage.
With this you can successfully get the approval id and use it to approve with the said
What jessehouwing's guess is correct. Now multi-stage still be in preview, and the corresponding SDK/API/extension hasn't been expanded and provided to public.
You may think that what about not using API. I have checked the corresponding code from our backend, all of operations to multi-stage approval contain one required parameter: approvalId. I'm sure you have known that this value is unique and different approval map with different approvalId value. This means, no matter which method you want to try with, approvalId is the big trouble. And based on my known, until now, there's no any api/SDK, third tool or extension can achieve this value directly.
In addition, for multi-stage YAML, its release process logic is not same with the release that defined with UI. So, all of public APIs which can work with release(UI), are not suitable with the release of multi-stage.
We have one undisclosed api, can get Approval message of multi-stage:
https://dev.azure.com/{org}/{project}/_apis/pipelines/approvals/{approvalId}
You can try with listing approval without specifying approvalId: https://dev.azure.com/{org}/{project}/_apis/pipelines/approvals. And its response message: Query for approvals failed. A minimum of one query parameter is required.\r\nParameter name: queryParameters. This represents you must tell system the specified approval(the big trouble I mentioned previously).
In fact, for why approvalId is a necessary part, it is caused from our backend code structure. I'd suggest you raise suggestion on developing API/SDK for multi-stage here.
I can confirm that Sebastian's answer worked for me, even in Azure DevOps 2020 on-prem.
After retrieving the approvalId from either methods used above (I was specifically using a service hook for my integration), I used the following API PATCH call:
https://dev.azure.com/{organization}/{project}/_apis/pipelines/approvals/?api-version=6.0-preview
and in the body:
[
{
"approvalId": "{approvalId}",
"status": {status integer}, (4 - approved; 8 - rejected)
"comment": ""
}
]
The call is passed with the application/json Content-Type, but in some situations it did not like that I was using the [] brackets, so you will need to work around that, only then will the call work.
I was even able to integrate this call into my custom connector in MS Power Automate
I added support to the latest version of the AzurePipelinesPS Powershell module to support bulk pipeline approvals.
Code snippet without using the AzurePipelinesPS sessions
$instance = 'https://dev.azure.com'
$collection = 'your_project'
$project = 'your_project'
$apiVersion = '5.1-preview'
$securePat = 'your_personal_access_token' | ConvertTo-SecureString -Force -AsPlainText
Get-APPipelinePendingApprovalList -Instance $instance -Collection $collection -Project $project -PersonalAccessToken $securePat -ApiVersion $apiVersion | Out-GridView -Passthru | % { Update-APPipelineApproval -Instance $instance -Collection $collection -Project $project -PersonalAccessToken $securePat -ApiVersion $apiVersion -ApprovalId $PSitem.approvalId -status 'approved'}
Code snippet with AzurePipelinesPS sessions
$session = 'your_session'
Get-APPipelinePendingApprovalList $session | Out-GridView -Passthru | % { Update-APPipelineApproval $session -ApprovalId $PSitem.approvalId -status 'approved'}
See the AzurePipelinesPS project page for details on secure session handling.
Function Definitions used in the code above
Get-APPipelinePendingApprovalList
Loops through pipeline build runs with the status of 'notStarted' or 'inProgress' in a project. This build lookup supports filters like pipeline definition ids or a source branch name.
For each build it then looks up the timeline record where the approval id, the stage name and the stage identifier are found.
Optionally with the ExpandApproval switch it can expand each approval with details
The object returned from this function contains the following properties, the values have been mocked
pipelineDefinitionName : MyPipeline
pipelineDefinitionId : 100
pipelineRunId : 2001
pipelineUrl : https://dev.azure.com/your_project/_build/results?
sourceBranch : refs/heads/master
stageName : Prod Deployment
stageIdentifier : Prod_Deployment
approvalId : xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx
Out-GridView
Displays data in a Grid View where the results can be filtered, ordered and selected.
%
The percent sign is shorthand for Foreach-Object
Update-APPipelineApproval
Updates the status of an approval to approved or rejected.
Credit
Thanks to Sebastian Schütze for cracking the timeline part!
The az pipelines extension doesn't suport approvals yet, I suppose due to the fact that multi-stage pipelines are still in preview and the old release hub will eventually be replaced by it.
But there is a REST API you can use to list and update approvals. These can be called from PowerShell with relative ease.
Or use the vsteam powershell module and Get-VSTeamApproval and Set-VSTeamApproval.

Stuck at Getting Survey Details from SurveyMonkey REST Connection in QlikSense

I'm trying to connect to the Survey Monkey API via a hard coded connection set in a variable but the connection is giving me such error:
QVX_UNEXPECTED_END_OF_DATA: HTTP protocol error 400 (Bad Request):
{
"error":
{
"docs": "https://developer.surveymonkey.com/api/v3/#error-codes",
"message": "Invalid URL parameters.", "id": "1003", "name": "Bad Request",
"http_status_code": 400
}
}
Although, if i try the same but while getting surveys bulk, it works
vID is equal to a survey id
let vURL2 = 'https://api.surveymonkey.com/v3/surveys/$(vID)/details';
RestConnectorMasterTable_SurveryFullDetails:
SQL SELECT
"response_count",
"page_count",
"date_created",
"folder_id",
"nickname",
"id" AS "id_u3",
"question_count" AS "question_count_u0",
"category",
"preview",
"is_owner",
"language",
"footer",
"date_modified",
"analyze_url",
"summary_url",
"href" AS "href_u1",
"title" AS "title_u0",
"collect_url",
"edit_url",
"__KEY_root",
(SELECT
"done_button",
"prev_button",
"exit_button",
"next_button",
"__FK_buttons_text"
FROM "buttons_text" FK "__FK_buttons_text"),
(SELECT
"__FK_custom_variables"
FROM "custom_variables" FK "__FK_custom_variables"),
(SELECT
"href" AS "href_u0",
"description" AS "description_u0",
"title",
"position" AS "position_u2",
"id" AS "id_u2",
"question_count",
"__KEY_pages",
"__FK_pages",
(SELECT
"sorting",
"family",
"subtype",
"visible" AS "visible_u1",
"href",
"position" AS "position_u1",
"validation",
"id" AS "id_u1",
"forced_ranking",
"required",
"__KEY_questions",
"__FK_questions",
(SELECT
"text",
"amount",
"type",
"__FK_required"
FROM "required" FK "__FK_required"),
(SELECT
"__KEY_answers",
"__FK_answers",
(SELECT
"visible",
"text" AS "text_u0",
"position",
"id",
"__FK_rows"
FROM "rows" FK "__FK_rows"),
(SELECT
"description",
"weight",
"visible" AS "visible_u0",
"id" AS "id_u0",
"is_na",
"text" AS "text_u1",
"position" AS "position_u0",
"__FK_choices"
FROM "choices" FK "__FK_choices")
FROM "answers" PK "__KEY_answers" FK "__FK_answers"),
(SELECT
"heading",
"__FK_headings"
FROM "headings" FK "__FK_headings")
FROM "questions" PK "__KEY_questions" FK "__FK_questions")
FROM "pages" PK "__KEY_pages" FK "__FK_pages")
FROM JSON (wrap on) "root" PK "__KEY_root"
WITH CONNECTION(Url "$(vURL2)");
Have you checked out this fairly exhaustive SurveyMonkey how to guide on the Qlik Community? Might we worth checking you've followed all those steps, including giving the user permission to access the API.
It is not enough to hardcode URL, you also need to specify authorization header
WITH CONNECTION (
Url "$(vURL2)",
HTTPHEADER "Authorization" "bearer YOUR_TOKEN"
);

Uploading a CSV file, distorted characters

I am having a problem when uploading a csv file through the following query,
COPY adwords_initial("Account",
"Week",
"Campaign",
"Keyword",
"Ad group",
"Keyword state",
"Match type",
"Max. CPC",
"Clicks",
"Impressions",
"Cost",
"Avg. position",
"Ad group state",
"Campaign state",
"Status",
"Qual. score (hist.)",
"Expected clickthrough rate (hist.)",
"Ad relevance (hist.)",
"Landing page experience (hist.)",
"First page CPC",
"First position CPC",
"Top of page CPC",
"Bounce rate","Pages / session",
"Avg. session duration (seconds)",
"% new sessions",
"Search Exact match IS",
"Search Lost IS (rank)",
"Search Impr. share",
"Conversions",
"Conv. rate")
FROM 'C:\Users\iantu\Desktop\Performance Marketing\Report inputs\input.csv'
DELIMITER ',' CSV HEADER encoding 'windows-1251';
Characters in French do not translate accordingly as an example
in keyword the original file has +connectivité +IoT
in keyword the postgresql file has +connectivitй +IoT
Do settings have to be changed within my application?
I should also mention that I then export this using the following query, however, the data as can be seen is already corrupted within the database.
COPY (SELECT * FROM adwords_initial) TO 'C:\Users\iantu\Desktop\Performance Marketing\Report Outputs\in between workflow.csv' WITH CSV HEADER;
Use latin1 as encoding:
COPY adwords_initial("Account",
"Week",
"Campaign",
"Keyword",
"Ad group",
"Keyword state",
"Match type",
"Max. CPC",
"Clicks",
"Impressions",
"Cost",
"Avg. position",
"Ad group state",
"Campaign state",
"Status",
"Qual. score (hist.)",
"Expected clickthrough rate (hist.)",
"Ad relevance (hist.)",
"Landing page experience (hist.)",
"First page CPC",
"First position CPC",
"Top of page CPC",
"Bounce rate","Pages / session",
"Avg. session duration (seconds)",
"% new sessions",
"Search Exact match IS",
"Search Lost IS (rank)",
"Search Impr. share",
"Conversions",
"Conv. rate")
FROM 'C:\Users\iantu\Desktop\Performance Marketing\Report inputs\input.csv'
DELIMITER ',' CSV HEADER encoding 'latin1';