---
agentTools:
  projectIndex: https://docs.thinknum.com/llms.txt
---

# Filter

[block:api-header]
{
  "type": "basic",
  "title": "Filtering Queries (AND)"
}
[/block]

You can also filter queries to get specific records. Multiple filters are allowed.

A filter has the following required keys:

[block:parameters]
{
  "data": {
    "0-0": "match",
    "1-0": "conditions",
    "h-0": "Key",
    "h-1": "Description",
    "0-1": "The type of condition: all, any",
    "1-1": "The list of condition"
  },
  "cols": 2,
  "rows": 2
}
[/block]

Each condition has the following required keys:

[block:parameters]
{
  "data": {
    "h-0": "Key",
    "h-1": "Description",
    "0-0": "column",
    "1-0": "value",
    "2-0": "type",
    "0-1": "The column the filter should be applied to",
    "1-1": "The value of the filter",
    "2-1": "The type of \"equality\" to use: =, !=, >, <, >=, <="
  },
  "cols": 2,
  "rows": 3
}
[/block]

Not every filter type can be applied to every column. "String" types can only support a "=" filter, whereas "Number" types can support all filter types.

For example, to filter down to only New York Apple stores, an example request is:

[block:code]
{
  "codes": [
    {
      "code": "POST /dataset/store/query/ HTTP/1.1\nAuthorization: token 01234567890123456789\nX-API-Version: 20151130\n\n{\n    \"tickers\": [\n        \"nasdaq:aapl\"\n    ],\n    \"filters\": [\n        {\n            \"match\": \"all\",\n            \"conditions\": [\n                {\n                    \"column\": \"state\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"NY\"\n                    ]\n                },\n                {\n                    \"column\": \"city\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"New York\"\n                    ]\n                }\n            ]\n        }\n    ]\n}",
      "language": "http"
    },
    {
      "code": "curl -X POST \"https://data.thinknum.com/datasets/store/query/\" \\\n-H \"Accept: application/json\" \\\n-H \"X-API-Version: 20151130\" \\\n-H \"Authorization: token 01234567890123456789\" \\\n-d $'{\n    \"tickers\": [\n        \"nasdaq:aapl\"\n    ],\n    \"filters\": [\n        {\n            \"match\": \"all\",\n            \"conditions\": [\n                {\n                    \"column\": \"state\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"NY\"\n                    ]\n                },\n                {\n                    \"column\": \"city\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"New York\"\n                    ]\n                }\n            ]\n        }\n    ]\n}'\n",
      "language": "curl"
    },
    {
      "code": "response = requests.post(\n    url='https://data.thinknum.com/datasets/store/query/', \n    headers={\n        'Authorization': 'token 01234567890123456789', \n        'X-API-Version': '20151130', \n        'Accept': 'application/json'\n    }, \n    data=json.dumps({\n        \"tickers\": [\n            \"nasdaq:aapl\"\n        ],\n        \"filters\": [\n            {\n                \"match\": \"all\",\n                \"conditions\": [\n                    {\n                        \"column\": \"state\",\n                        \"type\": \"=\",\n                        \"value\": [\n                            \"NY\"\n                        ]\n                    },\n                    {\n                        \"column\": \"city\",\n                        \"type\": \"=\",\n                        \"value\": [\n                            \"New York\"\n                        ]\n                    }\n                ]\n            }\n        ]\n    })\n)\nresults = json.loads(response.text)",
      "language": "python"
    }
  ]
}
[/block]

A sample response follows:

[block:code]
{
  "codes": [
    {
      "code": "{\n    \"state\": \"complete\",\n    \"total\": 7,\n    \"id\": \"191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253\",\n    \"formats\": [\n        \"application/vnd.thinknum.table+json\",\n        \"application/vnd.thinknum.map+json\"\n    ]\n}",
      "language": "text"
    }
  ]
}
[/block]

To check if query is completed:

[block:code]
{
  "codes": [
    {
      "code": "HEAD datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253 HTTP/1.1\nAuthorization: token 01234567890123456789\nX-API-Version: 20151130\nAccept: application/vnd.thinknum.table+json\nContent-Type: application/x-www-form-urlencoded; charset=utf-8",
      "language": "http"
    },
    {
      "code": "curl -I HEAD \"https://data.thinknum.com/datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253\" \\\n-H \"Accept: application/vnd.thinknum.table+json\" \\\n-H \"X-API-Version: 20151130\" \\\n-H \"Authorization: token 01234567890123456789\"",
      "language": "curl"
    },
    {
      "code": "response = requests.head(\n    url='https://data.thinknum.com/datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253', \n    headers={\n        'Authorization': 'token 01234567890123456789', \n        'X-API-Version': '20151130', \n        'Accept': 'application/vnd.thinknum.table+json'\n    }\n)\nresults = dict(response.headers)",
      "language": "python"
    }
  ]
}
[/block]

A sample response follows:

[block:code]
{
  "codes": [
    {
      "code": "HTTP/1.1 200 OK\nServer: nginx\nDate: Fri, 30 Apr 2021 15:18:35 GMT\nContent-Type: application/json\nConnection: keep-alive\nX-Truncated: false\nX-Formats: application/vnd.thinknum.table+json, application/vnd.thinknum.map+json, text/csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\nX-Total: 7\nX-State: complete\nStrict-Transport-Security: max-age=15768000",
      "language": "json"
    }
  ]
}
[/block]

To retrieve data:

[block:code]
{
  "codes": [
    {
      "code": "GET /datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253\nAuthorization: token 01234567890123456789\nX-API-Version: 20151130\nAccept: application/vnd.thinknum.table+json\nContent-Type: application/json",
      "language": "http"
    },
    {
      "code": "curl -X GET \"https://data.thinknum.com/datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253?limit=10&start=1\" \\\n-H \"Accept: application/vnd.thinknum.table+json\" \\\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Version: 20151130\" \\\n-H \"Authorization: token 01234567890123456789\"",
      "language": "curl"
    },
    {
      "code": "response = requests.get(\n    url='https://data.thinknum.com/datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253', \n    headers={\n        'Authorization': 'token 01234567890123456789', \n        'X-API-Version': '20151130', \n        'Accept': 'application/vnd.thinknum.table+json'\n    }\n)\nresults = json.loads(response.text)",
      "language": "python"
    }
  ]
}
[/block]

A sample response follows:

[block:code]
{
  "codes": [
    {
      "code": "{\n    \"group_fields\": [\n        {\n            \"display_name\": \"Ticker Symbol\",\n            \"format\": \"ticker\",\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__ticker\",\n            \"length\": 320,\n            \"summary\": \"The full ticker symbol, defined as the financial market of the company, followed by a colon (:), and then the identifier of the company. ex. NASDAQ:AAPL\",\n            \"type\": \"string\",\n            \"options\": []\n        },\n        ...\n        {\n            \"display_name\": \"GICS Industry\",\n            \"format\": null,\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__market_industry\",\n            \"length\": 64,\n            \"summary\": \"The gics industry within the sector a ticker belongs to\",\n            \"type\": \"string\",\n            \"options\": []\n        }\n    ],\n    \"total\": 7,\n    \"id\": \"191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253\",\n    \"count\": 7,\n    \"rows\": [\n        [\n            \"nasdaq:aapl\",\n            ...\n            \"Technology Hardware & Equipment\"\n        ],\n        ...\n        [\n            \"nasdaq:aapl\",\n            ...\n            \"Technology Hardware & Equipment\"\n        ]\n    ],\n    \"fields\": [\n        {\n            \"display_name\": \"Ticker Symbol\",\n            \"format\": \"ticker\",\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__ticker\",\n            \"length\": 320,\n            \"summary\": \"The full ticker symbol, defined as the financial market of the company, followed by a colon (:), and then the identifier of the company. ex. NASDAQ:AAPL\",\n            \"type\": \"string\",\n            \"options\": []\n        },\n        ...\n        {\n            \"display_name\": \"GICS Industry\",\n            \"format\": null,\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__market_industry\",\n            \"length\": 64,\n            \"summary\": \"The gics industry within the sector a ticker belongs to\",\n            \"type\": \"string\",\n            \"options\": []\n        }\n    ],\n    \"sort_fields\": [],\n    \"start\": 1,\n    \"state\": \"complete\",\n    \"limit\": 10,\n    \"last_date_updated\": \"2021-04-01T02:34:56Z\"\n}",
      "language": "json"
    }
  ]
}
[/block]

[block:api-header]
{
  "title": "Filtering Queries (OR)"
}
[/block]

To filter down to Apple stores in New York City OR California, an example request is:

[block:code]
{
  "codes": [
    {
      "code": "POST /dataset/store/query/ HTTP/1.1\nAuthorization: token 01234567890123456789\nX-API-Version: 20151130\n\n{\n    \"tickers\": [\n        \"nasdaq:aapl\"\n    ],\n    \"filters\": [\n        {\n            \"match\": \"any\",\n            \"conditions\": [\n                {\n                    \"column\": \"state\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"CA\"\n                    ]\n                },\n                {\n                    \"column\": \"city\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"New York\"\n                    ]\n                }\n            ]\n        }\n    ]\n}",
      "language": "http"
    },
    {
      "code": "curl -X POST \"https://data.thinknum.com/datasets/store/query/\" \\\n-H \"Accept: application/json\" \\\n-H \"X-API-Version: 20151130\" \\\n-H \"Authorization: token 01234567890123456789\" \\\n-d $'{\n    \"tickers\": [\n        \"nasdaq:aapl\"\n    ],\n    \"filters\": [\n        {\n            \"match\": \"any\",\n            \"conditions\": [\n                {\n                    \"column\": \"state\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"CA\"\n                    ]\n                },\n                {\n                    \"column\": \"city\",\n                    \"type\": \"=\",\n                    \"value\": [\n                        \"New York\"\n                    ]\n                }\n            ]\n        }\n    ]\n}'",
      "language": "curl"
    },
    {
      "code": "response = requests.post(\n    url='https://data.thinknum.com/datasets/store/query/', \n    headers={\n        'Authorization': 'token 01234567890123456789', \n        'X-API-Version': '20151130', \n        'Accept': 'application/json'\n    }, \n    data=json.dumps({\n        \"tickers\": [\n            \"nasdaq:aapl\"\n        ],\n        \"filters\": [\n            {\n                \"match\": \"any\",\n                \"conditions\": [\n                    {\n                        \"column\": \"state\",\n                        \"type\": \"=\",\n                        \"value\": [\n                            \"NY\"\n                        ]\n                    },\n                    {\n                        \"column\": \"city\",\n                        \"type\": \"=\",\n                        \"value\": [\n                            \"New York\"\n                        ]\n                    }\n                ]\n            }\n        ]\n    })\n)\nresults = json.loads(response.text)",
      "language": "python"
    }
  ]
}
[/block]

A sample response follows:

[block:code]
{
  "codes": [
    {
      "code": "{\n    \"state\": \"complete\",\n    \"total\": 4384,\n    \"id\": \"c792d09496b22d544e53f587c5b9c407098387ac985057c9e9d42553fb0552af\",\n    \"formats\": [\n        \"application/vnd.thinknum.table+json\",\n        \"application/vnd.thinknum.map+json\"\n    ]\n}",
      "language": "json"
    }
  ]
}
[/block]

To check if query is completed:

[block:code]
{
  "codes": [
    {
      "code": "HEAD datasets/store/query/c792d09496b22d544e53f587c5b9c407098387ac985057c9e9d42553fb0552af HTTP/1.1\nAuthorization: token 01234567890123456789\nX-API-Version: 20151130\nAccept: application/vnd.thinknum.table+json\nContent-Type: application/x-www-form-urlencoded; charset=utf-8",
      "language": "http"
    },
    {
      "code": "curl -I HEAD \"https://data.thinknum.com/datasets/store/query/c792d09496b22d544e53f587c5b9c407098387ac985057c9e9d42553fb0552af\" \\\n-H \"Accept: application/vnd.thinknum.table+json\" \\\n-H \"X-API-Version: 20151130\" \\\n-H \"Authorization: token 01234567890123456789\"",
      "language": "curl"
    },
    {
      "code": "response = requests.head(\n    url='https://data.thinknum.com/datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253', \n    headers={\n        'Authorization': 'token 01234567890123456789', \n        'X-API-Version': '20151130', \n        'Accept': 'application/vnd.thinknum.table+json'\n    }\n)\nresults = dict(response.headers)",
      "language": "python"
    }
  ]
}
[/block]

A sample response follows:

[block:code]
{
  "codes": [
    {
      "code": "HTTP/1.1 200 OK\nServer: nginx\nDate: Fri, 30 Apr 2021 15:31:13 GMT\nContent-Type: application/json\nConnection: keep-alive\nX-Truncated: false\nX-Formats: application/vnd.thinknum.table+json, application/vnd.thinknum.map+json, text/csv, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\nX-Total: 4384\nX-State: complete\nStrict-Transport-Security: max-age=15768000",
      "language": "json"
    }
  ]
}
[/block]

To retrieve data:

[block:code]
{
  "codes": [
    {
      "code": "GET /datasets/store/query/c792d09496b22d544e53f587c5b9c407098387ac985057c9e9d42553fb0552af\nAuthorization: token 01234567890123456789\nX-API-Version: 20151130\nAccept: application/vnd.thinknum.table+json\nContent-Type: application/json",
      "language": "http"
    },
    {
      "code": "curl -X GET \"https://data.thinknum.com/datasets/store/query/c792d09496b22d544e53f587c5b9c407098387ac985057c9e9d42553fb0552af?limit=10&start=1\" \\\n-H \"Accept: application/vnd.thinknum.table+json\" \\\n-H \"Content-Type: application/json\" \\\n-H \"X-API-Version: 20151130\" \\\n-H \"Authorization: token 01234567890123456789\"\n",
      "language": "curl"
    },
    {
      "code": "response = requests.get(\n    url='https://data.thinknum.com/datasets/store/query/191ca7678cf98b269d3dc028b9e11060f67ea30864afd2fd2a90a33312fb5253', \n    headers={\n        'Authorization': 'token 01234567890123456789', \n        'X-API-Version': '20151130', \n        'Accept': 'application/vnd.thinknum.table+json'\n    }\n)\nresults = json.loads(response.text)",
      "language": "python"
    }
  ]
}
[/block]

A sample response follows:

[block:code]
{
  "codes": [
    {
      "code": "{\n    \"group_fields\": [\n        {\n            \"display_name\": \"Ticker Symbol\",\n            \"format\": \"ticker\",\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__ticker\",\n            \"length\": 320,\n            \"summary\": \"The full ticker symbol, defined as the financial market of the company, followed by a colon (:), and then the identifier of the company. ex. NASDAQ:AAPL\",\n            \"type\": \"string\",\n            \"options\": []\n        },\n        ...\n        {\n            \"display_name\": \"GICS Industry\",\n            \"format\": null,\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__market_industry\",\n            \"length\": 64,\n            \"summary\": \"The gics industry within the sector a ticker belongs to\",\n            \"type\": \"string\",\n            \"options\": []\n        }\n    ],\n    \"total\": 4384,\n    \"id\": \"60d68cb37d2af4e7b3c4b7aaae0b89ad45f992487997bb173b4b60191fc4d673\",\n    \"count\": 10,\n    \"rows\": [\n        [\n            \"nasdaq:aapl\",\n            ...\n            \"Technology Hardware & Equipment\"\n        ],\n        ...\n        [\n            \"nasdaq:aapl\",\n            ...\n            \"Technology Hardware & Equipment\"\n        ]\n    ],\n    \"fields\": [\n        {\n            \"display_name\": \"Ticker Symbol\",\n            \"format\": \"ticker\",\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__ticker\",\n            \"length\": 320,\n            \"summary\": \"The full ticker symbol, defined as the financial market of the company, followed by a colon (:), and then the identifier of the company. ex. NASDAQ:AAPL\",\n            \"type\": \"string\",\n            \"options\": []\n        },\n        ...\n        {\n            \"display_name\": \"GICS Industry\",\n            \"format\": null,\n            \"metric\": false,\n            \"id\": \"dataset__entity__entity_ticker__ticker__market_industry\",\n            \"length\": 64,\n            \"summary\": \"The gics industry within the sector a ticker belongs to\",\n            \"type\": \"string\",\n            \"options\": []\n        }\n    ],\n    \"sort_fields\": [],\n    \"start\": 1,\n    \"state\": \"complete\",\n    \"limit\": 10,\n    \"last_date_updated\": \"2021-04-01T02:34:56Z\"\n}",
      "language": "json"
    }
  ]
}
[/block]