RawQuotes
API Reference
Responses and insights

Send feedback from n8n, Zapier or Make

Send support e-mails, chats or reviews into a general source as they arrive, with copy-paste setups for n8n, Zapier, Make and cURL, a dry run, and every error explained.

Send feedback from n8n, Zapier or Make

There is no RawQuotes app to install in n8n, Zapier or Make. You add one HTTP step that sends the feedback to a general source. The source's API tab in the panel shows the same address and examples, with your source's ID filled in.

What you need

  • An API key. Create one under Settings → API keys; see Using the API with an API key. One key works for every source in your account. Sending with a key needs a plan with API access, listed in Plans and billing.
  • The address, with the ID from the source's API tab:
POST https://app.rawquotes.io/api/v1/sources/YOUR-SOURCE-ID/items
  • The body, JSON with a list of items. text is the feedback, up to 10,000 characters. date is when it was given, in one of the forms on Import a file; a date without a time zone is read as UTC, and without date the item gets the moment it was received.
{
  "dryRun": false,
  "items": [
    { "text": "Parcel came a week late.", "date": "2026-10-08T09:14:00Z" }
  ]
}

Set up the HTTP step

In each tool, map text and date to fields from the previous step.

  1. Add an HTTP Request node. Method: POST. URL: the address above.
  2. Authentication: Generic Credential Type → Header Auth. Name Authorization, value Bearer rq_live_YOUR_KEY.
  3. Body: JSON, and paste the body above.

Try it without saving

Set "dryRun": true and you get the full answer with nothing saved. Do this once before you switch the step on:

{
  "dryRun": true,
  "items": [
    { "text": "Parcel came a week late.", "date": "2026-10-08T09:14:00Z" },
    { "text": "Great staff, quick refund.", "date": "2026-09-30" },
    { "text": "", "date": "2026-10-01" },
    { "text": "Still waiting for my order.", "date": "2026-11-30" }
  ]
}

The answer, shortened:

{
  "dryRun": true,
  "received": 4,
  "accepted": 2,
  "rejected": [
    { "index": 3, "code": "item.text_empty", "message": "Item 3: the text is empty.", "sample": "" },
    { "index": 4, "code": "item.date_in_future", "message": "Item 4: the date 2026-11-30 is in the future.", "sample": "Still waiting for my order." }
  ],
  "datesWithoutTimeZone": 1,
  "dateRange": { "from": "2026-09-30", "to": "2026-10-08" },
  "ao": 2,
  "countedWindowsToRecompute": [],
  "itemsPerRequest": { "limit": 1000 },
  "responsesThisMonth": { "used": 0, "adding": 2, "limit": 5000 }
}
  • rejected lists every skipped item with its position in the request, from 1. The rest are saved.
  • datesWithoutTimeZone counts accepted dates read as UTC.
  • ao is what the accepted items use when insights are counted over them.
  • countedWindowsToRecompute lists the months and weeks already counted that the items fall into. They show there only after you recompute that period.
  • itemsPerRequest.limit is how many items your plan takes in one request, rejected ones included.

Every field is described in the API reference.

Errors

Errors are JSON with a code and a plain-sentence message, so they read well in an n8n or Zapier run log:

{
  "type": "bad_request",
  "code": "import.too_many_items",
  "message": "This request has 1,001 items. Your Basic plan accepts up to 1,000 per request. Nothing was saved.",
  "status": 422
}
StatuscodeWhat it means
200—Bad items skipped and listed in rejected, the rest saved
400validation.failedNo items, an empty list, or an item that is not an object of strings
401http.unauthorizedThe key is missing, wrong or removed
403plan.feature_not_includedYour plan has no API access
404source.not_foundNo general source with this ID in your account. A survey's ID gets the same answer
409idempotency.already_processed, idempotency.in_progressA repeat with the same Idempotency-Key; see Idempotency
413http.payload_too_largeThe body is over 12 MB
422import.too_many_itemsMore items than your plan takes in one request. Nothing was saved
422import.monthly_responses_exceededThe items would take your account past this month's responses limit. Nothing was saved

A 422 refuses the whole request. Send fewer items per request, or wait for the next month. A dry run is never refused for the monthly limit; it shows the numbers in responsesThisMonth.

Importing a file is a panel feature and has no API-key endpoint. To send a file's rows from your own code, read the file there and send the rows as items.
Copyright © 2026