GrabzIt Screenshot API for WordPress Website Captures
Set up GrabzIt’s WordPress plugin, add a screenshot shortcode, and understand full-page capture, API security, options, and common fixes.
To add a GrabzIt screenshot to a WordPress post, install its official Web Capture plugin, enter your GrabzIt application key in the plugin settings, authorize your WordPress domain in your GrabzIt account, then wrap the target page URL in a [grabzit] shortcode. For example: [grabzit]https://example.com/[/grabzit]. The shortcode can take documented attributes such as format="png". Check the current option documentation and your package before relying on additional attributes. GrabzIt’s WordPress plugin instructions describe this setup.
Choose the right integration
The plugin is the shortest route when a WordPress editor needs a screenshot embedded in a post or page. If your application needs to capture pages outside WordPress, automate captures from a backend, or control more rendering details, consider GrabzIt’s REST API or a supported language library. GrabzIt documents REST access and native libraries on its API overview.
| Approach | Good fit | Credential location |
|---|---|---|
| WordPress plugin and shortcode | Embedding a capture in WordPress content | Plugin settings |
| REST API | Backend jobs and custom applications | Keep the application key on the server |
| Language library | Integrating captures into an existing application | Usually server-side; follow the library guidance |
Install and configure the WordPress plugin
- Install the official GrabzIt Web Capture plugin in WordPress.
- Create or sign in to a GrabzIt account and copy its application key.
- Open the plugin settings in WordPress and enter the application key.
- In GrabzIt, authorize the domain used by the WordPress site. If the site has separate staging and production hostnames, check that the hostname making the capture request is authorized.
- Add a shortcode to the post or page and test it with a representative target page.
Plugin labels and screens can change, so follow the current vendor instructions if a setting has moved. The setup and domain authorization requirements are described on the official plugin page.
Add a screenshot with a shortcode
Put the target URL between the shortcode tags where the screenshot should appear:
[grabzit]https://example.com/[/grabzit]
The plugin documentation also demonstrates attributes, for example choosing PNG output:
[grabzit format="png"]https://example.com/[/grabzit]
Use only attributes documented for the plugin. The plugin page’s text-to-image example notes that its width, height, browserheight, and target attributes require a paid package. That note applies to the cited example; check package eligibility for the specific option you plan to use rather than assuming all options have the same restriction. See the plugin examples.
Full-page captures and rendering options
GrabzIt supports full-page capture, but the exact parameter name depends on whether you use the plugin, REST API, or a language library. The REST documentation describes browser dimensions and full-page capture, and its examples use a browser height of -1 for full length. Confirm the matching option in the interface you are using and check the resulting dimensions before publishing. See the REST API options and the relevant Node.js technical documentation.
Other documented capture controls vary by capture type and integration. They include output format and sizing, browser dimensions, capture duration, and rendering options. The Node.js documentation also lists options such as country, export URL, ad and cookie controls, and an address for resolving relative resources. Do not copy a parameter from one integration into another without checking its name and support in that integration.
- Output: choose an image or document format supported by the selected interface; the REST API also documents video and data formats.
- Viewport versus full page: use viewport dimensions for a fixed visible area and the documented full-length setting for a tall page.
- Delayed content: use an appropriate capture duration where the integration exposes it, and validate pages that render content after JavaScript runs.
- Relative assets: if HTML refers to stylesheets or images by relative paths, supply or verify the base address option supported by the chosen library.
- Package coverage: confirm that the selected feature is available in your current package.
Using the REST API safely
For a backend workflow, call the REST API from your server and keep the application key in server-side configuration. Do not place a REST application key in a browser script: GrabzIt warns that a client-side REST request exposes the key and points browser integrations toward its JavaScript API. The REST documentation also describes IP authorization to restrict which servers can access the API. Review the REST documentation and JavaScript API parameters for the interface-specific options.
For a WordPress shortcode, use the plugin’s documented syntax rather than exposing the REST key in post content or theme JavaScript. If you need application-level control, make the API request on a server you control and return only the resulting capture to the browser.
Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. Its single GET request returns a PNG, JPEG, WebP, or PDF. The API accepts a URL, and the response can be saved as an image file.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for parameters and integration details. ScreenshotNeo removes cookie banners, newsletter popups, and chat widgets before the capture. Bot checks, blank pages, and failed loads are never billed, and response headers say whether the page was clean and billed. Its MCP server lets AI agents use take_screenshot, get_page_info, and capture_pdf. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. Sign up for free and get 1,000 screenshots a month with no card.
cURL, Python, and Node.js examples
These examples show direct URL capture through GrabzIt’s REST API. Treat them as server-side examples, keep the application key private, and check the REST documentation for required parameters, response handling, and any capture-type-specific settings. The available response formats and options depend on the selected API operation. See GrabzIt REST API documentation.
cURL
curl --get "https://api.grabz.it/services/convert" \
--data-urlencode "key=$GRABZIT_APPLICATION_KEY" \
--data-urlencode "url=https://example.com/" \
--output capture
Confirm the current REST endpoint and parameter names in GrabzIt’s documentation for the capture type you intend to request; do not assume an endpoint or option shown for another operation applies.
Python
import os
import requests
key = os.environ["GRABZIT_APPLICATION_KEY"]
response = requests.get(
"https://api.grabz.it/services/convert",
params={"key": key, "url": "https://example.com/"},
timeout=90,
)
response.raise_for_status()
with open("capture", "wb") as output:
output.write(response.content)
Install the dependency with python -m pip install requests. Confirm whether your chosen GrabzIt request returns the capture directly or uses another documented retrieval flow, and use the corresponding API operation.
Node.js
const key = process.env.GRABZIT_APPLICATION_KEY;
if (!key) throw new Error("Set GRABZIT_APPLICATION_KEY first");
const query = new URLSearchParams({ key, url: "https://example.com/" });
const response = await fetch(`https://api.grabz.it/services/convert?${query}`);
if (!response.ok) {
throw new Error(`GrabzIt request failed: ${response.status}`);
}
const bytes = new Uint8Array(await response.arrayBuffer());
await import("node:fs/promises").then(({ writeFile }) => writeFile("capture", bytes));
These REST snippets illustrate how to keep a key on the server and handle bytes; validate endpoint, authentication, and response behavior against the current documentation for the operation you choose. GrabzIt also provides language-specific libraries; the Node.js technical documentation lists its library options.
Troubleshooting
| Symptom | Likely cause | What to check |
|---|---|---|
| The shortcode appears as text or produces no capture | The plugin is missing or inactive, the shortcode is malformed, or the URL is invalid | Activate the official plugin, check the opening and closing tags, and use a complete URL including its scheme. |
| Authorization or key error | The key is incorrect, the domain is not authorized, or the request originates from an unapproved server | Re-enter the application key, authorize the WordPress hostname, and check any IP restrictions configured for REST access. |
| Capture omits content | The page renders content after the capture starts or loads it lazily | Use the documented duration or rendering controls for your integration, and test the target page’s load behavior. |
| Only part of a long page appears | The request is using viewport capture or the full-page option is not set for that interface | Enable the full-page setting supported by that plugin/API/library and confirm the output dimensions. |
| Images or styles are missing | Relative resources do not resolve from the capture request, or the target blocks the fetch | Check the page’s asset URLs and the library’s base-address option; verify access to the resources. |
| An option is rejected or has no effect | The option name belongs to another interface, or the package does not include it | Check the parameter list for the exact integration and verify package availability. The plugin’s cited paid-package note covers specific text-to-image attributes. |
| A trial capture has a watermark | GrabzIt’s screenshot product page says free-trial API captures include a watermark | Check the current trial and package terms before using trial output commercially. |
| Browser code exposes the key | A REST request is being made directly from client-side JavaScript | Move the REST request to a backend or use GrabzIt’s JavaScript API as directed in its documentation. |
Performance, reliability, and cost considerations
Capture time depends on the target page, its assets, and the rendering controls used. A page that waits on third-party scripts or delayed content may take longer than a static page. Test representative pages, choose a capture duration that lets required content render, and avoid an unnecessarily long wait for pages that are already ready.
For reliability, handle request failures and timeouts in your backend, keep credentials in protected configuration, and validate the returned file before storing or embedding it. If captures are part of a publishing workflow, test a representative page after changes to its theme, scripts, or content. The dossier does not establish service uptime or comparative capture benchmarks, so none are claimed here.
Check package limits and option eligibility against current GrabzIt terms before building a volume estimate. The plugin documentation identifies a paid-package requirement for specific attributes in its text-to-image example, while the product page says trial API screenshot captures include a watermark. The reviewed documentation does not establish current prices or quotas; consult the vendor’s current plan information before budgeting.
FAQ
Can I add a screenshot of any website to a WordPress post?
The shortcode accepts a target URL in the plugin’s documented example. Whether a particular page renders as expected depends on authorization, page behavior, and the capture settings available to your integration.
Does a WordPress screenshot have to be full-page?
No. Use the capture mode that matches the output you want. Full-page capture is documented, but its option name and availability depend on the selected integration.
Can I use the GrabzIt REST API from a public WordPress page?
Do not expose the REST application key in public browser code. Use the plugin, a server-side request, or the documented JavaScript API for browser-side use.
Will the free trial output be suitable for a production post?
GrabzIt’s screenshot product page says free-trial API captures include a watermark. Check current plan details and terms before choosing trial output for a public production page.


