Pinterest API: Get profile
Gets a public Pinterest profile and its visible boards in profile order. Monthly views are null when Pinterest does not show them.
Unofficial. Not affiliated with or endorsed by Pinterest.
Inputs
Values from the run on Oct 27, 2026, shown under Output.
- Username, required
username Pinterest username, @username, or profile link, for example nasa or https://www.pinterest.com/nasa/.
https://www.pinterest.com/pinterest/
- Max Boards optional
max_boards Maximum number of boards to return, for example 25.
50
Whole number from 1 to 50. Default
25.
Input as JSON
{ "username": "https://www.pinterest.com/pinterest/" , "max_boards": 50}Output
{ "bio": "Find your reason to go offline. 📌", "boards": [ { "board_link": "https://www.pinterest.com/pinterest/the-best-advent-calendars-of-2026/" , "board_name": "The best advent calendars of 2026", "number_of_pins": 51 }, { "board_link": "https://www.pinterest.com/pinterest/your-ultimate-holiday-starter-pack/" , "board_name": "Your ultimate holiday starter pack", "number_of_pins": 149 }, { "board_link": "https://www.pinterest.com/pinterest/holiday-decor-ideas/" , "board_name": "Holiday decor ideas", "number_of_pins": 183 } ], "username": "pinterest", "followers": 6267175, "following": 398, "next_cursor": "LT40MjQ2MDUxMzk4MDgxMDcxNDd8NTB8MTY0Mzk0MDczNDE3NzA3OCpHUUwqfDM4Zjc0MjhiN2Q4NjhlNTZiNmUyNTJmZGQ5MjMwMGM1NGY5ODNlZTA3MGYxOGU3MTRiNmZjMTVkM2I1ZmFmZGR8TkVXfA==", "display_name": "Pinterest", "profile_link": "https://www.pinterest.com/pinterest/" , "total_boards": 154, "website_link": "http://www.pinterest.com" , "monthly_views": null, "profile_picture_link": "https://i.pinimg.com/280x280_RS/1c/b5/61/1cb561c8e7b9c709f78d110a4b5f0863.jpg" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"pinterest.com/get_profile","input":{"username":"https://www.pinterest.com/pinterest/","max_boards":50}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "pinterest.com/get_profile" , "input": { "username": "https://www.pinterest.com/pinterest/" , "max_boards": 50 }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "pinterest.com/get_profile" , "input": { "username": "https://www.pinterest.com/pinterest/" , "max_boards": 50 } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run pinterest.com/get_profile# with {"username":"https://www.pinterest.com/pinterest/","max_boards":50}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "username" ], "properties": { "username": { "type": "string", "description": "Pinterest username, @username, or profile link, for example nasa or https://www.pinterest.com/nasa/." }, "max_boards": { "type": "integer", "default": 25, "maximum": 50, "minimum": 1, "description": "Maximum number of boards to return, for example 25." } }}Output schema
{ "type": "object", "required": [ "display_name", "username", "bio", "followers", "following", "monthly_views", "website_link", "profile_picture_link", "profile_link", "boards" ], "properties": { "bio": { "type": [ "string", "null" ] }, "boards": { "type": "array", "items": { "type": "object", "required": [ "board_name", "number_of_pins", "board_link" ], "properties": { "board_link": { "type": "string" }, "board_name": { "type": "string" }, "number_of_pins": { "type": [ "integer", "null" ] } } } }, "username": { "type": "string" }, "followers": { "type": [ "integer", "null" ] }, "following": { "type": [ "integer", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "profile_link": { "type": "string" }, "website_link": { "type": [ "string", "null" ] }, "monthly_views": { "type": [ "integer", "null" ] }, "profile_picture_link": { "type": [ "string", "null" ] } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
pinterest.com/get_profile- Returns
- display name, username, bio, followers, following, monthly views, website, picture, boards
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method pinterest.com/get_profile with the inputs above.
Ask your agent
- Can you pull up the public Pinterest profile for the username nasa and list its first 25 boards?
- I need the follower count, bio, and website for the Pinterest account @natgeo.
- Look up pinterest.com/martha-stewart and show me her display name, following count, and monthly views if visible.
- Get the top 10 boards from the Pinterest profile https://www.pinterest.com/etsy/ in profile order.
- What's on the Pinterest page for the user bonappetit? Show me the profile picture, bio, and boards.
See more
All Pinterest methodsFinds Pinterest pins for an idea in search order, with image, creator, board, saves and linked website. Limited to the first public search page.
pinterest.com/search_pinsGets an Instagram account's public profile from its username, @name or profile link: name, bio, exact follower, following and post counts, verified and private flags, first bio link, profile picture and account ID.
instagram.com/get_profileGets a public Threads profile by username or profile link, with bio, followers, verification, picture and bio links. Private profiles are not returned.
threads.com/get_profileGets the public X profile for a username or profile link, including counts, verification, images and account details. Does not include posts or a timeline.
x.com/get_profileGets a TikTok creator's public profile and totals (followers, following, likes, videos) from a username, @handle or profile link. Profiles not visible to public visitors cannot be returned.
tiktok.com/get_profileGets an Instagram account's follower count plus its posting and engagement over the last 30 days: posts published, average views of its videos and reels, and average likes and comments per post, from a username or profile link.
instagram.com/get_engagement_stats_2Lists the latest publicly embeddable posts and reels from an Instagram account, newest first. Without login Instagram may show fewer posts than requested. View counts that are not available are null.
instagram.com/list_recent_postsGets a public Reddit user's profile (post and comment karma, account creation date) and their recent posts and comments, newest first. Suspended or nonexistent users are reported as not found.
reddit.com/get_user