url = "https://api-atlas.nomic.ai/v1/query/topk"
import requests
import json
import datetime
# 1. 範囲の開始と終了を定義
start_date = datetime.datetime(2000, 1, 1, 0, 0, 0, tzinfo=datetime.timezone.utc)
end_date = datetime.datetime(2025, 12, 31, 23, 59, 59, tzinfo=datetime.timezone.utc)
# 2. Unixエポックからのミリ秒に変換(重要!)
start_millis = int(start_date.timestamp() * 1000)
end_millis = int(end_date.timestamp() * 1000)
def get_app_numbers(query,topK=100):
payload = json.dumps({
"k": topK,
"query": query,
"fields": [
~~略~~
],
"selection": {
"method": "composition",
"conjunctor": "ALL",
"filters": [
{
"method": "range",
"field": "total_funding_usd",
"range": [0.00000000001, 1000000000000000000] # 例えば資金調達額の範囲
},
{
"method": "range",
"field": "founded_on",
"range": [start_millis, end_millis] # 例えば設立日の範囲(ミリ秒)
},
{
"method": "search",
"query": "private",
"field": "ipo_status"
}
]
},
"task_type": "search_document",
"projection_id": "PROJECTION_ID",
"includeSimilarity": True
})
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Bearer {TOKEN}'
}
response = requests.request("POST", url, headers=headers, data=payload)
if response.status_code != 200:
print(f"API Request failed with status code: {response.status_code}")
print(f"Response text: {response.text}")
response.raise_for_status()
return response.json()