API smoke testing: verify critical paths before they reach production

By the Flasqo team · Updated August 5, 2026

TL;DR

Smoke testing is a quick validation suite that checks whether critical API endpoints are functional after a build or deployment. It answers one question: "Is the system too broken to test further?" Run smoke tests in CI/CD pipelines for fast go/no-go decisions. Flasqo generates and runs smoke tests in under 5 minutes, free.

What is smoke testing?

Smoke testing is a shallow, fast validation technique that verifies critical functionality works after a code change, deployment, or environment setup. The term originates from hardware testing: plug in the device and check if it smokes. For APIs, it means hitting key endpoints to confirm they respond correctly before running deeper tests.

Unlike comprehensive functional testing, smoke tests don't validate business logic or edge cases. They answer a binary question: Is the system stable enough to proceed? If authentication fails, there's no point running payment tests. If the health check endpoint returns 500, stop the deployment.

Why smoke testing matters in modern development

Continuous deployment pipelines push code multiple times per day. Running a full test suite (which can take 30-60 minutes) on every commit creates bottlenecks. Smoke tests act as a deployment gate: they run in 2-5 minutes and catch showstopper issues immediately.

Industry adoption

When to run smoke tests

ScenarioPurposeFrequency
CI/CD pipelineValidate build before deploymentEvery commit or PR merge
Post-deploymentVerify production is healthyImmediately after deploy
Scheduled health checksDetect runtime failuresEvery 5-15 minutes
Environment setupConfirm staging/dev is readyAfter infrastructure changes
Database migrationsCheck API still works after schema changesAfter migration scripts

What to include in a smoke test suite

Smoke tests should be fast, critical, and simple. Focus on endpoints that would halt business operations if broken.

Essential endpoints to test

  1. Health/readiness endpointsGET /health, GET /ready
  2. AuthenticationPOST /auth/login, token validation
  3. Core CRUD operations — Create, Read, Update for primary resources
  4. Payment processingPOST /payments (if applicable)
  5. Critical integrations — Third-party APIs your system depends on
Rule of thumb: If an endpoint's failure would trigger a Slack alert or wake someone up at 3 AM, it belongs in your smoke suite.

What NOT to include

How to run smoke tests in Flasqo

Flasqo's smoke testing module lets you validate critical endpoints in minutes with zero configuration.

  1. Navigate to Smoke Testing
    Go to Testing TypesSmoke Testing → Launch
  2. Enter your API base URL
    Example: https://api.yourapp.com
    Flasqo will auto-detect common health endpoints like /health, /status, /ping
  3. Add critical endpoints
    Click "+ Add Endpoint" and specify:
    • Endpoint path: /auth/login
    • HTTP method: POST
    • Expected status: 200 or 401 (if auth required)
    • (Optional) Request body for POST/PUT requests
  4. Configure authentication (if needed)
    Select auth type:
    Bearer Token — Paste your API key or JWT
    API Key — Header or query param
    Basic Auth — Username/password
    OAuth 2.0 — Client credentials flow
  5. Run smoke tests
    Click "Run Smoke Tests"
    Flasqo executes all endpoints in parallel and reports results in ~30 seconds
  6. Review results
    • ✅ Green: Endpoint responded with expected status
    • ❌ Red: Failure (timeout, wrong status, network error)
    • Click any failed test to see request/response details
  7. Export or share report
    • Download PDF report for documentation
    • Share public link with your team
    • Integrate with CI/CD using Flasqo's API

Smoke testing in CI/CD pipelines

Automate smoke tests to run on every deployment:

GitHub Actions example

name: Deploy with Smoke Tests on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest steps: - name: Deploy to production run: ./deploy.sh - name: Run smoke tests run: | curl -X POST https://api.flasqo.com/smoke-tests \ -H "Authorization: Bearer ${{ secrets.FLASQO_API_KEY }}" \ -d '{"base_url": "https://api.yourapp.com"}' - name: Check smoke test results run: | if [ $? -ne 0 ]; then echo "Smoke tests failed - rolling back deployment" exit 1 fi

Common smoke testing scenarios

E-commerce API

SaaS application API

Payment gateway API

Run smoke tests in 2 minutes

No installation, no configuration. Just paste your API URL and get instant health checks.

Try Flasqo Free

Best practices for smoke testing

1. Keep it fast (under 5 minutes)

If smoke tests take longer than your coffee break, you're testing too much. Move comprehensive validations to functional or integration test suites.

2. Test production-like environments

Smoke tests against localhost prove nothing. Use staging or production URLs to validate real infrastructure, DNS, SSL certificates, and network paths.

3. Fail fast and loudly

Don't retry failed smoke tests automatically. A failure means something is critically broken — investigate immediately, don't mask the issue.

4. Monitor smoke test results over time

Track success rates. If smoke tests that previously passed 100% of the time start failing intermittently, it's an early warning sign of infrastructure issues.

5. Run smoke tests post-deployment AND on a schedule

Deployments can succeed but production can still fail minutes later (database connection pool exhaustion, memory leaks, DNS propagation). Scheduled smoke tests catch runtime failures.

Frequently asked questions

What is the difference between smoke testing and functional testing?

Smoke testing is a quick, shallow check that critical endpoints respond correctly. Functional testing is deep validation of business logic, edge cases, and error handling. Smoke tests run in minutes; functional suites can take hours. Both are necessary.

How many endpoints should be included in a smoke test suite?

Focus on critical paths: authentication, core CRUD operations, payment processing, and any endpoint that would halt business if broken. Typically 5-15 endpoints. If your smoke suite takes more than 5 minutes, it's too large.

Should smoke tests run before or after deployment?

Both. Run them in your CI pipeline before deployment to catch breaking changes. Run them again immediately after deployment to verify the production environment is healthy. Many teams also run smoke tests on a schedule (every 15 minutes) to detect runtime failures.

Can I run smoke tests in production?

Yes, and you should. Smoke tests use safe, idempotent requests (mostly GET calls, or POST requests that create test data). Avoid destructive operations. Many companies run smoke tests in production every few minutes as synthetic monitoring.

What should I do if a smoke test fails?

Stop the deployment pipeline immediately. Investigate the failure — check logs, verify the endpoint manually, confirm infrastructure is healthy. Do not proceed with deployment until smoke tests pass. A failed smoke test means your system is too broken for further testing.