Instant lookup by URL
Paste a URL, get the numeric ID. No digging through the WordPress admin, no hovering over “Edit” links to read the query string.
Paste any WordPress URL and get its post ID or page ID in seconds. Powered by the WordPress REST API — look up one link or up to 1000 at once, then export to CSV.
Queries the site's WordPress REST API (enabled by default since WP 4.7). If your browser blocks the direct call, the tool retries through a public CORS proxy (corsproxy.io), which can see the URL you looked up.
Nothing saved yet. Save a list to reuse it later — it stays in this browser only, never on our servers.
Step 1 — Direct REST API. The tool calls yoursite.com/wp-json/wp/v2/posts?slug=your-slug straight from your browser. This works when the WordPress site allows cross-origin requests (most do).
Step 2 — Subdirectory installs. If the site root has no match, the tool also tries the first path segment as a WordPress install — so a blog at yoursite.com/blog/ or /news/ resolves against yoursite.com/blog/wp-json/ instead of the root.
Step 3 — Proxy fallback. If your browser's same-origin policy blocks the direct call, the tool retries via the public corsproxy.io service, which resolves most remaining cases. That third party sees the URL being looked up — nothing else, and never any credentials.
“Not Found”. The REST API answered but had no match. The item may be a draft, the slug may differ, or it's a custom post type not exposed to the REST API.
“Blocked”. Both direct and proxy requests failed — the site fully disabled its REST API (e.g. via a security plugin) or is behind aggressive bot protection.
| URL | ID | Type | Status | Edit |
|---|
Ctrl+Enter find IDs · Alt+R clear everything
A fast, private, browser-based way to look up WordPress post and page IDs — built for developers, agencies, and site owners who work with Elementor, custom queries, and shortcodes.
Paste a URL, get the numeric ID. No digging through the WordPress admin, no hovering over “Edit” links to read the query string.
Paste up to 1000 WordPress URLs at once and the tool works through every post and page ID in one run — with a Stop button if you change your mind.
Download all URLs, IDs, types, and statuses as a clean CSV for spreadsheets, audits, or migrations.
Every found item gives you direct “WP Editor” and “Elementor” links that open the correct post straight from the ID.
Nothing is installed on your site and no account is required. The lookup runs in your browser against the public REST API.
Any public WordPress site with the REST API enabled — your own sites or client sites you're auditing.
Every piece of content in WordPress — every post, page, attachment, and custom post type — is stored in the database with a unique numeric identifier called its ID. A URL like example.com/?p=482 or an editor link like /wp-admin/post.php?post=482&action=edit is really just pointing at the item whose ID is 482.
You need that ID constantly when you work with WordPress: to target a specific page in a shortcode, exclude a category or post from a query, build an Elementor template condition, set up a redirect, or reference content through the REST API. Because pretty permalinks hide the ID, finding it usually means opening the admin dashboard and hunting for it. This WordPress post and page ID finder skips that step — give it the public URL and it returns the ID.
WordPress numbers posts and pages from the same sequence, so an ID is unique across both. The difference is the post type: a blog article is the post type, while a static page (like “About” or “Contact”) is the page type. The tool checks both automatically and tells you which type each ID belongs to.
This started with a related-posts section. We were hand-picking which articles should appear under each post — deliberate editorial choices about semantic relevance, rather than whatever an algorithm happened to surface. WordPress wanted post IDs. What we had was a list of URLs.
So the actual work became: open the URL, find the post in wp-admin, hover the row, read the number out of the edit link, type it into the field, move on. For every post, on every page. It's not difficult work — it's just relentless, and it's easy to be off by one digit, which quietly puts the wrong article in the wrong place where nobody notices for months.
We went looking for something that would take a URL and hand back the ID. We couldn't find one. The plugins wanted to be installed on the site; everything else assumed you were already inside the dashboard, which is exactly where we were trying not to be.
So we built it. Paste the URLs, get the IDs back, copy them where they need to go. This tool exists because we needed it first — and if you're wiring up related posts, Elementor conditions, or a redirect map, you probably need it too.
Grab the full address of the WordPress post or page you want the ID for — for example https://example.com/about-us/.
Drop one URL per line into the box above. Add as many as you like, up to 1000 at a time for a bulk lookup.
The tool reads each slug, queries the site's REST API, and lists the post or page ID, its type, and a direct edit link. Copy a single ID, copy them all, or export the whole table to CSV.
Prefer to do it manually? In the WordPress admin, open Posts or Pages, hover over an item, and read the post= number in the status-bar link — or open it in the editor and check the URL. The tool just does this for you from the public URL, in bulk.
A quick reference for every part of the tool — reading your results, exporting them, and fixing the two statuses that aren't “Found”.
Paste one WordPress URL into the box and click Find IDs. The tool takes the last part of the URL (the slug), queries the site's REST API for a matching post and then a matching page, and shows the numeric ID with its type.
Enter one URL per line — up to 1000 at a time. The counter under the box shows how many valid lines it detected. Each row fills in as it is scanned and the progress bar tracks the batch. Lookups run one at a time with a short delay between them, deliberately: it keeps the tool polite to the target server, which is usually your own client's. A full 1000-URL run is a coffee break — press Stop any time and the results so far are kept.
post for a blog post, page for a static page.When a run finishes with any Not found or Blocked rows, a Retry failed button appears. It re-runs only those URLs and leaves your successful results untouched — worth a click, since Blocked is often a temporary proxy or rate-limit hiccup rather than a permanent one.
Name the URLs in the box and hit Save URLs to keep them for later — useful when you re-audit the same client site every month. Click a saved list to load it back into the box, or the bin icon to delete it. Lists live in this browser's localStorage: they survive a refresh, never reach our servers, and won't follow you to another device or survive clearing your browser data.
Use Copy on any row to grab a single ID, Copy all IDs to copy every found ID as a newline-separated list, or Export CSV to download the full table (URL, ID, type, status) for spreadsheets, audits, and migrations.
The WP button opens /wp-admin/post.php?post=ID&action=edit and the Elementor button opens the same post in the Elementor editor. You need to be logged in to that WordPress site for the editor to open.
Plenty of WordPress sites don't live at the domain root — a blog at example.com/blog/ or /news/ keeps its REST API at example.com/blog/wp-json/. The tool checks the root first and then the first path segment, so these resolve without you doing anything. Edit links follow the same base, pointing at /blog/wp-admin/ rather than the root.
The REST API answered but had no match for that slug. Common reasons: the content is a draft or private, the slug in the URL differs from the stored slug, or it's a custom post type that isn't exposed to the REST API.
Both the direct request and the proxy fallback failed. The site has likely disabled its REST API (often via a security plugin) or sits behind aggressive bot protection. If every row is blocked, check the URL host is correct and reachable and that you're online — the public CORS proxy can also be temporarily unavailable.
The lookup runs in your browser. There is no SerpHammer backend, nothing you paste is stored on our servers, and saved lists stay in this browser's own storage. The URLs go to the target WordPress site's own REST API and — only when a direct call is blocked — to the public corsproxy.io service, which then sees that URL. Only public URLs are ever sent; never credentials.
Paste the full URL into the finder at the top of this page and click Find IDs. The tool reads the slug from the URL, queries the site's WordPress REST API, and returns the numeric post or page ID within seconds — no login or plugin required.
It works on any public WordPress site with the REST API enabled, which is the default since WordPress 4.7. Sites that fully disable the REST API through a security plugin, or that sit behind aggressive bot protection, may return a Blocked status.
Yes — it's completely free, needs no sign-up, and runs entirely in your browser. Look up a single URL or paste up to 1000 at once and export the results as CSV.
Both are unique numeric identifiers WordPress assigns to content. A post ID belongs to a blog post (post type post); a page ID belongs to a static page (post type page). They share one numbering sequence, so the tool checks both and reports which type it found.
Blocked means both the direct request and the proxy fallback failed. Usually the site has disabled its REST API — often through a security plugin — or sits behind a firewall or bot protection that rejects automated requests. If every row is blocked, check that the host is correct and reachable and that you are online, since the public CORS proxy the tool falls back to can also be temporarily unavailable.
The lookup runs entirely in your browser. There is no SerpHammer backend, nothing you paste is stored on our servers, and your lookups are not tracked. One exception is worth knowing: when a WordPress site blocks a direct browser request, the tool retries through a public CORS proxy (corsproxy.io), so that URL is visible to that third-party service. Only the public URL is ever sent — never any credentials, because the lookup uses the site's public REST API.
Paste a URL, get the ID. Free, instant, and no plugin to install.
Open the ID Finder
Install WP ID Finder
Add it to your desktop or home screen — it opens in its own window and keeps working offline.