Ready Signal API Documentation

Instructions on how to use Ready Signal API. Location of API end points, how to get access tokens, how to call API.

Ready Signal API

The Ready Signal API is designed to let you retrieve the processed data from one of your Signals.

Production Endpoint: https://app.readysignal.com/api/

1. Get an Access Token

To access the Ready Signal API, you have to get an access token and send it through your request’s authorization header.

Login to the Ready Signal portal, access the detail page of your Signal or create a new Signal if you don’t have one.

Scroll the page down to the API Credentials section, and use the button next to the Access Token to copy your token.

That’s it. You will use that token to authenticate your next requests.

2. GET My Signals

To get the list of your signals.

Request
 GET/signals
Headers
 Acceptapplication/json
 Content-Typeapplication/json
AuthorizationBearer {token}
Request
GET /api/signals HTTP/1.1
Host: app.readysignal.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCI1N...bGciOiJSUzI1Nmqhi6A
Response
{
   "data": [
       {
           "id": 48,
           "name": "My Signal Name",
           "description": "The description of my signal.",
           "desired_geo_grain": "State",
           "desired_time_grain": "Week",
           "start_at": "01/26/2020",
           "end_at": "05/31/2020",
           "created_at": "06/03/2020",
           "updated_at": "06/03/2020",
           "deleted_at": null,
           "output": {
               "json": "https://app.readysignal.com/api/signals/48/output?format=json"
           },
           "links": {
               "self": "https://app.readysignal.com/signal/48/manage",
               "manage": "https://app.readysignal.com/signal/48/manage
           },
           "status": "Ready",
           "error_message": ""
       }
  ],
}

3. GET Signal Metadata

Retrieve detailed information about a specific signal ID, including configuration, metadata.

This endpoint is typically used to inspect a signal’s setup and metadata before fetching its output.

Request

GET /api/signals/{signal_id}

Headers
KeyValueRequiredDescription
AuthorizationBearer {token}YesAPI authentication token
Acceptapplication/jsonYesResponse format
Content-Typeapplication/jsonYesRequest format
Query Paramaters
ParameterTypeRequiredDescription
optimizedBooleanOptionalWhen present (or set to 1), returns optimized signal metadata. Only available for signals generated by auto-discovery (or Market Scout in the GUI) where create_custom_features = 1.
Example Request

GET /api/signals/48 HTTP/1.1
Host: app.readysignal.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCI1N...bGciOiJSUzI1Nmqhi6A

Example Response
{
    "data": {
        "id": {signal_id},
        "name": "Auto-discovery - Unit Sales",
        "description": null,
        "desired_geo_grain": "Country",
        "desired_time_grain": "Month",
        "start_at": "01/01/2021",
        "end_at": "-",
        "created_at": "09/30/2025",
        "updated_at": "09/30/2025",
        "deleted_at": null,
        "features": [
            {
                "feature_id": 15515,
                "feature_name": "Merchant Wholesalers, Except Manufacturers Sales Branches and Offices: Nondurable Goods: Farm Product Raw Materials Inventories",
                "export_name": "merchant-wholesalers-except-manufacturers-sales-branches_Lag1",
                "product_name": "Wholesale Trade",
                "provider_name": "U.S. Census Bureau",
                "geo_grain": "Country",
                "date_grain": "Month",
                "data_notes": null,
                "units": "Percent",
                "available_through": "2025-07-31",
                "published_at": "2025-09-10 09:01:24",
                "data_transformations": {
                    "lead_lag": -1
                }
            }
        ],
        "output": {
            "json": "https://app.readysignal.com/api/signals/{signal_id}/output?format=json"
        },
        "links": {
            "self": "https://app.readysignal.com/api/signal/{signal_id}/manage",
            "manage": "https://app.readysignal.com/api/signal/{signal_id}/manage"       
},
        "status": "Ready",
        "error_message": ""
    },
    "optimized": true
}

4. GET My Signal Output

Retrieve the processed output data for a specific signal ID

Each response is paginated, returning up to 1,000 records per page. Use the page query parameter to request additional pages. If a page number greater than the total available pages is requested, the API will return an error response.

Request

GET /api/signals/{signal_id}/output

Headers
KeyValueRequiredDescription
AuthorizationBearer {token}YesAPI authentication token
Acceptapplication/jsonYesResponse format
Content-Typeapplication/jsonYesRequest format
Query Parameters
ParameterTypeRequiredDescription
pageIntegerOptionalPage number for pagination (default = 1). The API returns an error if the requested page does not exist.
optimizedBooleanOptionalWhen present (or set to 1), returns optimized signal output. Only available for signals generated by auto-discovery (or Market Scout in the GUI) where create_custom_features = 1.
startDateString (YYYY-MM-DD)OptionalFilters output to data starting on or after this date.
endDateString (YYYY-MM-DD)OptionalFilters output to data ending on or before this date.
useTargetVariableDatesBooleanOptionalWhen present (or set to 1), limits the output to the date range of the target variable.
Example Request

GET /api/signals/48/output?page=1&optimized=1&startDate=2020-01-01&endDate=2020-06-30 HTTP/1.1
Host: app.readysignal.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCI1N…bGciOiJSUzI1Nmqhi6A
Accept: application/json
Content-Type: application/json

Example Response
{
       "current_page": 1,
       "data": [
       {
             "start": "2020-01-26",
             "end": "2020-02-01",
             "state": "Alabama",
             "population-rural": "1957932.00000000000000000000"
       },
       {
             "start": "2020-01-26",
             "end": "2020-02-01",
             "state": "Alaska",
             "population-rural": "241338.00000000000000000000"
       },
       {…},
       {
             "start": "2020-05-24",
             "end": "2020-05-30",
             "state": "Puerto Rico",
             "population-rural": "232533.00000000000000000000"
       }
       ],
       "first_page_url": "https://app.readysignal.com/api/signals/48/output?page=1",
       "from": 1,
       "last_page": 1,
       "last_page_url": "https://app.readysignal.com/api/signals/48/output?page=1",
       "next_page_url": null,
       "path": "https://app.readysignal.com/api/signals/48/output",
       "per_page": 1000,
       "prev_page_url": null,
       "to": 936,
       "total": 936
}

5. POST Auto Discovery

Ready Signal analyzes your data to identify and recommend external factors like weather, economic, and demographic trends that impact your unique business every day. There are two types of methods to start an Auto Discovery: Array or File. Currently Auto Discovery is working with “Month” and “Day” time grains, so all dates must be the first day of each month. Auto Discovery processing is asynchronous.

You have four ways to know when the signal processing has been completed:

  1. You can track the status from the Dashboard;
  2. A email is send by Ready Signal when processing is complete;
  3. Verify by API the status processing using My Signal Details endpoint;
  4. Passing a URL in the callback_url parameter so that Ready Signal can notify your system by send a GET request with parameter signal_id in query string.
Request

POST api/auto-discovery/array
POST api/auto-discovery/file

Headers
KeyValueRequiredDescription
AuthorizationBearer {token}YesAPI authentication token
Acceptapplication/jsonYesResponse format
Content-Typeapplication/jsonYesRequest Format
Request Parameters
ParameterTypeRequiredDescription
callback_urlURLOptionalURL to receive a GET callback with signal_id when processing completes.
filtered_geo_grainsStringOptionalFilter which geographies are included in discovery. Options: usanonusa, or all.
create_custom_featuresBooleanOptionalEnables custom feature generation if set to 1.
dataArray of ObjectsYes (if not file)Array of data objects containing your time series.
fileExcel or CSVYes (if not data)Excel or CSV file containing your time series.
Data Object
FieldTypeRequiredDescription
DateString (YYYY-MM-DD)YesDate of the observation (first day of month).
ValueNumericYesValue of your target variable (custom feature).
5.1 POST /auto-discovery/array

Start an auto-discovery process by sending an array of data objects.

Example Request
POST /api/auto-discovery/array HTTP/1.1
Host: app.readysignal.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCI1N...bGciOiJSUzI1Nmqhi6A
Body: {
    "callback_url": "https://my-website.com/my-callback-url",

    "create_custom_features": 1,


    "data": [
        {
            "Date": "2022-01-01",
            "Value": 2654.5
        },
        {
            "Date": "2022-02-01",
            "Value": 854.2
        },
        {
            "Date": "2022-03-01",
            "Value": 1786.9
        }
    ]
}
Example Response
{
    "message": "Your signal has been created",
    "signal_id": 1234
}
File Input

Start an Auto Discovery process by uploading a CSV or Excel file. You can download a template file from the Ready Signal application to ensure correct formatting.

Example Request
POST /api/auto-discovery/file HTTP/1.1
Host: app.readysignal.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer eyJ0eXAiOiJKV1QiLCI1N...bGciOiJSUzI1Nmqhi6A
Input callback_url: https://my-website.com/my-callback-url

Input create_custom_features: 1
Input file: my-value-file.csv
Response
{
    "message": "Your signal has been created",
    "signal_id": 1235
}

Scroll to Top