Discover/Figma API
live

Figma APIfigma.com

Access Figma job postings via API. List, search, and retrieve full job details including title, department, location, and HTML description.

This API takes change requests — .
Endpoint health
verified 2h ago
list_jobs
get_job
search_jobs
3/3 passing latest checkself-healing
Endpoints
3
Updated
3h ago

What is the Figma API?

The Figma Careers API exposes 3 endpoints for accessing open job postings at Figma. Use list_jobs to retrieve all current openings with department, location, and URL, search_jobs to match postings by keyword against titles and description content, or get_job to pull a specific posting's full HTML job description by its numeric Greenhouse ID. Each job object includes 6 fields: id, title, department, location, url, and updated_at.

Try it
Filter jobs by location (case-insensitive substring match, e.g. 'San Francisco', 'London', 'Remote').
Filter jobs by department name (case-insensitive substring match, e.g. 'Engineering', 'Sales', 'Design').
api.parse.bot/scraper/8a938f9f-30ba-40d2-a56a-56daea650166/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/8a938f9f-30ba-40d2-a56a-56daea650166/list_jobs?location=San+Francisco&department=Engineering' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace figma-com-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.


"""Walkthrough: Figma Careers SDK — browse and inspect job postings."""
from parse_apis.figma_com_api import FigmaCareers, JobNotFound

client = FigmaCareers()

# List engineering jobs filtered by department
for job in client.job_summaries.list(department="Engineering", limit=5):
    print(job.title, "|", job.location)

# Search for product manager roles
result = client.job_summaries.search(query="product manager", limit=3).first()
if result:
    print(f"Found: {result.title} in {result.department}")

    # Drill into full job details
    detail = result.details()
    print(detail.title, "|", detail.location, "|", len(detail.content), "chars")

# Typed error handling for a non-existent job
try:
    client.jobsummary(id=9999999999).details()
except JobNotFound as exc:
    print(f"Job not found: {exc.job_id}")

print("exercised: job_summaries.list / job_summaries.search / details / jobsummary")
All endpoints · 3 totalmissing one? ·

List all open job postings at Figma. Returns each job's title, department, location, and URL. Optionally filter by department name or location substring match (case-insensitive). Results are returned as a single page containing all matching jobs.

Input
ParamTypeDescription
locationstringFilter jobs by location (case-insensitive substring match, e.g. 'San Francisco', 'London', 'Remote').
departmentstringFilter jobs by department name (case-insensitive substring match, e.g. 'Engineering', 'Sales', 'Design').
Response
{
  "type": "object",
  "fields": {
    "jobs": "array of job summary objects with id, title, department, location, url, updated_at",
    "total": "integer"
  },
  "sample": {
    "data": {
      "jobs": [
        {
          "id": 5707966004,
          "url": "https://boards.greenhouse.io/figma/jobs/5707966004?gh_jid=5707966004",
          "title": "AI Applied Scientist",
          "location": "San Francisco, CA • New York, NY • United States",
          "department": "Engineering",
          "updated_at": "2026-04-15T15:32:40-04:00"
        }
      ],
      "total": 38
    },
    "status": "success"
  }
}

About the Figma API

Listing and Filtering Jobs

The list_jobs endpoint returns every open position at Figma as a flat array. Each object includes a numeric id, title, department, location, url, and updated_at timestamp. You can narrow results using the department parameter (e.g. Engineering, Design, Sales) or the location parameter (e.g. San Francisco, Remote). Both filters are case-insensitive substring matches, so partial strings work. The response also includes a total count of matched jobs.

Keyword Search

The search_jobs endpoint accepts a required query string and matches it against both job titles and the full description text of each posting. You can combine query with the same department and location filters available in list_jobs. This is useful for finding roles that mention a specific technology, skill, or team name without knowing the exact department structure Figma uses.

Full Job Detail

The get_job endpoint takes a single required job_id — a numeric Greenhouse job ID available from the id field in list_jobs or search_jobs results — and returns the complete job posting. The content field contains the full HTML job description, which typically includes role responsibilities, qualifications, and benefits text. The rest of the fields mirror the summary object: title, department, location, url, and updated_at.

Reliability & maintenanceVerified

The Figma API is a managed, monitored endpoint for figma.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when figma.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official figma.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
2h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor Figma's engineering headcount trends by tracking new postings in the Engineering department over time.
  • Build a job alert tool that notifies users when Figma posts a role matching a specific keyword like 'machine learning' or 'iOS'.
  • Aggregate Figma job openings into a multi-company tech careers board alongside other employers.
  • Analyze which cities and remote arrangements Figma is hiring for by collecting location fields from list_jobs.
  • Parse the HTML content field from get_job to extract required skills and qualifications for competitive analysis.
  • Cross-reference Figma hiring volume by department against funding or product announcement timelines.
  • Programmatically check whether a specific role is still open before applying by querying get_job with a known Greenhouse job ID.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min

One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does Figma have an official public API for job listings?+
Figma offers a public developer API for design file access at https://www.figma.com/developers/api, but it does not include an endpoint for job postings. This Parse API covers Figma's careers data specifically.
What does get_job return beyond what list_jobs provides?+
The get_job endpoint adds a content field containing the full HTML job description — responsibilities, qualifications, and any other structured content from the posting. The summary endpoints (list_jobs and search_jobs) return only id, title, department, location, url, and updated_at.
Does the API support pagination for list_jobs results?+
No pagination parameters are exposed. list_jobs returns all matching jobs in a single response along with a total count. If Figma has a large number of open roles, the full set is returned at once. You can fork this API on Parse and revise it to add offset or page-based pagination if your use case requires chunked responses.
Can I retrieve closed or historical job postings through this API?+
The API covers only currently open job postings at Figma. Closed or archived roles are not included in any endpoint's results. You can fork it on Parse and revise it to add a historical tracking layer by storing snapshots of list_jobs responses over time.
How specific can department or location filters be in list_jobs?+
Both department and location use case-insensitive substring matching, so passing Eng will match Engineering and passing New York will match any location string containing that phrase. Exact department names used by Figma (such as Product Design or Go-To-Market) are discoverable by first calling list_jobs without filters and inspecting the returned department fields.
Page content last updated . Spec covers 3 endpoints from figma.com.
Related APIs in JobsSee all →
Workday Jobs API
Search and retrieve job postings and detailed descriptions from any company's Workday career site. Find open positions across all organizations using Workday's hiring platform and access complete job details in one place.
framer.com API
Search and browse thousands of website templates from the Framer Marketplace to find designs for portfolios, SaaS sites, agencies, and more. Get detailed information about specific templates to help you choose the perfect design before creating your site on Framer.
metacareers.com API
Search and browse Meta job openings across all departments and locations. Filter by keyword, experience level, or role category — including University Graduate and AR/VR specializations — and retrieve comprehensive details for each listing, including job description, requirements, salary range, and application link.
jobs.lever.co API
Access job postings on any Lever-hosted company job board. List, filter, search, and group open roles, retrieve full posting details, and extract application form questions via Lever's public API.
nofluffjobs.com API
Search and filter job openings from No Fluff Jobs by category, seniority level, location, and keywords to find IT, marketing, sales, and HR positions tailored to your needs. Retrieve detailed information about specific job postings including requirements, company details, and employment terms to help you make informed application decisions.
cv.lv API
Search for job listings on CV.lv and access detailed job descriptions, categories, locations, and information about top employers. Find the right opportunity by browsing available positions across different industries and regions.
jobs.apple.com API
Search and browse open positions at Apple by keywords, location, and role, then view detailed job descriptions and requirements. Use autocomplete features to quickly find specific locations and job categories that match your career interests.
chirojobs.com API
Search and browse chiropractic job listings with detailed information, explore job categories, and access ChiroJobs blog content and pricing—all in one place. Find related positions, compare opportunities, and stay informed with the latest industry insights.