BLACK FRIDAY
Save 59% on PageForge Annual $191/year $485/year
Claim 59% Off →
API for Ninja Forms icon
Actively maintained Tested with WP 7.1

API for Ninja Forms

API for Ninja Forms is the best, most powerful, and feature-complete REST API solution for Ninja Forms. Effortlessly export and integrate your form submissions with external applications, webhooks, and analytics…

Active installs10+10+ tier
Downloads · 30d132▲ +149.1% vs prev. 30d
Rating—0 reviews
Health score66/100Good
All-time downloads723Since Jul 2025
Support resolved—No recent threads
RequiresWP 6.4PHP 8.1+
Downloads · 7d17▼ -19% week over week
Our verdict

Solid choice

API for Ninja Forms is a solid plugin choice in 2026, with a few things worth checking first. It runs on 10+ sites and was last updated 3 weeks ago, and scores 66/100 on our health check.

  • Actively developed — last update 3 weeks ago
  • Tested with the latest WordPress (7.1)
  • Small user base (10+ active installs)
  • Very few reviews so far
  • Needs PHP 8.1 or newer

How does it stack up?

Side-by-side on installs, updates, ratings & support

Daily downloads

71523Jul 7Aug 20Oct 4
Yesterday0
Daily average (1y)2
Peak day31Sep 15, 2026
Last 12 months585

Download spikes usually follow a new release — each site that auto-updates counts as a download.

Rankings

Where API for Ninja Forms stands today

WordPress.org search rankings

Live position in the plugin search, top 100
KeywordPositionCompeting pluginsCategory
api >100 10,000 Best api plugins →
ninja forms >100 669 Best ninja forms plugins →
NinjaForms #8 32 Best NinjaForms plugins →
rest-api >100 7,555 Best rest-api plugins →

Version adoption

Share of active sites per release.

  • 1.0100.0%

About API for Ninja Forms

From the official readme · v1.1.0

Description

API for Ninja Forms is the best, most powerful, and feature-complete REST API solution for Ninja Forms. Effortlessly export and integrate your form submissions with external applications, webhooks, and analytics platforms with unparalleled speed, reliability, and security.

Whether you need automated Excel reporting, instant PDF downloads, structured JSON data feeds, or real-time data synchronization, API for Ninja Forms delivers a best-in-class integration experience built for modern developers and business workflows.

Why API for Ninja Forms is the Best Choice:

  • Forms Discovery Endpoint: Query authorized forms, submission counts, and field definitions with strict per-key access control.
  • Cursor & Offset Pagination: Seamlessly paginate large historical datasets with page/per_page or cursor sync via since_id/before_id.
  • Single Record Retrieval: Instant lookup of specific submissions (/form/{id}/submission/{sub_id}) with cross-form ownership validation.
  • Unparalleled Multi-Format Exports: Stream submissions on-demand in 6 versatile formats: JSON, Excel (XLSX), PDF document reports, CSV spreadsheets, XML, and NDJSON/JSONL.
  • Military-Grade Payload Encryption: Protect sensitive customer and form data with state-of-the-art AEAD response encryption (AES-256-GCM, AES-128-GCM, and Sodium Secretbox).
  • Advanced Rate Limiting Protection: Safeguard your server against scraping, probing, and brute-force key exploitation with admin-controlled rate limits per minute, hour, or day.
  • Granular Form Access Control: Issue form-specific API keys with instant 1-click test suite tools and single-page key management.
  • Lightning-Fast & Ultra-Optimized: Zero-overhead streaming designed for high throughput, low memory footprint, and maximum performance.

Usage

1. Authentication

Pass your API key in the standard HTTP Authorization header:
Authorization: Bearer YOUR_API_KEY

2. Available Endpoints

  • Discover Authorized Forms:
    GET /wp-json/nf-submissions/v1/forms
    Returns all forms the authenticated key is authorized to access, with total submission counts and field counts.

  • Retrieve Submissions (with Pagination & Sorting):
    GET /wp-json/nf-submissions/v1/form/{form_id}
    Query parameters:

    • page (default: 1): Page number for offset pagination.
    • per_page / limit (default: 50, max: 500): Number of records per page.
    • offset: Explicit record offset (overrides page).
    • since_id / after_id: Retrieve only submissions with ID greater than this value (cursor pagination).
    • before_id / max_id: Retrieve only submissions with ID less than this value.
    • order: asc (default) or desc.
    • orderby: date (default), id, title, or modified.
    • begin_date & end_date: Filter by submission date range (YYYY-MM-DD).
    • format: json (default), csv, xlsx, pdf, xml, or jsonl.
  • Retrieve Single Submission:
    GET /wp-json/nf-submissions/v1/form/{form_id}/submission/{submission_id}
    Returns the exact submission record. Validates that the submission belongs to the specified form.

  • Retrieve Form Field Metadata:
    GET /wp-json/nf-submissions/v1/form/{form_id}/fields
    Returns the list of field labels, keys, and types for the specified form.

3. Pagination & Headers

When retrieving submissions in JSON format, standard pagination headers are included in the response:
* X-WP-Total: Total count of matching submissions.
* X-WP-TotalPages: Total calculated pages.
* X-WP-Page: Current page number.
* X-WP-PerPage: Records per page limit.
* X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset: Rate-limiting status (if enabled).

4. Payload Encryption & Decryption

When payload encryption is enabled on an API key:
* Text Feeds (JSON, CSV, XML, JSONL): Encrypted as a JSON envelope containing iv, tag, and ciphertext.
* Binary Streams (PDF, XLSX): Delivered as raw binary (.enc extension) with cryptographic headers (X-Crypto-IV, X-Crypto-Tag, X-Crypto-Nonce, X-Crypto-Algorithm).

5. PHP Code Examples (cURL & wp_remote_get)

  • Discover Authorized Forms via Native PHP cURL:
    `php
    $ch = curl_init( ‘https://example.com/wp-json/nf-submissions/v1/forms’ );
    curl_setopt_array( $ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
    ‘Authorization: Bearer YOUR_API_KEY’,
    ‘Accept: application/json’,
    ],
    ] );
    $response = curl_exec( $ch );
    $http_status = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
    curl_close( $ch );

$data = json_decode( $response, true );

// Graceful error handling for invalid API key or server error
if ( 200 !== $http_status || ! is_array( $data ) || isset( $data[‘code’] ) ) {
$error = $data[‘message’] ?? ‘Failed to retrieve forms’;
exit( “API Error ({$http_status}): {$error}\n” );
}

foreach ( $data as $form ) {
echo “Form ID: {$form[‘id’]} | Title: {$form[‘title’]} | Submissions: {$form[‘submissions_count’]}\n”;
}
`

  • Fetch Submissions via Native PHP cURL (External Apps / Scripts):
    `php
    $ch = curl_init( ‘https://example.com/wp-json/nf-submissions/v1/form/1?page=1&per_page=50’ );
    curl_setopt_array( $ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
    ‘Authorization: Bearer YOUR_API_KEY’,
    ‘Accept: application/json’,
    ],
    ] );
    $response = curl_exec( $ch );
    $http_status = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
    curl_close( $ch );

$data = json_decode( $response, true );

if ( 200 !== $http_status || ! is_array( $data ) || isset( $data[‘code’] ) ) {
$error = $data[‘message’] ?? ‘Failed to retrieve submissions’;
exit( “API Error ({$http_status}): {$error}\n” );
}

$submissions = $data;
`

  • Download Binary PDF / Excel (.xlsx) File via Native PHP cURL:
    `php
    $ch = curl_init( ‘https://example.com/wp-json/nf-submissions/v1/form/1?format=pdf’ );
    curl_setopt_array( $ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTPHEADER => [
    ‘Authorization: Bearer YOUR_API_KEY’,
    ],
    ] );
    $file_contents = curl_exec( $ch );
    $http_status = curl_getinfo( $ch, CURLINFO_HTTP_CODE );
    curl_close( $ch );

if ( 200 === $http_status ) {
file_put_contents( ‘submissions.pdf’, $file_contents );
} else {
$error = json_decode( $file_contents, true );
echo “API Error ({$http_status}): ” . ( $error[‘message’] ?? ‘Download failed’ ) . “\n”;
}
`

  • Discover Authorized Forms via WordPress HTTP API (wp_remote_get):
    `php
    $response = wp_remote_get( ‘https://example.com/wp-json/nf-submissions/v1/forms’, [
    ‘headers’ => [ ‘Authorization’ => ‘Bearer YOUR_API_KEY’ ],
    ] );

if ( is_wp_error( $response ) ) {
exit( ‘Network Error: ‘ . $response->get_error_message() );
}

$status = wp_remote_retrieve_response_code( $response );
$data = json_decode( wp_remote_retrieve_body( $response ), true );

// Graceful error handling for invalid API key or server error
if ( 200 !== $status || ! is_array( $data ) || isset( $data[‘code’] ) ) {
$error = $data[‘message’] ?? ‘Failed to retrieve forms’;
exit( “API Error ({$status}): {$error}\n” );
}

foreach ( $data as $form ) {
echo “Form ID: {$form[‘id’]} | Title: {$form[‘title’]} | Submissions: {$form[‘submissions_count’]}\n”;
}
`

  • Fetch Submissions via WordPress HTTP API (wp_remote_get):
    `php
    $response = wp_remote_get( ‘https://example.com/wp-json/nf-submissions/v1/form/1’, [
    ‘headers’ => [ ‘Authorization’ => ‘Bearer YOUR_API_KEY’ ],
    ] );

if ( is_wp_error( $response ) ) {
exit( ‘Network Error: ‘ . $response->get_error_message() );
}

$status = wp_remote_retrieve_response_code( $response );
$data = json_decode( wp_remote_retrieve_body( $response ), true );

if ( 200 !== $status || ! is_array( $data ) || isset( $data[‘code’] ) ) {
$error = $data[‘message’] ?? ‘Failed to retrieve submissions’;
exit( “API Error ({$status}): {$error}\n” );
}

$submissions = $data;
`

Third-Party Resources

This plugin bundles and utilizes the following open-source library:

Support

For support and feature requests, please visit https://sightfactory.com

Installation

  1. Download the plugin ZIP file.
  2. Upload the extracted folder to the /wp-content/plugins/ directory.
  3. Activate the plugin through the ‘Plugins’ menu in WordPress.
  4. Generate a REST API key by navigating to Settings > NF API Keys.
  5. Make authenticated REST requests by including the header: Authorization: Bearer YOUR_API_KEY.

Frequently asked questions

What API file formats are supported?

JSON, CSV, XLSX (Microsoft Excel), PDF, XML, and NDJSON/JSONL formats are supported.

How do I synchronize new submissions in real-time?

Use cursor pagination with ?since_id={last_synced_id}&order=asc. Your application only receives new submissions created since the last sync.

How do I enable response payload encryption?

Navigate to Settings > NF API Keys in your WordPress dashboard, check “Enable Response Payload Encryption”, select your cipher strategy (AES-256-GCM, AES-128-GCM, or Sodium Secretbox), and generate a key. Keep your secret decryption key safe.

Why does an encrypted PDF or XLSX file end in .enc?

Binary files exported with encryption enabled are saved with a .enc file extension (e.g., form-1-submissions-encrypted.pdf.enc). Because the file content consists of raw encrypted bytes, attempting to open the file directly in Adobe Reader or Microsoft Excel without decrypting it first will report a corrupted file error. The .enc extension clearly indicates that the file must be decrypted using your secret key first.

How do I decrypt binary files (PDF & XLSX) using PHP?

Read the binary body and HTTP response headers (X-Crypto-IV, X-Crypto-Tag): `php $response = wp_remote_get(‘https://example.com/wp-json/nf-submissions/v1/form/1?format=pdf’, [ ‘headers’ => [‘Authorization’ => ‘Bearer YOUR_API_KEY’] ]); if ( is_wp_error( $response ) || 200 !== wp_remote_retrieve_response_code( $response ) ) { exit( ‘Download failed or unauthorized.’ ); } $headers = wp_remote_retrieve_headers($response); $binary_key = hex2bin(‘YOUR_DECRYPTION_KEY’); $iv = base64_decode($headers[‘x-crypto-iv’]); $tag = base64_decode($headers[‘x-crypto-tag’]); $decrypted_pdf = openssl_decrypt(…

How do I decrypt JSON payloads using PHP?

Parse the JSON response envelope and decrypt using OpenSSL: php $json = json_decode($response_body, true); if (!empty($json['encrypted'])) { $binary_key = hex2bin('YOUR_DECRYPTION_KEY'); $plaintext = openssl_decrypt( base64_decode($json['ciphertext']), $json['algorithm'], $binary_key, OPENSSL_RAW_DATA, base64_decode($json['iv']), base64_decode($json['tag']) ); $data = json_decode($plaintext, true); }

Does this plugin slow down my website?

No. Text feeds use lightweight JSON structures and binary feeds use raw stream transmission to ensure high throughput and low memory usage.

Changelog

IMPORTANT: 1) GET /form/{id} now defaults to 50 records per page (use ?limit=500 or pagination headers for more). 2) date_submitted now returns standard SQL datetime (YYYY-MM-DD HH:MM:SS) instead of localized text. Verify external integrations before updating.

1.1.0

  • Added export format support for XLSX (Microsoft Excel), CSV, XML, and NDJSON/JSONL.
  • Added record limit support (?limit=N) for pagination and performance control.
  • Implemented real-time browser Web Crypto decryption preview for encrypted feeds.
  • Updated Setasign/FPDF library to version 1.9.0.
  • Enhanced security, superglobal unslashing, and full WP Plugin Check compliance.

1.0.1

Bugfix

1.0.0

Initial public release

Full changelog on WordPress.org →

Screenshots

Granular API key management with per-form access controls, expiration dates, and rate limits.
Granular API key management with per-form access controls, expiration dates, and rate…
End-to-end response payload encryption (AES-256-GCM & Sodium Secretbox) with secret key controls.
End-to-end response payload encryption (AES-256-GCM & Sodium Secretbox) with secret key…
Interactive developer documentation with ready-to-use PHP, JavaScript, and cURL examples.
Interactive developer documentation with ready-to-use PHP, JavaScript, and cURL examples.

For developers

Is this your plugin? Show off the numbers.

Add a live badge to your site, docs or GitHub README. It updates on its own — no account needed.

Active installs badge Rating badge Health score badge

Best API for Ninja Forms alternatives

All api plugins →
Alternatives
Rank Plugin Active installs Rating Updated Health
1 WP Consent API WP Consent API Simple Consent API to read and register the current consent category. by Rogier Lankhorst 200K+ ★★★★★★★★★★ 5 (2) 3 weeks ago 86
2 Disable REST API Disable REST API Disable the use of the REST API on your website to site users. Now with User Role support! by Dave McHale 80K+ ★★★★★★★★★★ 4.8 (38) 3 years ago 48
3 Mailgun for WordPress Mailgun for WordPress Easily send email from your WordPress site through Mailgun using the HTTP API or SMTP. by Mailgun 80K+ ★★★★★★★★★★ 3.8 (49) 1 week ago 86
4 Make Connector Make Connector Make Connector. Make lets you design, build, and automate by connecting with WordPress in… by Make 70K+ ★★★★★★★★★★ 2.7 (25) 8 months ago 41
5 Disable WP REST API Disable WP REST API Disables the WP REST API for visitors not logged into WordPress. by Jeff Starr 30K+ ★★★★★★★★★★ 4.8 (36) 2 months ago 86
6 WP REST Cache WP REST Cache Enable caching of the WordPress REST API and auto-flush caches upon wp-admin editing. by Acato 10K+ ★★★★★★★★★★ 4.9 (42) 2 months ago 70
7 WPGet API – Connect to any external REST API WPGet API – Connect to any external REST API Connect any REST API to WordPress. WPGet API enables easy API integration, allowing you to… by David Anderson / Team Updraft 10K+ ★★★★★★★★★★ 5 (32) 2 months ago 90
8 WPGraphQL for ACF WPGraphQL for ACF WPGraphQL for ACF seamlessly integrates Advanced Custom Fields with WPGraphQL. by Jason Bahl 10K+ ★★★★★★★★★★ 5 (1) 4 weeks ago 75
9 WordPress REST API (Version 2) WordPress REST API (Version 2) Access your site's data through an easy-to-use HTTP REST API. (Version 2) by Ryan McCue 10K+ ★★★★★★★★★★ 4.2 (34) 9 years ago 43
10 WP REST API Controller WP REST API Controller Enable a UI to toggle visibility and customize properties in WP REST API requests. by Evan Herman 8K+ ★★★★★★★★★★ 4.3 (12) 4 years ago 38

FAQ

API for Ninja Forms: quick answers

Straight answers, pulled from live WordPress.org data.

Live data from WordPress.org · checked Oct 5, 2026

Is API for Ninja Forms free?

Yes. API for Ninja Forms is free to download and use from the official WordPress.org plugin directory.

Is API for Ninja Forms safe to use in 2026?

API for Ninja Forms is a solid plugin choice in 2026, with a few things worth checking first. It runs on 10+ sites and was last updated 3 weeks ago, and scores 66/100 on our health check.

How many websites use API for Ninja Forms?

API for Ninja Forms is active on 10+ WordPress websites and has been downloaded 723 times since it launched in July 2025. It was downloaded 132 times in the last 30 days.

Does API for Ninja Forms work with WordPress 7.1?

Yes. The developer has tested API for Ninja Forms up to WordPress 7.1.2, the latest release. It requires WordPress 6.4 or newer.

What PHP version does API for Ninja Forms need?

API for Ninja Forms requires PHP 8.1 or higher. Most hosts run PHP 8.x today, so it works on any modern WordPress hosting.

When was API for Ninja Forms last updated?

The latest version, 1.1.0, was released on September 15, 2026 (3 weeks ago).

Who makes API for Ninja Forms?

API for Ninja Forms is developed and maintained by sightfactory.

What are the best alternatives to API for Ninja Forms?

The most popular alternatives to API for Ninja Forms are WP Consent API (200K+ installs), Disable REST API (80K+ installs) and Mailgun for WordPress (80K+ installs).

Powered by PageForge

Want thousands of pages that rank like these? Build them in an afternoon.

This directory runs on the same engine as PageForge. Turn any spreadsheet, CSV or API into thousands of fast, SEO-ready WordPress pages — with schema, internal links and AI-written copy baked in.

  • CSV, Google Sheets & API data sources
  • AI content, schema & internal links per page
  • Works with Elementor, Gutenberg, Yoast & Rank Math
  • Free on WordPress.org — no credit card
Sarah is here to help!
Hi there! 👋 Need help finding what you're looking for?
Sarah
Sarah
Online & Ready to Help
Hi there! 👋 Need help finding what you're looking for?

We'll use this to continue our conversation

Just now ✓ Verified

Join 500+ SEO Pros Scaling Their Strategy

Get exclusive programmatic SEO tactics, AI content workflows, and the latest PageForge updates delivered straight to your inbox. Stay ahead of the algorithm.

We care about your data in our privacy policy.