Outbrain Geo Locations API

GeoLocations are representatives of Outbrain Geographic Locations. GeoLocations are being used for campaigns to be targeted (or excluded) by geography. The GeoLocation object has the following attributes: Property Type Semantic Example id String geoLocation id aa4ab4c893b9fb5618476cb27f264ef8 geoType Geo Location Type geoLocation type Region name String geoLocation name Prince Edward Island canonicalName String detailed name Prince Edward Island, Canada parent GeoLocation The parent of the geoLocation if exists (always a country) A GeoLocation object

Operations 3

GET /locations/search Search GeoLocations #
POST /locations/search/multiple Search Multiple GeoLocation Terms #
GET /metadata/supportedLanguages Retrieve all supported language #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/outbrain-geo-locations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

outbrain-geo-locations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Outbrain Amplify Geo Locations API
  version: '0.1'
  description: This API describes the interfaces for interacting with the Outbrain Amplify product.
  contact:
    name: Outbrain Developer Center
    url: https://developer.outbrain.com
servers:
- url: https://api.outbrain.com/amplify/v0.1
  description: Production Server
security:
- OBTokenAuth: []
tags:
- name: Geo Locations
  description: GeoLocations are representatives of Outbrain Geographic Locations.
paths:
  /locations/search:
    get:
      operationId: getLocationsSearch
      summary: Search GeoLocations
      description: 'This endpoint allows to search a single geo location term.

        Results can be filtered by supplying additional query parameters.'
      tags:
      - Geo Locations
      parameters:
      - name: term
        in: query
        required: true
        schema:
          type: string
        description: The search term
        example: United States
      - name: limit
        in: query
        required: false
        schema:
          type: number
        description: The limit of the search query. Default is 300
        example: '6'
      - name: include
        in: query
        required: false
        schema:
          type: string
        description: which geoTypes to return
        example: Region
      - name: exclude
        in: query
        required: false
        schema:
          type: string
        description: which geoTypes to filter out of the results
        example: Country
      - name: exactMatch
        in: query
        required: false
        schema:
          type: boolean
        description: search the exact term when true. The default is false
        example: 'true'
      - name: country
        in: query
        required: false
        schema:
          type: string
        description: return results from this country only
        example: United States
      - name: locationsVersion
        in: query
        required: false
        schema:
          type: string
        description: The regions inventory to search in. V1 for FIPS and V2 for ISO-3166. The default is V1
        example: V2
      responses:
        '200':
          description: Array of all GeoLocations which complies to the search
          content:
            application/json:
              schema:
                type: object
              example:
                geoLocations:
                - id: fc4deb5112fb4415a9edacdf4aafb0d8
                  name: United States
                  canonicalName: United States
                  geoType: Country
                  code: US
                - id: c20768bb56a25c22299c38801e935c3a
                  name: United Kingdom
                  geoType: Country
                  canonicalName: United Kingdom
                  code: GB
                excludedGeoLocations:
                - name: Alabama
                  id: 5d01f8eab282fcd783aff5c09bb8fc7a
                  parent:
                    geoType: Country
                    canonicalName: United States
                    name: United States
                    id: fc4deb5112fb4415a9edacdf4aafb0d8
                  geoType: Region
                  canonicalName: Alabama, United States
                - parent:
                    geoType: Country
                    canonicalName: United States
                    name: United States
                    id: fc4deb5112fb4415a9edacdf4aafb0d8
                  geoType: DMA
                  canonicalName: Eugene OR, United States
                  name: Eugene OR
                  id: be482a98eeddfc2009ac2f1c181eac79
                - parent:
                    canonicalName: United States
                    geoType: Country
                    id: fc4deb5112fb4415a9edacdf4aafb0d8
                    name: United States
                  geoType: PostalCode
                  canonicalName: 96373, FPO, , United States
                  name: 96373, FPO
                  id: 419268adfd7cc1751233df8337b97671
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /locations/search/multiple:
    post:
      operationId: createLocationsSearchMultiple
      summary: Search Multiple GeoLocation Terms
      description: This endpoint allows to search multiple geo locations terms.
      tags:
      - Geo Locations
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
            example:
              searchItems:
              - include:
                - Country
                term: France
                limit: 100
                exactMatch: true
              - include:
                - Country
                term: Belgium
                limit: 100
                exactMatch: true
              - include:
                - Region
                term: BW
                limit: 100
                exactMatch: true
              locationsVersion: V2
      responses:
        '200':
          description: Array of all GeoLocations which complies to the search
          content:
            application/json:
              schema:
                type: string
              example: "{\n    \"successes\" : [\n        {\n            \"searchItem\" : {\n                \"term\" : \"France\",\n                \"limit\" : 100,\n                \"include\" : [\"Country\"],\n                \"exactMatch\" : true\n            },\n            \"geoLocations\" : [\n                {\n                    \"id\" : \"104001b51d842051ccd77ba5a4ff6290\",\n                    \"geoType\" :\" Country\",\n                    \"name\" : \"France\",\n                    \"canonicalName\" : \"France\",\n                    \"code\" :\" FR\"\n                }\n            ]\n        },\n        {\n            \"searchItem\" : {\n                \"term\" : \"Belgium\",\n                \"limit\" : 100,\n                \"include\" : [\"Country\"],\n                \"exactMatch\" : true\n            },\n            \"geoLocations\" : [\n                {\n                    \"id\" : \"5e0140a71b69e5f6af0798901a340a68\",\n                    \"geoType\" : \"Country\",\n                    \"name\" : \"Belgium\",\n                    \"canonicalName\" : \"Belgium\",\n                    \"code\" : \"BE\"\n                }\n            ]\n        }\n    ],\n    \"failures\" : [\n        {\n            \"searchItem\" : {\n                \"term\" : \"BW\",\n                \"limit\" : 100,\n                \"include\" : [\"Region\"],\n                \"exactMatch\" : false\n            },\n            \"failureReasons\": [\n                \"reason 1\", \"reason 2\"\n            ]\n        }\n    ],\n    \"successesCount\" : 2,\n    \"failuresCount\" : 1\n}\n<a name=\"supported_languages\"></a>\n"
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /metadata/supportedLanguages:
    get:
      operationId: getMetadataSupportedLanguages
      summary: Retrieve all supported language
      description: Returns all supported languages
      tags:
      - Geo Locations
      responses:
        '200':
          description: All supported languages.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
              example:
              - name: Slovenian
                code: sl
              - name: Lithuanian
                code: lt
              - name: Indonesian
                code: id
              - name: Norwegian
                code: 'no'
        '400':
          description: Bad Request - the request could not be understood or was missing required parameters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized - authentication failed or the user lacks permission for the requested operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden - access denied
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Not Found - resource was not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Too Many Requests - request exceeded rate limits; see the rate-limit-msec-left header
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Error:
      type: object
      description: Error envelope returned on 400/401/403/404/429 responses.
      properties:
        moreInfo:
          type: string
          description: Short machine-readable hint identifying the failing operation.
        errorMessage:
          type: string
          description: Human-readable error message.
      examples:
      - moreInfo: get-budget
        errorMessage: access denied
  securitySchemes:
    OBTokenAuth:
      type: apiKey
      in: header
      name: OB-TOKEN-V1
      description: Token obtained from GET /login (HTTP Basic) or from https://my.outbrain.com/create-token. Valid for 30 days.
    BasicAuth:
      type: http
      scheme: basic
      description: HTTP Basic credentials used only on GET /login to obtain an OB-TOKEN-V1 token.