OmniSocialsOmniSocials
DocumentationAPI reference
Help centerSupport
  • Documentation
  • API reference
Developers
  • Quickstart
  • API reference
  • SDKs
  • MCP server
  • CLI
For AI agents
  • Docs for AI agents
  • llms.txt
  • OpenAPI spec
  • Postman collection
Product
  • OmniSocials
  • Pricing
  • Changelog
  • Help center
Company
  • Support
  • Privacy policy
  • Terms of service

© 2026 OmniSocials

OmniSocials on GitHubOmniSocials on XOmniSocials on LinkedIn
Information
Posts
    List postsgetList live platform postsgetGet a postgetDelete a postdeleteUpdate a postpatchCreate a postpostCreate and publish postpostPublish a post nowpostRetry failed postpostApprove a postpostReject a postpostGet approval reviewget
Media
    List mediagetGet a media itemgetDelete a media itemdeleteRename or move mediapatchUpload a filepostUpload from base64postUpload from a URLpostCreate an upload URLpostSplit a PDF into pagespostCheck media limitspostUpload with a tokenpost
Folders
    List foldersgetCreate a folderpostDelete a folderdeleteRename or move a folderpatch
Hashtag Sets
    List hashtag setsgetCreate a hashtag setpostGet a hashtag setgetDelete a hashtag setdeleteUpdate a hashtag setpatch
Accounts
    List accountsgetGet an accountget
Analytics
    Get bulk post analyticsgetGet post analyticsgetGet analytics overviewgetGet account analyticsgetGet best posting timesget
Approvals
    List approval workflowsget
Webhooks
    List webhooksgetCreate a webhookpostGet a webhookgetDelete a webhookdeleteUpdate a webhookpatchRotate webhook secretpost
Locations
    Search locationsgetValidate a locationget
Audio
    Search Instagram audioget
Pinterest
    List product PinsgetCheck a product Pinget
Inbox
    List conversationsgetList messagesgetMark conversation readpostReply to a conversationpostHide or unhide a commentpostDelete a commentdeleteGet next conversationget
Automations
    List automationsgetCreate an automationpostGet an automationgetDelete an automationdeleteUpdate an automationpatchList automation eventsget
Schemas
OmniSocials API
OmniSocials API

Locations

Download schema

Search and attach location tags (such as Instagram place tags) to posts.


Search locations

GET
https://api.omnisocials.com/v1
/locations/search

Search physical places to get a valid location_id for tagging a post. The platform query parameter selects the source, and the two sources use DIFFERENT ids (a Facebook Place ID is not a Threads location id), so always search with the platform you will tag.

platform=instagram (default): search by name (q). Returns only real venues with a precise address (the kind Instagram accepts); national brand pages, personal profiles, and Instagram location IDs are not returned because Instagram rejects them. Pass a returned id as the top-level location_id on POST /posts/create. Requires a Facebook account connected to the workspace (the lookup runs through Facebook's place data). Response shape: { data: [...], error, needsPermission }.

platform=threads: search by name (q) OR by coordinates (latitude + longitude). Pass a returned id as threads.location_id on POST /posts/create / PATCH /posts/{id}. Requires a Threads account connected with the threads_location_tagging permission (connections made before that permission was added must be reconnected; the response then carries error.code = threads_reauth_required). Threads allows 500 location searches per account per rolling 24 hours. Response shape: { locations: [...] } or { error: { code, message } }.

Search locations › query Parameters

platform
​string · enum

Which platform the location will be tagged on. Determines the search source and the id type returned.

Enum values:
instagram
threads
Default: instagram
q
​string

Place name to search (min 2 chars), e.g. a dealership, café, or venue name. Use a specific name: generic brands return their individual store locations, not the brand. Required for platform=instagram; for platform=threads pass either q or latitude + longitude.

latitude
​number · min: -90 · max: 90

Threads only. Search places around this point; pass together with longitude instead of q.

longitude
​number · min: -180 · max: 180

Threads only. Pass together with latitude.

Search locations › Responses

Matching places. The shape depends on platform.

oneOf
Exactly one variant must match.

Decision Table

VariantMatching Criteria
type = object
type = object
Properties for Instagram results:
​object[]
error
​string | null

Set when search is unavailable (e.g. no Facebook account connected, or the app lacks place-search permission). data is then empty.

needsPermission
​boolean

true when the Facebook app lacks 'Page Public Content Access'.

GET/locations/search
curl "https://api.omnisocials.com/v1/locations/search?q=Griffith%20Observatory" \ -H "Authorization: Bearer $OMNISOCIALS_API_KEY"
Example Responses
{ "data": [ { "id": "313813441", "name": "Griffith Observatory", "address": "2800 E Observatory Rd, Los Angeles, CA, 90027, United States", "city": "city", "country": "country" } ], "error": "error", "needsPermission": true }
json
application/json

Validate a location

GET
https://api.omnisocials.com/v1
/locations/validate

Check whether a Facebook Place ID is a valid Instagram location (a single venue with a precise address) before using it as location_id. Returns { valid: true, name, address } for taggable places; { valid: false, reason } for personal profiles, brand pages, or non-places. If the workspace has no Facebook account (or the app can't read the page), returns { valid: false, unverified: true }, and the post's publish step is then the final check.

Validate a location › query Parameters

id
​string · required

Numeric Facebook Place ID to validate.

Validate a location › Responses

200

Validation result

valid
​boolean
id
​string | null
name
​string | null
address
​string | null
unverified
​boolean

Couldn't be checked now; the publish step will validate.

reason
​string | null

Why it isn't valid / couldn't be verified.

GET/locations/validate
curl "https://api.omnisocials.com/v1/locations/validate?id=313813441" \ -H "Authorization: Bearer $OMNISOCIALS_API_KEY"
Example Responses
{ "valid": true, "id": "id", "name": "name", "address": "address", "unverified": true, "reason": "reason" }
json
application/json

WebhooksAudio