Access 350+ production-ready REST APIs directly in your GitHub workflows.
Beta Release - This action is in beta. We'd love your feedback! Open an issue if you encounter any problems.
Browse All APIs | Get Free API Key | Documentation
APIVerve is a platform that provides 350+ production-ready REST APIs for developers. Instead of building and maintaining common functionality yourself, you can call our APIs to handle tasks like:
- Generating QR codes and barcodes for your releases and documentation
- Capturing website screenshots for visual testing and previews
- Looking up DNS records, SSL certificates, and domain info for monitoring
- Validating emails, phone numbers, and other data before processing
- Converting documents (HTML to PDF, Markdown to PDF, etc.)
- Checking IP geolocation and reputation for security workflows
All APIs are fast, reliable, and designed for developer workflows - including CI/CD pipelines.
This action lets you call any of APIVerve's 350+ APIs directly from your GitHub workflows. With a single action, you can:
- Generate assets - Create QR codes, screenshots, PDFs, and more as part of your build
- Validate and verify - Check DNS propagation, SSL certificates, email addresses
- Monitor infrastructure - Track domain expiration, DNS records, SSL status
- Enrich data - Look up IP locations, parse phone numbers, detect languages
- Automate checks - Spell check docs, validate content, run security checks
One action. 350+ APIs. No separate integrations needed.
- name: Generate QR Code
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: qrcodegenerator
params: '{"value": "https://github.com/${{ github.repository }}", "size": 300}'
output_file: ./qrcode.pngSign up for a free account at dashboard.apiverve.com/signup and create an API key.
Go to your repository Settings → Secrets and variables → Actions → New repository secret
- Name:
APIVERVE_KEY - Value: Your API key from the dashboard
Option A: Pass API key per step
- name: Call APIVerve
uses: apiverve/action@v0
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: dnslookup
params: '{"domain": "example.com"}'Option B: Set API key once via environment variable
jobs:
example:
runs-on: ubuntu-latest
env:
APIVERVE_API_KEY: ${{ secrets.APIVERVE_KEY }}
steps:
- name: Check DNS
uses: apiverve/action@v0
with:
api: dnslookup
params: '{"domain": "example.com"}'
- name: Check SSL
uses: apiverve/action@v0
with:
api: sslchecker
params: '{"domain": "example.com"}'| Input | Description | Required | Default |
|---|---|---|---|
api_key |
Your APIVerve API key (or set APIVERVE_API_KEY env var) |
Yes* | - |
api |
API to call (e.g., qrcodegenerator, dnslookup) |
Yes | - |
params |
JSON parameters for the API | No | {} |
output_file |
Path to save binary output (images, PDFs) | No | - |
format |
Response format: json, yaml, or xml |
No | json |
fail_on_error |
Fail workflow if API returns error | No | true |
*API key is required but can be provided via input OR APIVERVE_API_KEY / APIVERVE_KEY environment variable.
| Output | Description |
|---|---|
result |
Full API response as JSON |
data |
The data field from response as JSON |
status |
API status (ok or error) |
file |
Path to downloaded file (if output_file was used) |
Automatically add a QR code linking to each release:
name: Release with QR
on:
release:
types: [published]
jobs:
add-qr:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Generate release QR code
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: qrcodegenerator
params: '{"value": "https://github.com/${{ github.repository }}/releases/tag/${{ github.ref_name }}"}'
output_file: ./release-qr.png
- name: Upload QR to release
uses: softprops/action-gh-release@v1
with:
files: ./release-qr.pngGet notified before your domains expire:
name: Domain Monitor
on:
schedule:
- cron: '0 9 * * 1' # Every Monday at 9am
jobs:
check:
runs-on: ubuntu-latest
steps:
- name: Check domain expiration
id: domain
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: domainexpiration
params: '{"domain": "mycompany.com"}'
- name: Alert if expiring soon
if: fromJson(steps.domain.outputs.data).daysUntilExpiration < 30
run: |
echo "::warning::Domain expires in ${{ fromJson(steps.domain.outputs.data).daysUntilExpiration }} days!"Verify your DNS is configured correctly after infrastructure changes:
- name: Check DNS propagation
id: dns
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: dnspropagation
params: '{"domain": "api.mycompany.com", "type": "A"}'
- name: Verify propagation
run: echo "Propagation: ${{ steps.dns.outputs.data }}"Capture screenshots for visual regression testing or previews:
- name: Capture screenshot
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: webscreenshots
params: '{"url": "https://docs.example.com", "width": 1280, "height": 800}'
output_file: ./docs-screenshot.pngMonitor SSL certificate expiration:
- name: Check SSL
id: ssl
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: sslchecker
params: '{"domain": "mycompany.com"}'
- name: Alert if expiring
if: fromJson(steps.ssl.outputs.data).daysUntilExpiration < 14
run: echo "::error::SSL certificate expires soon!"Convert webpages or markdown to PDF:
- name: Generate PDF
uses: apiverve/action@v1
with:
api_key: ${{ secrets.APIVERVE_KEY }}
api: websitetopdf
params: '{"url": "https://example.com/report"}'
output_file: ./report.pdf| Category | APIs |
|---|---|
| QR & Media | qrcodegenerator, qrcodereader, webscreenshots, websitetopdf, barcodegenerator |
| DNS & Domain | dnslookup, dnspropagation, domainexpiration, domainavailability, whoislookup |
| SSL & Security | sslchecker, dnsseccheck, botdetector, ipblacklistlookup |
| Email Validation | emailvalidator, emaildisposablechecker, spfvalidator, dkimvalidator, dmarcvalidator |
| IP & Network | iplookup, ipdemographics, reversednslookup, asnlookup |
| Documents | htmltopdf, markdowntopdf, websitetopdf |
| Text & Content | spellchecker, grammarcheck, sentimentanalysis, contentfilter |
- Free tier - Get started with generous free limits
- Pro plans - Higher rate limits and priority support for production use
Check out pricing details.
- API Documentation: docs.apiverve.com
- API Marketplace: apiverve.com/marketplace
- Issues & Support: GitHub Issues
- Email: support@apiverve.com
MIT - see LICENSE
Built by APIVerve - 350+ APIs for developers