{ "aid": "textrequest.com:text-request-3.0.0", "name": "Text Request API v3", "type": "Index", "description": "This page contains documentation for Text Request's v3 API. [Click here](https://www.textrequest.com/api/v2) for v2 documentation.\n\nThe Text Request API makes it easy to programmatically interact with your Text Request account. It provides the ability to **send messages**, **retrieve conversations**, **send payment requests**, **manage contacts, groups, dashboards, and users**, and **create and delete web hooks**. \n\nWeb hooks allow you to get notifications when **messages are sent**, **new messages are received**, **contacts are created**, **contacts are updated**, **payment requests are updated**, and when **location requests are received**.\n\n# Security\n\nAll calls to the Text Request API will be authenticated with an API key. All API keys will be transmitted in the request **x-api-key** header. \n \n```\nx-api-key: 095E5113DE4142C28FB7815CC10BEB56\n```\n \nFailure to specify an authorization header for any request will result in a HTTP `400 (Bad Request)` response.\n \nYou can find your account's API key on your Text Request account:\n* Log into Text Request as an administrator\n* Click on the Integrations sidebar menu item\n* Choose the API tile near the top of the screen. If your account does not have api access, you can upgrade your account by clicking the \"Buy Now\" option on the API tile.\n* Copy your API Key from the box on-screen\n \n# Error Handling\n \n In the event of a failed request, the API will return an appropriate HTTP response code. If the error is due to an invalid request, a human readable error will also be returned is the response's *message* property. For blatantly obvious errors (`404 (Not Found)` responses, for example), this may be left blank. \n \n Here's an example of an error response for an omitted field.\n \n ```\n HTTP 400\n \n Response Body\n \n {\n \"status\": 400,\n \"errorCode\": null,\n \"message\": \"A first name must be specified.\"\n } \n ```\n \n # Pagination for Returned Collections\n \n When querying a collection such as users or conversations, there may be thousands of results. To prevent responses from getting massively large, these collections are paginated. For any request to a resource that returns a collection, `page` and `page_size` querystring parameters may be specified to return a subset of entities.\n \n API endpoints that return a collection also include `meta` properties in the response, specifying **the returned page**, **the returned page size**, and **the total number of items in the collection**.\n \n Here's an example collection return, with the items represented by the ellipses (...):\n \n ```\n HTTP 200\n \n Response Body\n \n {\n \"items\": [\n ...\n ],\n \"meta\": {\n \"page\": 0,\n \"page_size\": 100,\n \"total_items\": 276\n }\n } \n ```\n \n Here are the rules for how page, page_size, and link headers work:\n \n * If omitted, page = 0 and page_size = 100 is implied.\n * If page or page_size is invalid (negative number or non-numeric), a HTTP `400 (Bad Request)` response is returned.\n * If page * page_size is greater than the number of entities in the collection, the `items` array will be empty.\n * Collection `GET` requests will always return the `page`, `page_size`, and `total_items` properties.\n \n # Web hook Payloads\n\n Text Request has a variety of web hooks for hitting URLs you own if you want extra functionality in your own apps. Each webhook has a unique data payload that is sent whenever the trigger is set off. To see the payloads:\n * Scroll down to the `POST /dashboards/{dashboard_id}/hooks` API call on this page\n * Between the **Parameters** tab and the **Try it out** button, click the \"Callbacks\" tab\n * Click to view the payload sent in any of these web hooks. The payload will be the same regardless of whether it's a `POST`, `PUT`, or `DELETE` request.\n\n Web hooks can be created in the [web app](https://app.textrequest.com), or through the `POST` endpoint. Web hooks created by endpoints will not appear in the web app, but web hooks created in the web app will be seen by the `GET /dashboards/{dashboard_id}/hooks` api endpoint.\n\n Now that security and pagination are out of the way, lets take a look at the endpoints. You can try out each endpoint from directly within your browser by clicking the Authorize button below and entering your Text Request API key.\n", "url": "https://raw.githubusercontent.com/jentic/jentic-public-apis/refs/heads/main/apis/openapi/textrequest.com/text-request/3.0.0/apis.json", "tags": [ "textrequest.com", "text-request" ], "created": "2026-04-04", "modified": "2026-04-04", "specificationVersion": "0.19", "access": "3rd-Party", "maintainers": [ { "FN": "Jentic", "X-github": "jentic", "url": "https://github.com/jentic" } ], "apis": [ { "aid": "textrequest.com:text-request-3.0.0", "name": "Text Request API v3", "description": "This page contains documentation for Text Request's v3 API. [Click here](https://www.textrequest.com/api/v2) for v2 documentation.\n\nThe Text Request API makes it easy to programmatically interact with your Text Request account. It provides the ability to **send messages**, **retrieve conversations**, **send payment requests**, **manage contacts, groups, dashboards, and users**, and **create and delete web hooks**. \n\nWeb hooks allow you to get notifications when **messages are sent**, **new messages are received**, **contacts are created**, **contacts are updated**, **payment requests are updated**, and when **location requests are received**.\n\n# Security\n\nAll calls to the Text Request API will be authenticated with an API key. All API keys will be transmitted in the request **x-api-key** header. \n \n```\nx-api-key: 095E5113DE4142C28FB7815CC10BEB56\n```\n \nFailure to specify an authorization header for any request will result in a HTTP `400 (Bad Request)` response.\n \nYou can find your account's API key on your Text Request account:\n* Log into Text Request as an administrator\n* Click on the Integrations sidebar menu item\n* Choose the API tile near the top of the screen. If your account does not have api access, you can upgrade your account by clicking the \"Buy Now\" option on the API tile.\n* Copy your API Key from the box on-screen\n \n# Error Handling\n \n In the event of a failed request, the API will return an appropriate HTTP response code. If the error is due to an invalid request, a human readable error will also be returned is the response's *message* property. For blatantly obvious errors (`404 (Not Found)` responses, for example), this may be left blank. \n \n Here's an example of an error response for an omitted field.\n \n ```\n HTTP 400\n \n Response Body\n \n {\n \"status\": 400,\n \"errorCode\": null,\n \"message\": \"A first name must be specified.\"\n } \n ```\n \n # Pagination for Returned Collections\n \n When querying a collection such as users or conversations, there may be thousands of results. To prevent responses from getting massively large, these collections are paginated. For any request to a resource that returns a collection, `page` and `page_size` querystring parameters may be specified to return a subset of entities.\n \n API endpoints that return a collection also include `meta` properties in the response, specifying **the returned page**, **the returned page size**, and **the total number of items in the collection**.\n \n Here's an example collection return, with the items represented by the ellipses (...):\n \n ```\n HTTP 200\n \n Response Body\n \n {\n \"items\": [\n ...\n ],\n \"meta\": {\n \"page\": 0,\n \"page_size\": 100,\n \"total_items\": 276\n }\n } \n ```\n \n Here are the rules for how page, page_size, and link headers work:\n \n * If omitted, page = 0 and page_size = 100 is implied.\n * If page or page_size is invalid (negative number or non-numeric), a HTTP `400 (Bad Request)` response is returned.\n * If page * page_size is greater than the number of entities in the collection, the `items` array will be empty.\n * Collection `GET` requests will always return the `page`, `page_size`, and `total_items` properties.\n \n # Web hook Payloads\n\n Text Request has a variety of web hooks for hitting URLs you own if you want extra functionality in your own apps. Each webhook has a unique data payload that is sent whenever the trigger is set off. To see the payloads:\n * Scroll down to the `POST /dashboards/{dashboard_id}/hooks` API call on this page\n * Between the **Parameters** tab and the **Try it out** button, click the \"Callbacks\" tab\n * Click to view the payload sent in any of these web hooks. The payload will be the same regardless of whether it's a `POST`, `PUT`, or `DELETE` request.\n\n Web hooks can be created in the [web app](https://app.textrequest.com), or through the `POST` endpoint. Web hooks created by endpoints will not appear in the web app, but web hooks created in the web app will be seen by the `GET /dashboards/{dashboard_id}/hooks` api endpoint.\n\n Now that security and pagination are out of the way, lets take a look at the endpoints. You can try out each endpoint from directly within your browser by clicking the Authorize button below and entering your Text Request API key.\n", "image": "", "baseURL": "https://api.textrequest.com/api/v3", "humanURL": "https://github.com/jentic/jentic-public-apis/tree/main/apis/openapi/textrequest.com/text-request/3.0.0", "version": "3.0.0", "tags": [ "textrequest.com", "text-request" ], "properties": [ { "type": "OpenAPI", "name": "OpenAPI definition", "url": "https://raw.githubusercontent.com/jentic/jentic-public-apis/refs/heads/main/apis/openapi/textrequest.com/text-request/3.0.0/openapi.json", "mediaType": "application/openapi+json" }, { "type": "GitHubRepo", "url": "https://github.com/jentic/jentic-public-apis/tree/main/apis/openapi/textrequest.com/text-request/3.0.0" } ] } ] }