Save a place by id — optionally to a list. Idempotent per (place, list).
THE contract is a canonical place ULID (canonical_places.id) — the
spine identity every surface joins on; saves resolve entirely from the
spine with zero paid fetches, and dedup by canonical place_id.
A Google place_id is also accepted as the LEGACY autocomplete path (the
picker hands us a gpid before any canonical row exists); that path still
ends canonical — the resolver mints/links the row and stamps
item.place_id — it just pays the Google fetch to get there.
A place's Michelin Guide distinction, structured. Canonical rationale —
the TS mirror and the renderers point here rather than restating it.
Rides alongside michelin_award rather than replacing it: that field is a
pre-rendered label ("★★★"), and a label cannot drive iconography. An award
string we don't recognise yields NO distinction (we never paint a mark we
can't justify) while still surfacing verbatim in michelin_award, so a
new tier degrades to text rather than disappearing.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Stardrift","colors":{"primary":"#2A2629","light":"#F5F3F0","dark":"#2A2629"},"logo":{"light":"https://mintcdn.com/stardrift/n6VB9GT0pGazMpO0/logo.png?fit=max\u0026auto=format\u0026n=n6VB9GT0pGazMpO0\u0026q=85\u0026s=1d669600fef5d555da0a67aecbea925d","dark":"https://mintcdn.com/stardrift/n6VB9GT0pGazMpO0/logo.png?fit=max\u0026auto=format\u0026n=n6VB9GT0pGazMpO0\u0026q=85\u0026s=1d669600fef5d555da0a67aecbea925d"},"favicon":"https://mintcdn.com/stardrift/n6VB9GT0pGazMpO0/favicon.png?fit=max\u0026auto=format\u0026n=n6VB9GT0pGazMpO0\u0026q=85\u0026s=9af6be1d200c42c00a73da6767f40f5e","navbar":{"links":[{"href":"https://stardrift.ai","label":"Stardrift"}]},"footer":{"socials":{"website":"https://stardrift.ai"}},"integrations":{"posthog":{"apiKey":"phc_LS4yqgllHQwDHPG55VPBWYfB0kDwH2i48urCtnOVUIA","apiHost":"https://us.i.posthog.com","sessionRecording":false}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"stardrift","hasAudioNarration":false,"actualSubdomain":"stardrift","customDomains":["docs.stardrift.ai"],"gitSource":{"type":"github","owner":"stardrift-ai","repo":"flight-chat","deployBranch":"main","contentDirectory":"docs-mcp","isPrivate":true,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6abb0f1915f5070ef7c80534","collectionId":"ed2bf220-e1ec-4466-b0e9-b0ddf061594f","liveDeploymentHistoryId":"6abb0f1915f5070ef7c80534","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6abb0f1915f5070ef7c80534","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"API reference","count":32},{"language":"default","tag":"mcp-server","count":21},{"language":"default","tag":"saved","count":11},{"language":"default","tag":"Documentation","count":9},{"language":"default","tag":"Connect a client","count":7},{"language":"default","tag":"Get started","count":2}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/saved/add-place-by-id","slug":"/api-reference/saved/add-place-by-id","pageMetadata":{"title":"Add Place By Id","description":"Save a place by id — optionally to a list. Idempotent per (place, list).\n\nTHE contract is a canonical place ULID (`canonical_places.id`) — the\nspine identity every surface joins on; saves resolve entirely from the\nspine with zero paid fetches, and dedup by canonical place_id.\n\nA Google place_id is also accepted as the LEGACY autocomplete path (the\npicker hands us a gpid before any canonical row exists); that path still\nends canonical — the resolver mints/links the row and stamps\n`item.place_id` — it just pays the Google fetch to get there.","deprecated":null,"version":null,"openapi":"/openapi.json post /saved/add-place","href":"/api-reference/saved/add-place-by-id","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Save a place by id — optionally to a list. Idempotent per (place, list).\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"THE contract is a canonical place ULID (\", _jsx(_components.code, {\n children: \"canonical_places.id\"\n }), \") — the\\nspine identity every surface joins on; saves resolve entirely from the\\nspine with zero paid fetches, and dedup by canonical place_id.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A Google place_id is also accepted as the LEGACY autocomplete path (the\\npicker hands us a gpid before any canonical row exists); that path still\\nends canonical — the resolver mints/links the row and stamps\\n\", _jsx(_components.code, {\n children: \"item.place_id\"\n }), \" — it just pays the Google fetch to get there.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Add Place By Id","description":"Save a place by id — optionally to a list. Idempotent per (place, list).\n\nTHE contract is a canonical place ULID (`canonical_places.id`) — the\nspine identity every surface joins on; saves resolve entirely from the\nspine with zero paid fetches, and dedup by canonical place_id.\n\nA Google place_id is also accepted as the LEGACY autocomplete path (the\npicker hands us a gpid before any canonical row exists); that path still\nends canonical — the resolver mints/links the row and stamps\n`item.place_id` — it just pays the Google fetch to get there.","deprecated":null,"version":null,"openapi":"/openapi.json post /saved/add-place","href":"/api-reference/saved/add-place-by-id","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["saved"],"summary":"Add Place By Id","description":"Save a place by id — optionally to a list. Idempotent per (place, list).\n\nTHE contract is a canonical place ULID (`canonical_places.id`) — the\nspine identity every surface joins on; saves resolve entirely from the\nspine with zero paid fetches, and dedup by canonical place_id.\n\nA Google place_id is also accepted as the LEGACY autocomplete path (the\npicker hands us a gpid before any canonical row exists); that path still\nends canonical — the resolver mints/links the row and stamps\n`item.place_id` — it just pays the Google fetch to get there.","operationId":"add_place_by_id_saved_add_place_post","parameters":["11ec1fa0-8cd5-47b1-9d68-f8ca4064a49e"],"requestBody":"a8d4c871-3af3-4f28-b6e2-a06b6bcfc2aa","responses":{"200":"144045c1-2004-4c6b-9a86-2a803b071a67","422":"edda030e-d4f7-4dc9-a3f3-2f0afb809a06"},"method":"post","type":"path","servers":["80d3d18a-cf50-465f-8eb4-bf6835a95d19"],"security":[],"path":"/saved/add-place","baseUrlOptions":["https://stardrift.ai/api"],"title":"Add Place By Id","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"11ec1fa0-8cd5-47b1-9d68-f8ca4064a49e":{"name":"x-client-id","in":"header","required":false,"schema":{"oneOf":[{"type":"string","title":"X-Client-Id","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"null","title":"X-Client-Id","uniqueKey":"oneOf.1","typeLabel":"null"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | null"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"place_id":{"type":"string","title":"Place Id","isRequired":true,"uniqueKey":"place_id","typeLabel":"string"},"list_id":{"oneOf":[{"type":"string","title":"List Id","format":"uuid","uniqueKey":"list_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"List Id","uniqueKey":"list_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"list_id","typeLabel":"string\u003cuuid> | null"},"skip_enrichment":{"type":"boolean","title":"Skip Enrichment","default":false,"uniqueKey":"skip_enrichment","typeLabel":"boolean"}},"type":"object","required":["place_id"],"title":"AddPlaceByIdRequest","uniqueKey":"","typeLabel":"AddPlaceByIdRequest · object"},"examples":{"Example":{"title":"Example","value":{"place_id":"\u003cstring>","list_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","skip_enrichment":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"144045c1-2004-4c6b-9a86-2a803b071a67":{"description":"Successful Response","content":{"application/json":{"schema":{"properties":{"id":{"type":"string","format":"uuid","title":"Id","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"},"list_id":{"oneOf":[{"type":"string","title":"List Id","format":"uuid","isRequired":true,"uniqueKey":"list_id.oneOf.0","typeLabel":"string\u003cuuid>"},{"type":"null","title":"List Id","isRequired":true,"uniqueKey":"list_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"list_id","typeLabel":"string\u003cuuid> | null"},"place_ref":{"type":"string","title":"Place Ref","isRequired":true,"uniqueKey":"place_ref","typeLabel":"string"},"place_id":{"oneOf":[{"type":"string","title":"Place Id","isRequired":true,"uniqueKey":"place_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Place Id","isRequired":true,"uniqueKey":"place_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"place_id","typeLabel":"string | null"},"caption":{"oneOf":[{"type":"string","title":"Caption","isRequired":true,"uniqueKey":"caption.oneOf.0","typeLabel":"string"},{"type":"null","title":"Caption","isRequired":true,"uniqueKey":"caption.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"caption","typeLabel":"string | null"},"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"category":{"oneOf":[{"type":"string","title":"Category","isRequired":true,"uniqueKey":"category.oneOf.0","typeLabel":"string"},{"type":"null","title":"Category","isRequired":true,"uniqueKey":"category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"category","typeLabel":"string | null"},"city":{"oneOf":[{"type":"string","title":"City","isRequired":true,"uniqueKey":"city.oneOf.0","typeLabel":"string"},{"type":"null","title":"City","isRequired":true,"uniqueKey":"city.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"city","typeLabel":"string | null"},"state":{"oneOf":[{"type":"string","title":"State","isRequired":true,"uniqueKey":"state.oneOf.0","typeLabel":"string"},{"type":"null","title":"State","isRequired":true,"uniqueKey":"state.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"state","typeLabel":"string | null"},"country":{"oneOf":[{"type":"string","title":"Country","isRequired":true,"uniqueKey":"country.oneOf.0","typeLabel":"string"},{"type":"null","title":"Country","isRequired":true,"uniqueKey":"country.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"country","typeLabel":"string | null"},"lat":{"oneOf":[{"type":"number","title":"Lat","isRequired":true,"uniqueKey":"lat.oneOf.0","typeLabel":"number"},{"type":"null","title":"Lat","isRequired":true,"uniqueKey":"lat.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lat","typeLabel":"number | null"},"lng":{"oneOf":[{"type":"number","title":"Lng","isRequired":true,"uniqueKey":"lng.oneOf.0","typeLabel":"number"},{"type":"null","title":"Lng","isRequired":true,"uniqueKey":"lng.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"lng","typeLabel":"number | null"},"image_url":{"oneOf":[{"type":"string","title":"Image Url","isRequired":true,"uniqueKey":"image_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Image Url","isRequired":true,"uniqueKey":"image_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"image_url","typeLabel":"string | null"},"rating":{"oneOf":[{"type":"number","title":"Rating","isRequired":true,"uniqueKey":"rating.oneOf.0","typeLabel":"number"},{"type":"null","title":"Rating","isRequired":true,"uniqueKey":"rating.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"rating","typeLabel":"number | null"},"num_reviews":{"oneOf":[{"type":"integer","title":"Num Reviews","isRequired":true,"uniqueKey":"num_reviews.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Num Reviews","isRequired":true,"uniqueKey":"num_reviews.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"num_reviews","typeLabel":"integer | null"},"source":{"type":"string","title":"Source","isRequired":true,"uniqueKey":"source","typeLabel":"string"},"source_url":{"oneOf":[{"type":"string","title":"Source Url","isRequired":true,"uniqueKey":"source_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Source Url","isRequired":true,"uniqueKey":"source_url.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"source_url","typeLabel":"string | null"},"is_shared":{"type":"boolean","title":"Is Shared","isRequired":true,"uniqueKey":"is_shared","typeLabel":"boolean"},"review_state":{"oneOf":[{"type":"string","title":"Review State","isRequired":true,"uniqueKey":"review_state.oneOf.0","typeLabel":"string"},{"type":"null","title":"Review State","isRequired":true,"uniqueKey":"review_state.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"review_state","typeLabel":"string | null"},"created_at":{"type":"string","title":"Created At","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"description":{"oneOf":[{"type":"string","title":"Description","uniqueKey":"description.oneOf.0","typeLabel":"string"},{"type":"null","title":"Description","uniqueKey":"description.oneOf.1","typeLabel":"null"}],"uniqueKey":"description","typeLabel":"string | null"},"image_thumbhash":{"oneOf":[{"type":"string","title":"Image Thumbhash","uniqueKey":"image_thumbhash.oneOf.0","typeLabel":"string"},{"type":"null","title":"Image Thumbhash","uniqueKey":"image_thumbhash.oneOf.1","typeLabel":"null"}],"uniqueKey":"image_thumbhash","typeLabel":"string | null"},"tabelog_tier":{"oneOf":[{"type":"integer","title":"Tabelog Tier","uniqueKey":"tabelog_tier.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Tabelog Tier","uniqueKey":"tabelog_tier.oneOf.1","typeLabel":"null"}],"uniqueKey":"tabelog_tier","typeLabel":"integer | null"},"michelin":{"oneOf":[{"type":"object","title":"MichelinDistinction","description":"A place's Michelin Guide distinction, structured. Canonical rationale —\nthe TS mirror and the renderers point here rather than restating it.\n\nRides alongside `michelin_award` rather than replacing it: that field is a\npre-rendered label (\"★★★\"), and a label cannot drive iconography. An award\nstring we don't recognise yields NO distinction (we never paint a mark we\ncan't justify) while still surfacing verbatim in `michelin_award`, so a\nnew tier degrades to text rather than disappearing.","required":["tier"],"properties":{"tier":{"type":"string","enum":["stars","bib_gourmand","selected"],"title":"Tier","isRequired":true,"uniqueKey":"michelin.oneOf.0.tier","typeLabel":"enum\u003cstring>"},"stars":{"oneOf":[{"type":"integer","title":"Stars","uniqueKey":"michelin.oneOf.0.stars.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Stars","uniqueKey":"michelin.oneOf.0.stars.oneOf.1","typeLabel":"null"}],"uniqueKey":"michelin.oneOf.0.stars","typeLabel":"integer | null"},"green_star":{"type":"boolean","title":"Green Star","default":false,"uniqueKey":"michelin.oneOf.0.green_star","typeLabel":"boolean"},"url":{"oneOf":[{"type":"string","title":"Url","uniqueKey":"michelin.oneOf.0.url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Url","uniqueKey":"michelin.oneOf.0.url.oneOf.1","typeLabel":"null"}],"uniqueKey":"michelin.oneOf.0.url","typeLabel":"string | null"},"cuisine":{"oneOf":[{"type":"string","title":"Cuisine","uniqueKey":"michelin.oneOf.0.cuisine.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cuisine","uniqueKey":"michelin.oneOf.0.cuisine.oneOf.1","typeLabel":"null"}],"uniqueKey":"michelin.oneOf.0.cuisine","typeLabel":"string | null"}},"uniqueKey":"michelin.oneOf.0","typeLabel":"MichelinDistinction · object"},{"type":"null","uniqueKey":"michelin.oneOf.1","typeLabel":"null"}],"uniqueKey":"michelin","typeLabel":"MichelinDistinction · object | null"}},"type":"object","required":["id","list_id","place_ref","place_id","caption","name","category","city","state","country","lat","lng","image_url","rating","num_reviews","source","source_url","is_shared","review_state","created_at"],"title":"SavedItemOut","uniqueKey":"","typeLabel":"SavedItemOut · object"},"examples":{"Example":{"title":"Example","value":{"id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","list_id":"3c90c3cc-0d44-4b50-8888-8dd25736052a","place_ref":"\u003cstring>","place_id":"\u003cstring>","caption":"\u003cstring>","name":"\u003cstring>","category":"\u003cstring>","city":"\u003cstring>","state":"\u003cstring>","country":"\u003cstring>","lat":123,"lng":123,"image_url":"\u003cstring>","rating":123,"num_reviews":123,"source":"\u003cstring>","source_url":"\u003cstring>","is_shared":true,"review_state":"\u003cstring>","created_at":"\u003cstring>","description":"\u003cstring>","image_thumbhash":"\u003cstring>","tabelog_tier":123,"michelin":{"tier":"stars","stars":123,"green_star":false,"url":"\u003cstring>","cuisine":"\u003cstring>"}}}},"exampleType":"generated"}},"exampleType":"generated"},"edda030e-d4f7-4dc9-a3f3-2f0afb809a06":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"},"input":{"oneOf":[{"title":"Input"}],"uniqueKey":"detail.items.[INDEX].input","typeLabel":"any"},"ctx":{"type":"object","title":"Context","uniqueKey":"detail.items.[INDEX].ctx","typeLabel":"Context · object"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>","input":"\u003cunknown>","ctx":{}}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{},"servers":{"80d3d18a-cf50-465f-8eb4-bf6835a95d19":{"url":"https://stardrift.ai/api"}}},"originalFileLocation":"openapi.json"},"subdomain":"stardrift","siteName":"Stardrift","title":"Add Place By Id - Stardrift","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-23T23:54:54.747Z","originalFileLocation":"api-reference/saved/add-place-by-id.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Save a place by id — optionally to a list. Idempotent per (place, list). THE contract is a canonical place ULID (canonical_places.id) — the spine identity every surface joins on; saves resolve entirely from the spine with zero paid fetches, and dedup by canonical place_id. A Google place_id is also accepted as the LEGACY autocomplete path (the picker hands us a gpid before any canonical row exists); that path still ends canonical — the resolver mints/links the row and stamps item.place_id — it just pays the Google fetch to get there.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Stardrift\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Add Place By Id - Stardrift\">\u003cmeta data-mint-head property=\"og:description\" content=\"Save a place by id — optionally to a list. Idempotent per (place, list). THE contract is a canonical place ULID (canonical_places.id) — the spine identity every surface joins on; saves resolve entirely from the spine with zero paid fetches, and dedup by canonical place_id. A Google place_id is also accepted as the LEGACY autocomplete path (the picker hands us a gpid before any canonical row exists); that path still ends canonical — the resolver mints/links the row and stamps item.place_id — it just pays the Google fetch to get there.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Stardrift\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://stardrift.mintlify.app/_mintlify/api/og/v2?division=saved\u0026amp;title=Add+Place+By+Id\u0026amp;description=Save+a+place+by+id+%E2%80%94+optionally+to+a+list.+Idempotent+per+%28place%2C+list%29.%0A%0ATHE+contract+is+a+canonical+place+ULID+%28%60canonical_places.id%60%29+%E2%80%94+the%0Aspine+identity+ev\u0026amp;theme=c36ef5c2e04b1b9b538a9195\u0026amp;signature=9854a6305cedf8c04d11b96e7dc6600f572b118f9d143213fd889bb29f303d9d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Add Place By Id - Stardrift\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Save a place by id — optionally to a list. Idempotent per (place, list). THE contract is a canonical place ULID (canonical_places.id) — the spine identity every surface joins on; saves resolve entirely from the spine with zero paid fetches, and dedup by canonical place_id. A Google place_id is also accepted as the LEGACY autocomplete path (the picker hands us a gpid before any canonical row exists); that path still ends canonical — the resolver mints/links the row and stamps item.place_id — it just pays the Google fetch to get there.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://stardrift.mintlify.app/_mintlify/api/og/v2?division=saved\u0026amp;title=Add+Place+By+Id\u0026amp;description=Save+a+place+by+id+%E2%80%94+optionally+to+a+list.+Idempotent+per+%28place%2C+list%29.%0A%0ATHE+contract+is+a+canonical+place+ULID+%28%60canonical_places.id%60%29+%E2%80%94+the%0Aspine+identity+ev\u0026amp;theme=c36ef5c2e04b1b9b538a9195\u0026amp;signature=9854a6305cedf8c04d11b96e7dc6600f572b118f9d143213fd889bb29f303d9d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/stardrift/MlsPJ1m8lV3nEecY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Stardrift\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2A2629\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/saved/add-place-by-id.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.stardrift.ai/#organization\",\"name\":\"Stardrift\",\"url\":\"https://docs.stardrift.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/stardrift/n6VB9GT0pGazMpO0/logo.png?fit=max\u0026auto=format\u0026n=n6VB9GT0pGazMpO0\u0026q=85\u0026s=1d669600fef5d555da0a67aecbea925d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.stardrift.ai#website\",\"name\":\"Stardrift\",\"url\":\"https://docs.stardrift.ai\",\"publisher\":{\"@id\":\"https://docs.stardrift.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id#webpage\",\"url\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id\",\"name\":\"Add Place By Id\",\"description\":\"Save a place by id — optionally to a list. Idempotent per (place, list). THE contract is a canonical place ULID (canonical_places.id) — the spine identity every surface joins on; saves resolve entirely from the spine with zero paid fetches, and dedup by canonical place_id. A Google place_id is also accepted as the LEGACY autocomplete path (the picker hands us a gpid before any canonical row exists); that path still ends canonical — the resolver mints/links the row and stamps item.place_id — it just pays the Google fetch to get there.\",\"dateModified\":\"2026-09-23T23:54:54.747Z\",\"isPartOf\":{\"@id\":\"https://docs.stardrift.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"saved\",\"item\":\"https://docs.stardrift.ai/api-reference/saved/place-autocomplete\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Add Place By Id\",\"item\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id#apireference\",\"headline\":\"Add Place By Id\",\"name\":\"Add Place By Id\",\"description\":\"Save a place by id — optionally to a list. Idempotent per (place, list). THE contract is a canonical place ULID (canonical_places.id) — the spine identity every surface joins on; saves resolve entirely from the spine with zero paid fetches, and dedup by canonical place_id. A Google place_id is also accepted as the LEGACY autocomplete path (the picker hands us a gpid before any canonical row exists); that path still ends canonical — the resolver mints/links the row and stamps item.place_id — it just pays the Google fetch to get there.\",\"url\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id\",\"mainEntityOfPage\":{\"@id\":\"https://docs.stardrift.ai/api-reference/saved/add-place-by-id#webpage\"},\"dateModified\":\"2026-09-23T23:54:54.747Z\",\"publisher\":{\"@id\":\"https://docs.stardrift.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.stardrift.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Stardrift\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Stardrift","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"mcp-server","pages":[{"title":"Get Forwarding Address","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/forwarding-address","href":"/api-reference/mcp-server/get-forwarding-address"},{"title":"List Bookings","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/bookings","href":"/api-reference/mcp-server/list-bookings"},{"title":"List Trips","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/trips","href":"/api-reference/mcp-server/list-trips"},{"title":"Create Trip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips","href":"/api-reference/mcp-server/create-trip"},{"title":"Get Plan","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/trips/{trip_id}/plan","href":"/api-reference/mcp-server/get-plan"},{"title":"Add Place","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/places","href":"/api-reference/mcp-server/add-place"},{"title":"Add Day Note","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/days/{day_number}/notes","href":"/api-reference/mcp-server/add-day-note"},{"title":"Remove Entry","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/trips/{trip_id}/days/{day_number}/entries/{entry_id}","href":"/api-reference/mcp-server/remove-entry"},{"title":"Update Entry","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/trips/{trip_id}/days/{day_number}/entries/{entry_id}","href":"/api-reference/mcp-server/update-entry"},{"title":"Move Entry","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/days/{day_number}/entries/{entry_id}/move","href":"/api-reference/mcp-server/move-entry"},{"title":"Add Stay To Trip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/stays","href":"/api-reference/mcp-server/add-stay-to-trip"},{"title":"Remove Stay From Trip","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/trips/{trip_id}/stays/{stay_id}","href":"/api-reference/mcp-server/remove-stay-from-trip"},{"title":"Update Stay On Trip","deprecated":null,"version":null,"openapi":"/openapi.json patch /v1/trips/{trip_id}/stays/{stay_id}","href":"/api-reference/mcp-server/update-stay-on-trip"},{"title":"Add Event To Trip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/events","href":"/api-reference/mcp-server/add-event-to-trip"},{"title":"Import Social Post","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/saved/import","href":"/api-reference/mcp-server/import-social-post"},{"title":"Publish Trip","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/publish","href":"/api-reference/mcp-server/publish-trip"},{"title":"Search Flights","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/search/flights","href":"/api-reference/mcp-server/search-flights"},{"title":"Search Hotels","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/search/hotels","href":"/api-reference/mcp-server/search-hotels"},{"title":"Get Search Results","deprecated":null,"version":null,"openapi":"/openapi.json get /v1/search/{search_id}","href":"/api-reference/mcp-server/get-search-results"},{"title":"Add Search Result","deprecated":null,"version":null,"openapi":"/openapi.json post /v1/trips/{trip_id}/search-results","href":"/api-reference/mcp-server/add-search-result"},{"title":"Remove Search Result","deprecated":null,"version":null,"openapi":"/openapi.json delete /v1/trips/{trip_id}/search-results/{item_id}","href":"/api-reference/mcp-server/remove-search-result"}]},{"group":"saved","pages":[{"title":"Place Autocomplete","description":"Google Places autocomplete powering the Saved \"Add a place\" search.","deprecated":null,"version":null,"openapi":"/openapi.json get /saved/place-autocomplete","href":"/api-reference/saved/place-autocomplete"},{"title":"Add Place By Id","deprecated":null,"version":null,"openapi":"/openapi.json post /saved/add-place","href":"/api-reference/saved/add-place-by-id"},{"title":"Unsave Place","description":null,"deprecated":null,"version":null,"openapi":"/openapi.json delete /saved/{item_id}","href":"/api-reference/saved/unsave-place"},{"title":"Update Saved Item","deprecated":null,"version":null,"openapi":"/openapi.json patch /saved/{item_id}","href":"/api-reference/saved/update-saved-item"},{"title":"List Lists","deprecated":null,"version":null,"openapi":"/openapi.json get /saved/lists","href":"/api-reference/saved/list-lists"},{"title":"Create List","deprecated":null,"version":null,"openapi":"/openapi.json post /saved/lists","href":"/api-reference/saved/create-list"},{"title":"Get List Contents","deprecated":null,"version":null,"openapi":"/openapi.json get /saved/lists/{list_id}/contents","href":"/api-reference/saved/get-list-contents"},{"title":"Update List","deprecated":null,"version":null,"openapi":"/openapi.json patch /saved/lists/{list_id}","href":"/api-reference/saved/update-list"},{"title":"Create Section","deprecated":null,"version":null,"openapi":"/openapi.json post /saved/lists/{list_id}/sections","href":"/api-reference/saved/create-section"},{"title":"Delete Section","deprecated":null,"version":null,"openapi":"/openapi.json delete /saved/lists/{list_id}/sections/{section_id}","href":"/api-reference/saved/delete-section"},{"title":"Update Section","deprecated":null,"version":null,"openapi":"/openapi.json patch /saved/lists/{list_id}/sections/{section_id}","href":"/api-reference/saved/update-section"}]}]}]},"basePath":"","title":"Add Place By Id - Stardrift","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}