RawQuotes
API Reference
v1.0.0
OpenAPI 3.0.0

RawQuotes Public API

The public API of RawQuotes — customer feedback analysis that names nothing it can't back with quotes.

Every request authenticates with an API key created in the RawQuotes app, sent as Authorization: Bearer rq_live_….

Server:https://app.rawquotes.io
Client Libraries

List projects

​

Query Parameters

  • Integer numbers.

  • Integer numbers.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/api/v1/projects
curl 'https://app.rawquotes.io/api/v1/projects?page=1&perPage=50' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "items": [
    {
      "code": "string",
      "createdAt": "2026-11-02T17:57:05.612Z",
      "id": "string",
      "name": "string"
    }
  ],
  "page": 1,
  "perPage": 1,
  "total": 1
}

Get project

​

Path Parameters

Responses

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/api/v1/projects/{projectId}
curl 'https://app.rawquotes.io/api/v1/projects/{projectId}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "code": "string",
  "createdAt": "2026-11-02T17:57:05.612Z",
  "id": "string",
  "name": "string"
}

List responses

​

Query Parameters

  • The window to filter by started time - period[from], period[to], both, or neither for no filter.

    • the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

    • the date-time notation as defined by RFC 3339, section 5.6, for example, 2017-07-21T17:32:28Z

  • Page size; a value above 100 is clamped to 100.

  • Integer numbers.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/api/v1/responses
curl 'https://app.rawquotes.io/api/v1/responses?perPage=50&projectId=&page=1' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "items": [
    {
      "answers": [
        {
          "optionId": null,
          "optionIds": [
            "string"
          ],
          "optionLabel": null,
          "optionLabels": [
            "string"
          ],
          "prompt": "string",
          "questionId": "string",
          "rating": null,
          "skipped": true,
          "text": null,
          "type": "single_choice"
        }
      ],
      "externalId": null,
      "id": "string",
      "status": "string",
      "submittedAt": "2026-11-02T17:57:05.612Z",
      "surveyId": "string",
      "surveyVersion": 1,
      "surveyVersionId": "string"
    }
  ],
  "page": 1,
  "perPage": 1,
  "total": 1
}

List sources

​

Query Parameters

  • Page size; a value above 100 is clamped to 100.

  • Integer numbers.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/api/v1/sources
curl 'https://app.rawquotes.io/api/v1/sources?perPage=50&projectId=&page=1' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "items": [
    {
      "createdAt": "2026-11-02T17:57:05.612Z",
      "description": null,
      "id": "string",
      "kind": "survey",
      "name": "string",
      "projectId": "string",
      "responseCount": 1
    }
  ],
  "page": 1,
  "perPage": 1,
  "total": 1
}

Create source

​

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Body·

required
application/json

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/api/v1/sources
curl https://app.rawquotes.io/api/v1/sources \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "description": null,
  "name": "",
  "projectId": ""
}'
{
  "createdAt": "2026-11-02T17:57:05.612Z",
  "description": null,
  "id": "string",
  "kind": "survey",
  "name": "string",
  "projectId": "string",
  "responseCount": 1
}

Delete source

​

Path Parameters

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Responses

  • The general source is gone, and so are its items.

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for delete/api/v1/sources/{id}
curl 'https://app.rawquotes.io/api/v1/sources/{id}' \
  --request DELETE \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Replace source

​

Path Parameters

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Body·

required
application/json

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for put/api/v1/sources/{id}
curl 'https://app.rawquotes.io/api/v1/sources/{id}' \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "description": null,
  "name": ""
}'
{
  "createdAt": "2026-11-02T17:57:05.612Z",
  "description": null,
  "id": "string",
  "kind": "survey",
  "name": "string",
  "projectId": "string",
  "responseCount": 1
}

Add items to a source

​

Path Parameters

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Body·

required
application/json
  • Properties: 2

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/api/v1/sources/{sourceId}/items
curl 'https://app.rawquotes.io/api/v1/sources/{sourceId}/items' \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "dryRun": false,
  "items": [
    {
      "date": null,
      "text": null
    }
  ]
}'
{
  "accepted": 1,
  "ao": 1,
  "aoThisMonth": {
    "remaining": null,
    "total": null
  },
  "countedWindowsToRecompute": [
    {
      "from": "2026-11-02",
      "granularity": "month",
      "items": 1,
      "label": "string",
      "to": "2026-11-02"
    }
  ],
  "currentPeriods": {
    "ao": 1,
    "items": 1
  },
  "dateRange": {
    "from": null,
    "to": null
  },
  "datesWithoutTimeZone": 1,
  "dryRun": true,
  "itemsAo": [
    {
      "ao": 1,
      "index": 1
    }
  ],
  "itemsPerRequest": {
    "limit": 1
  },
  "pastPeriods": {
    "from": null,
    "items": 1,
    "to": null
  },
  "received": 1,
  "rejected": [
    {
      "code": "item.text_empty",
      "index": 1,
      "message": "string",
      "sample": "string"
    }
  ],
  "responsesThisMonth": {
    "adding": 1,
    "limit": null,
    "used": 1
  }
}

List surveys

​

Query Parameters

  • Page size; a value above 100 is clamped to 100.

  • Integer numbers.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/api/v1/surveys
curl 'https://app.rawquotes.io/api/v1/surveys?perPage=50&projectId=&page=1' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "items": [
    {
      "activeSince": "2026-11-02T17:57:05.612Z",
      "id": "string",
      "name": "string",
      "projectId": "string",
      "questionCount": 1,
      "responseCount": 1,
      "version": 1
    }
  ],
  "page": 1,
  "perPage": 1,
  "total": 1
}

Create survey

​

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Body·

required
application/json
  • Properties: 10
  • Properties: 15

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/api/v1/surveys
curl https://app.rawquotes.io/api/v1/surveys \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "allowMultipleResponses": false,
  "appearance": {
    "accentColor": "#4F46E5",
    "backgroundColor": "#FFFFFF",
    "borderRadius": 12,
    "choiceSize": "default",
    "choicesAlign": "center",
    "colorScheme": "light",
    "container": null,
    "ctaLabel": null,
    "fontFamily": null,
    "icon": "clipboard",
    "language": null,
    "placement": {
      "corner": "bottom_right",
      "mode": "floating",
      "offset": {
        "x": 20,
        "y": 20
      }
    },
    "sectionTitle": null,
    "textColor": "#111827",
    "thankYouText": null
  },
  "name": "",
  "projectId": "",
  "questions": [
    {
      "countedForInsights": true,
      "display": "scale",
      "id": "",
      "isRequired": true,
      "options": [],
      "prompt": "",
      "ratingMax": null,
      "ratingMin": null,
      "shownIf": {
        "optionId": null,
        "questionId": "",
        "ratingMax": null,
        "ratingMin": null
      },
      "type": "single_choice"
    }
  ]
}'
{
  "activeSince": "2026-11-02T17:57:05.612Z",
  "allowMultipleResponses": true,
  "appearance": {
    "accentColor": "string",
    "backgroundColor": "string",
    "borderRadius": 1,
    "choiceSize": "string",
    "choicesAlign": "string",
    "colorScheme": "string",
    "ctaLabel": null,
    "fontFamily": null,
    "icon": "string",
    "language": null,
    "placement": {
      "corner": "string",
      "mode": "string",
      "offset": {
        "x": 1,
        "y": 1
      }
    },
    "sectionTitle": null,
    "textColor": "string",
    "thankYouText": null
  },
  "embed": {
    "floating": "string",
    "inline": "string",
    "loaderUrl": "string"
  },
  "id": "string",
  "name": "string",
  "projectId": "string",
  "questions": [
    {
      "countedForInsights": true,
      "display": "scale",
      "id": "string",
      "isRequired": true,
      "options": [
        {
          "id": "string",
          "label": "string"
        }
      ],
      "prompt": "string",
      "ratingMax": null,
      "ratingMin": null,
      "shownIf": {
        "optionId": null,
        "questionId": "string",
        "ratingMax": null,
        "ratingMin": null
      },
      "type": "single_choice"
    }
  ],
  "version": 1,
  "versionChangedAt": "2026-11-02T17:57:05.612Z"
}

Delete survey

​

Path Parameters

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Responses

  • The survey is gone, and so are its responses, its answers and the insights counted from them.

  • application/json
  • application/json
  • application/json
  • application/json
Request Example for delete/api/v1/surveys/{id}
curl 'https://app.rawquotes.io/api/v1/surveys/{id}' \
  --request DELETE \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
No Body

Get survey

​

Path Parameters

Query Parameters

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for get/api/v1/surveys/{id}
curl 'https://app.rawquotes.io/api/v1/surveys/{id}' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN'
{
  "activeSince": "2026-11-02T17:57:05.612Z",
  "allowMultipleResponses": true,
  "appearance": {
    "accentColor": "string",
    "backgroundColor": "string",
    "borderRadius": 1,
    "choiceSize": "string",
    "choicesAlign": "string",
    "colorScheme": "string",
    "ctaLabel": null,
    "fontFamily": null,
    "icon": "string",
    "language": null,
    "placement": {
      "corner": "string",
      "mode": "string",
      "offset": {
        "x": 1,
        "y": 1
      }
    },
    "sectionTitle": null,
    "textColor": "string",
    "thankYouText": null
  },
  "embed": {
    "floating": "string",
    "inline": "string",
    "loaderUrl": "string"
  },
  "id": "string",
  "name": "string",
  "projectId": "string",
  "questions": [
    {
      "countedForInsights": true,
      "display": "scale",
      "id": "string",
      "isRequired": true,
      "options": [
        {
          "id": "string",
          "label": "string"
        }
      ],
      "prompt": "string",
      "ratingMax": null,
      "ratingMin": null,
      "shownIf": {
        "optionId": null,
        "questionId": "string",
        "ratingMax": null,
        "ratingMin": null
      },
      "type": "single_choice"
    }
  ],
  "version": 1,
  "versionChangedAt": "2026-11-02T17:57:05.612Z"
}

Replace survey

​

Path Parameters

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Body·

required
application/json
  • Properties: 10
  • Properties: 15

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for put/api/v1/surveys/{id}
curl 'https://app.rawquotes.io/api/v1/surveys/{id}' \
  --request PUT \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "allowMultipleResponses": false,
  "appearance": {
    "accentColor": "#4F46E5",
    "backgroundColor": "#FFFFFF",
    "borderRadius": 12,
    "choiceSize": "default",
    "choicesAlign": "center",
    "colorScheme": "light",
    "container": null,
    "ctaLabel": null,
    "fontFamily": null,
    "icon": "clipboard",
    "language": null,
    "placement": {
      "corner": "bottom_right",
      "mode": "floating",
      "offset": {
        "x": 20,
        "y": 20
      }
    },
    "sectionTitle": null,
    "textColor": "#111827",
    "thankYouText": null
  },
  "name": "",
  "questions": [
    {
      "countedForInsights": true,
      "display": "scale",
      "id": "",
      "isRequired": true,
      "options": [],
      "prompt": "",
      "ratingMax": null,
      "ratingMin": null,
      "shownIf": {
        "optionId": null,
        "questionId": "",
        "ratingMax": null,
        "ratingMin": null
      },
      "type": "single_choice"
    }
  ]
}'
{
  "activeSince": "2026-11-02T17:57:05.612Z",
  "allowMultipleResponses": true,
  "appearance": {
    "accentColor": "string",
    "backgroundColor": "string",
    "borderRadius": 1,
    "choiceSize": "string",
    "choicesAlign": "string",
    "colorScheme": "string",
    "ctaLabel": null,
    "fontFamily": null,
    "icon": "string",
    "language": null,
    "placement": {
      "corner": "string",
      "mode": "string",
      "offset": {
        "x": 1,
        "y": 1
      }
    },
    "sectionTitle": null,
    "textColor": "string",
    "thankYouText": null
  },
  "embed": {
    "floating": "string",
    "inline": "string",
    "loaderUrl": "string"
  },
  "id": "string",
  "name": "string",
  "projectId": "string",
  "questions": [
    {
      "countedForInsights": true,
      "display": "scale",
      "id": "string",
      "isRequired": true,
      "options": [
        {
          "id": "string",
          "label": "string"
        }
      ],
      "prompt": "string",
      "ratingMax": null,
      "ratingMin": null,
      "shownIf": {
        "optionId": null,
        "questionId": "string",
        "ratingMax": null,
        "ratingMin": null
      },
      "type": "single_choice"
    }
  ],
  "version": 1,
  "versionChangedAt": "2026-11-02T17:57:05.612Z"
}

Create survey fill

​

Path Parameters

Headers

  • Optional UUID naming this request. A repeat after the first one succeeded is answered 409 and not executed; a key that is not a UUID is refused with 400 validation.failed. Kept for 48 hours.

Body·

application/json

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/api/v1/surveys/{surveyId}/fills
curl 'https://app.rawquotes.io/api/v1/surveys/{surveyId}/fills' \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "externalId": null
}'
{
  "id": "string",
  "link": "string",
  "status": "string"
}

Models

Copyright © 2026