Adobe logo for the Marketo Engage module

HOSTED MOCK API REFERENCE

Marketo API mock: lead sync and daily quota 607

A successful HTTP exchange can still be a failed Marketo sync. Use the daily allocation fixture to test response-level errors, then select mixed-record results to check skipped leads independently of the top-level success flag.

Explore mock APIs

New registration is paused. Explore the public mock APIs; existing users can still sign in.

Existing user? Configure Marketo Leads API · Workspace pricing and limits · Supported operations and behaviours

What to assert in your client

Daily allocation exhaustion needs a different recovery policy from a short-term rate limit. Check the body before treating a sync as successful. No real quota is consumed, and selecting success later is a separate controlled test, not an automatic recovery.

CLIENT → SYNTHETIC RECEIVER → SELECTED RESPONSE → INSPECTION

Walkthrough: daily API quota exhausted (607)

1. Select the outcome on your installed receiver

Choose Marketo Leads → Sync Lead → Daily API quota reached (607). This selects a synthetic fixture; it does not exhaust a real provider quota.

2. Send a safe lead sync request and read the response

Sync Lead: Daily API quota reached

Documented Synthetic illustrative example from the catalogue, not a live capture. Run only after installing your own receiver. Replace <your-receiver-token> locally; no request is sent from this page.

HTTP 200 · 607

curl / Bash request
printf '%s' '{"action":"createOrUpdate","lookupField":"email","input":[{"email":"alex@example.test","firstName":"Alex","lastName":"Example"}]}' | \
curl -i -X POST \
  'https://nottherealapi.com/r/<your-receiver-token>/rest/v1/leads.json' \
  -H 'Authorization: Bearer synthetic-marketo-token' \
  -H 'Content-Type: application/json' \
  --data-binary @-
PowerShell request
$body = '{"action":"createOrUpdate","lookupField":"email","input":[{"email":"alex@example.test","firstName":"Alex","lastName":"Example"}]}'
Invoke-WebRequest `
    -UseBasicParsing `
    -Uri 'https://nottherealapi.com/r/<your-receiver-token>/rest/v1/leads.json' `
    -Method POST `
    -Headers @{
    Authorization = 'Bearer synthetic-marketo-token'
    } `
    -ContentType 'application/json' `
    -Body ([Text.Encoding]::UTF8.GetBytes($body))
Selected synthetic response
HTTP 200
content-type: application/json

{
  "requestId": "example#1",
  "success": false,
  "errors": [
    {
      "code": "607",
      "message": "Daily quota reached"
    }
  ]
}

The HTTP status is 200. The Marketo body reports success: false and error code 607. HTTP success alone does not mean the lead sync succeeded. No Retry-After header is supplied by this fixture.

3. Inspect what your client sent

Illustrative inspection — synthetic sample, not a live capture or interactive public sandbox. No request has been sent from this page.

Method and path
POST /rest/v1/leads.json
Selected outcome
Daily API quota reached · HTTP 200 · body code 607
Example Authorization
Bearer synthetic-marketo-token (synthetic)
{
  "action": "createOrUpdate",
  "lookupField": "email",
  "input": [
    {
      "email": "alex@example.test",
      "firstName": "Alex",
      "lastName": "Example"
    }
  ]
}

4. Test the client policy, then a controlled success

Distinguish daily quota exhaustion from transient rate limiting. Avoid thoughtless immediate retries; stop or defer according to your integration's allocation policy and report the failed sync. Select a success behaviour separately and repeat the request to test that path. The fixture does not transition or recover autonomously.

Marketing Leads REST API · REST v1

What can I test with this?

Test integrations that send leads into Adobe Marketo Engage without needing a live Marketo instance. Simulate the Sync Leads endpoint and trigger successful syncs, record validation failures, expired authentication, rate limits, exhausted daily quota and temporary API unavailability. Check both response-level errors and skipped records inside HTTP 200 responses, plus a synthetic delay for deadline testing.

Sync Leads REST v1 only. Actions and mixed results are selected fixtures; no lead lookup, writes, token refresh or autonomous bulk-import jobs occur.

Useful for

  • Lead ingestion
  • Marketing automation connectors
  • CRM-to-Marketo synchronisation
  • Record validation
  • Rate limits and daily quota

Supported operations

1 operation

Sync Lead

POST /rest/v1/leads.json

Simulates creating, updating or upserting lead records through the Sync Leads API. The request action and lookupField describe how matching records are handled; the selected behaviour determines the returned envelope and per-record results.

Request content type: application/json

Request example

{
  "action": "createOrUpdate",
  "lookupField": "email",
  "input": [
    {
      "email": "alex@example.test",
      "firstName": "Alex",
      "lastName": "Example"
    }
  ]
}

Available behaviours (12)

  • Lead synced
    Documented

    Sync Leads creates or updates records through one endpoint and returns per-record status results.

    HTTP 200

    Verify that your client handles a successful response.

    • HTTP 200 with the Marketo requestId, success and result envelope.
  • Existing lead updated
    Documented

    Selected updateOnly success; the receiver does not store or look up leads.

    HTTP 200

    Verify that your client handles a successful response.

  • Mixed record results
    Documented

    HTTP 200 and success true can contain both an updated lead and a skipped input record, in input order.

    HTTP 200 · 1002

    Verify that your client understands this provider-specific outcome.

  • Invalid or expired access token
    Documented

    A rejected access token is a response-level 602 error; Marketo returns it inside the API response envelope.

    HTTP 200 · 602

    Test credential refresh and authentication recovery.

    • Clients refresh the token after 601 or 602; this mock does not perform token exchange.
  • Required lead lookup value missing
    Documented

    A Sync Lead input record without its selected email lookup value is skipped with record-level error 1002.

    HTTP 200 · 1002

    Test field mapping and useful validation feedback.

    • The failed lead is represented in result[].reasons while the top-level request remains successful.
  • Lead validation failed
    Documented

    A record with an unsupported field is skipped with a record-level 1006 reason while the request envelope remains successful.

    HTTP 200 · 1006

    Test field mapping and useful validation feedback.

    • Record-level errors appear under result[].reasons and do not set top-level success to false.
  • Lead not found
    Documented

    The updateOnly action skips a record when its lookup key does not match an existing lead (1004).

    HTTP 200 · 1004

    Check how your client handles a missing record or resource.

  • Lead already exists
    Documented

    The createOnly action skips a record whose lookup key already exists (1005).

    HTTP 200 · 1005

    Exercise conflict handling before repeating a write.

  • REST rate limit exceeded
    Documented

    Marketo reports its shared 100-calls-per-20-seconds limit as response-level error 606.

    HTTP 200 · 606

    Verify bounded backoff and retry handling.

    • Use exponential backoff; Marketo does not define an HTTP Retry-After header for this response.
  • Daily API quota reached
    Documented

    Marketo reports exhausted daily subscription allocation as response-level error 607.

    HTTP 200 · 607

    Check that persistent allocation or billing limits do not cause endless retries.

    • This daily allocation limit is distinct from short-term rate limiting.
  • API temporarily unavailable
    Documented

    Marketo reports temporary REST API unavailability as response-level error 608.

    HTTP 200 · 608

    Test recovery and error reporting during simulated service failures.

  • Delayed sync response
    Synthetic

    Synthetic delay for client deadline and retry testing.

    HTTP 200 · 250 ms delay

    Exercise client deadlines and timeout recovery.

    • Artificial delay only; the Marketo response remains a normal success envelope.

What NotTheRealAPI controls

NotTheRealAPI does not call Adobe Marketo Engage. No real provider account is required. Your integration sends the request to a NotTheRealAPI receiver and receives the selected provider-shaped response.

The receiver stays under NotTheRealAPI at /r/<receiver-token> followed by the operation path. Selecting a behaviour controls the simulated response on that same receiver.

Scope and safe testing

This independent simulation has no live Adobe Marketo Engage connection or endorsement and does not claim complete API compatibility. No real provider credentials are required. Outcomes remain selected until you change them; these provider fixtures do not persist business records or transition autonomously.

Use synthetic data only. Receiver URLs are secrets. Captured headers and bounded bodies are visible to authorised workspace members without automatic redaction; see privacy and retention.

NotTheRealAPI independently simulates third-party APIs for testing. All provider names and logos are the property of their respective owners. NotTheRealAPI is not affiliated with, sponsored by or endorsed by those providers, and these modules do not connect to their live services. Twilio and all related logos are trademarks of Twilio Inc. or its affiliates.

Browse the full mock API catalogue · Salesforce Lead API mock: sessions, validation and allocation · Compare workspace limits and pricing · Sign in

Marketo API Mock: Test Daily Quota 607 & Lead Sync | NotTheRealAPI