Wazo Google API

The google API from Wazo — 4 operation(s) for google.

Operations 9

GET /users/{user_uuid}/external/google Get a Google token
POST /users/{user_uuid}/external/google Ask for a verification URL and store code to get token
DELETE /users/{user_uuid}/external/google Delete a Google token
GET /backends/google/sources/{source_uuid}/contacts Retrieve all contacts from `google` #
GET /backends/google/sources Get google configuration #
POST /backends/google/sources Configure a source for the google backend #
GET /backends/google/sources/{source_uuid} Get a `google` source configuration #
PUT /backends/google/sources/{source_uuid} Update a `google` source configuration #
DELETE /backends/google/sources/{source_uuid} Delete a `google` source configuration #

Documentation

Specifications

Other Resources

🔗
Console
https://api.wazo.io/documentation/console/authentication/
🔗
SourceCode
https://github.com/wazo-platform/wazo-auth
🔗
ChangeLog
https://github.com/wazo-platform/wazo-auth/blob/master/CHANGELOG.md
🔗
Conventions
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/conventions/wazo-conventions.yml
🔗
ErrorCatalog
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/errors/wazo-problem-types.yml
🔗
Console
https://api.wazo.io/documentation/console/configuration/
🔗
SourceCode
https://github.com/wazo-platform/wazo-confd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-confd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/application/
🔗
SourceCode
https://github.com/wazo-platform/wazo-calld
🔗
ChangeLog
https://github.com/wazo-platform/wazo-calld/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/cdr/
🔗
SourceCode
https://github.com/wazo-platform/wazo-call-logd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-call-logd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/contact/
🔗
SourceCode
https://github.com/wazo-platform/wazo-dird
🔗
ChangeLog
https://github.com/wazo-platform/wazo-dird/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/webhook/
🔗
SourceCode
https://github.com/wazo-platform/wazo-webhookd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-webhookd/blob/master/CHANGELOG.md
🔗
Webhooks
https://raw.githubusercontent.com/api-evangelist/wazo/refs/heads/main/asyncapi/wazo-events-webhooks.yml
🔗
Console
https://api.wazo.io/documentation/console/plugins/
🔗
SourceCode
https://github.com/wazo-platform/wazo-plugind
🔗
ChangeLog
https://github.com/wazo-platform/wazo-plugind/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/agent/
🔗
SourceCode
https://github.com/wazo-platform/wazo-agentd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-agentd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/chat/
🔗
SourceCode
https://github.com/wazo-platform/wazo-chatd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-chatd/blob/master/CHANGELOG.md
🔗
SourceCode
https://github.com/wazo-platform/wazo-phoned
🔗
ChangeLog
https://github.com/wazo-platform/wazo-phoned/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/setup/
🔗
SourceCode
https://github.com/wazo-platform/wazo-setupd
🔗
ChangeLog
https://github.com/wazo-platform/wazo-setupd/blob/master/CHANGELOG.md
🔗
Console
https://api.wazo.io/documentation/console/amid/
🔗
SourceCode
https://github.com/wazo-platform/wazo-amid
🔗
ChangeLog
https://github.com/wazo-platform/wazo-amid/blob/master/CHANGELOG.md

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/wazo-google-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

wazo-google-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Wazo Google API
  version: '0.1'
  contact:
    name: Wazo Dev Team
    url: https://wazo-platform.org/
    email: dev@wazo.community
  x-logo:
    url: https://wazo-platform.org/images/logo-black.svg
    backgroundColor: '#FAFAFA'
    altText: Wazo Logo
  description: 'Operations tagged google across 2 of this provider''s published API definitions: wazo-auth-api-openapi.yml, wazo-dird-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: /0.1
tags:
- name: google
paths:
  /users/{user_uuid}/external/google:
    get:
      summary: Get a Google token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.google.read`'
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '200':
          description: The auth data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleGetResult'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    post:
      summary: Ask for a verification URL and store code to get token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.google.create`.


        More info on Google permissions: https://developers.google.com/identity/protocols/googlescopes"

        '
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '201':
          description: Authentication url
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GooglePostResult'
        '400':
          description: Invalid body
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GooglePost'
    delete:
      summary: Delete a Google token
      description: '**Required ACL**: `auth.users.{user_uuid}.external.google.delete`'
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/user_uuid'
      responses:
        '204':
          description: External authentication deleted
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIError'
    servers:
    - url: /0.1
  /backends/google/sources/{source_uuid}/contacts:
    get:
      description: '**Required ACL:** `dird.backends.google.sources.{source_uuid}.contacts.read`'
      operationId: list_google_contacts_from_source
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - in: path
        name: source_uuid
        required: true
        description: Source uuid
        schema:
          type: string
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      - $ref: '#/components/parameters/search'
      summary: Retrieve all contacts from `google`
      tags:
      - google
      responses:
        '200':
          description: 'Contacts as fetched from Google API and transformed to match the dird internals


            Note that the total in the result is always the total matching for the current query.

            Which is the same as the filtered value, this is a limitation of the Google API.

            '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleContactList'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '404':
          description: No such source
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
        '503':
          description: Another service is unavailable (e.g. wazo-auth, google, ...)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
      security:
      - wazo_auth_token: []
    servers:
    - url: /0.1
  /backends/google/sources:
    get:
      operationId: list_google_source
      summary: Get google configuration
      description: '**Required ACL:** `dird.backends.google.sources.read`'
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/recurse'
      - $ref: '#/components/parameters/order'
      - $ref: '#/components/parameters/direction'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Configured google source
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleSourceItems'
      security:
      - wazo_auth_token: []
    post:
      operationId: create_google_source
      summary: Configure a source for the google backend
      description: '**Required ACL:** `dird.backends.google.sources.create`


        This resource configures a Google source for wazo-dird. Columns that are available from this source

        are:


        * name: the contact name

        * numbers: a list of phone numbers

        * numbers_by_label: a map of type to numbers {''mobile'': <number>, ''home'': <number>, ...}. Types are defined by Google, currently known types include: ''home'', ''work'', ''mobile'', ''other'', ''main'', ''home_fax'', ''work_fax'', ''google_voice'', ''pager''.

        * numbers_except_label: a map from type to every other number {''mobile'': [<number>, <number], ''home'': [<number>, <number>], ...}. See available types above. For example, the ''mobile'' key will contain the ''work'' and ''home'' numbers, but will exclude the ''mobile'' number.

        * emails: a list of email addresses

        '
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      responses:
        '201':
          description: The created display
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleSource'
              example:
                auth:
                  host: localhost
                  port: 80
                  prefix: /api/auth
                  https: false
                  version: 0.1
                format_columns:
                  phone: '{numbers[0]}'
                  phone_mobile: '{numbers_by_label[mobile]}'
                  reverse: '{name}'
                  email: '{emails[0]}'
                name: google
                first_matched_columns:
                - numbers
                searched_columns:
                - numbers
                - emails
                - name
        '400':
          $ref: '#/components/responses/CreateError'
        '409':
          description: Source already exists
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleSource'
        description: The display configuration body
        required: true
      security:
      - wazo_auth_token: []
    servers:
    - url: /0.1
  /backends/google/sources/{source_uuid}:
    get:
      operationId: get_a_google_source
      summary: Get a `google` source configuration
      description: '**Required ACL:** `dird.backends.google.sources.{source_uuid}.read`'
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/sourceuuid'
      responses:
        '200':
          description: The `google` source
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleSource'
        '404':
          $ref: '#/components/responses/NotFoundError'
      security:
      - wazo_auth_token: []
    put:
      operationId: update_google_source
      summary: Update a `google` source configuration
      description: '**Required ACL:** `dird.backends.google.sources.{source_uuid}.update`'
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/sourceuuid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceUpdated'
        '400':
          $ref: '#/components/responses/UpdateError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          description: Duplicate Source
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegacyError'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleSource'
        description: The source configuration body
        required: true
      security:
      - wazo_auth_token: []
    delete:
      operationId: delete_google_source
      summary: Delete a `google` source configuration
      description: '**Required ACL:** `dird.backends.google.sources.{source_uuid}.delete`'
      tags:
      - google
      parameters:
      - $ref: '#/components/parameters/tenantuuid'
      - $ref: '#/components/parameters/sourceuuid'
      responses:
        '204':
          $ref: '#/components/responses/ResourceDeleted'
        '404':
          $ref: '#/components/responses/NotFoundError'
      security:
      - wazo_auth_token: []
    servers:
    - url: /0.1
components:
  schemas:
    GooglePostResult:
      type: object
      required:
      - verification_url
      properties:
        verification_url:
          type: string
          description: The URL to confirm the authorization
    APIError:
      type: object
      properties:
        timestamp:
          type: number
        message:
          type: string
        resource:
          type: string
        details:
          type: object
    GoogleGetResult:
      type: object
      properties:
        access_token:
          type: string
          description: Google token
        scope:
          type: string
          description: Scope permissions given to the `access token`
        token_expiration:
          type: integer
          description: Token expiration
      required:
      - access_token
      - scope
      - token_expiration
    GooglePost:
      type: object
      properties:
        scope:
          description: Scope permissions requested
          type: array
          items:
            type: string
          default:
          - https://www.googleapis.com/auth/userinfo.profile
          - https://www.googleapis.com/auth/contacts
    LegacyError:
      title: LegacyError
      description: Error message for the client
      properties:
        timestamp:
          description: Time at which the error occured
          type: array
          items:
            type: number
            format: timestamp
        reason:
          description: Human readable explanation of the error
          type: array
          items:
            type: string
        status_code:
          description: HTTP status code
          type: integer
    SourceItems:
      properties:
        total:
          type: integer
          description: The number of configured sources for this backend
          readOnly: true
        filtered:
          type: integer
          description: The number of configured sources matching the searched terms for this backend
          readOnly: true
    WazoAuthConfigNoAuth:
      title: Auth
      allOf:
      - $ref: '#/components/schemas/ExternalServiceConfig'
      - properties:
          port:
            type: integer
            default: 80
          version:
            type: string
            default: '0.1'
    GoogleSourceItems:
      title: GoogleSourceItems
      allOf:
      - $ref: '#/components/schemas/SourceItems'
      - properties:
          items:
            type: array
            items:
              $ref: '#/components/schemas/GoogleSource'
            readOnly: true
      - required:
        - items
        - total
        - filtered
    ExternalServiceConfig:
      properties:
        host:
          type: string
          default: localhost
        verify_certificate:
          type: string
          description: If the HTTPs certificates should be verified and the path of the certificate if a custom certificate is used.
          default: 'true'
        timeout:
          type: number
    GoogleContactList:
      properties:
        items:
          type: array
          items:
            type: object
          readOnly: true
        total:
          type: integer
          description: The number of contacts matching the searched terms
          readOnly: true
        filtered:
          type: integer
          description: The number of contacts matching the searched terms
          readOnly: true
    GoogleSource:
      title: GoogleSource
      allOf:
      - $ref: '#/components/schemas/Source'
      - properties:
          auth:
            $ref: '#/components/schemas/WazoAuthConfigNoAuth'
      - required:
        - name
        - auth
    Source:
      properties:
        uuid:
          type: string
          description: The source's UUID
          readOnly: true
        name:
          type: string
          description: The source's name
        searched_columns:
          type: array
          items:
            type: string
            description: A list of columns which should be searched when doing a look up
        first_matched_columns:
          type: array
          items:
            type: string
          description: A list of columns which should be searched when doing a reverse look up
        format_columns:
          type: object
          description: A mapping of new fields and a python format string to generate the new columns value
  parameters:
    user_uuid:
      name: user_uuid
      in: path
      description: The UUID of the user
      required: true
      schema:
        type: string
    tenantuuid:
      name: Wazo-Tenant
      in: header
      description: The tenant's UUID, defining the ownership of a given resource.
      required: false
      schema:
        type: string
    Offset:
      name: offset
      in: query
      description: The offset defines the number of items of the collection to skip
      required: false
      schema:
        type: integer
        default: 0
    offset:
      name: offset
      in: query
      description: The offset defines the offsets the start by the number specified
      required: false
      schema:
        type: integer
        default: 0
    order:
      required: false
      name: order
      in: query
      description: Name of the field to use for sorting the list of items returned.
      schema:
        type: string
    Limit:
      name: limit
      in: query
      description: The limit defines the number of individual objects that are returned
      required: false
      schema:
        type: integer
    direction:
      required: false
      name: direction
      in: query
      description: Sort list of items in 'asc' (ascending) or 'desc' (descending) order
      schema:
        type: string
        enum:
        - asc
        - desc
    recurse:
      name: recurse
      in: query
      description: Should the query include sub-tenants
      required: false
      schema:
        type: boolean
        default: false
    sourceuuid:
      name: source_uuid
      in: path
      description: The source's UUID
      required: true
      schema:
        type: string
    search:
      required: false
      name: search
      in: query
      description: Search term for filtering a list of items. Only items with a field containing the search term will be returned.
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: The limit defines the number of individual objects that are returned
      required: false
      schema:
        type: integer
  responses:
    NotFoundError:
      description: The resource requested was not found on the server
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    ResourceDeleted:
      description: Resource was deleted successfully
    ResourceUpdated:
      description: Resource was updated successfully
    CreateError:
      description: An error occurred when creating the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
    UpdateError:
      description: An error occurred when updating the resource
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/APIError'
  securitySchemes:
    wazo_auth_basic:
      type: http
      scheme: basic
    wazo_auth_token:
      type: apiKey
      name: X-Auth-Token
      in: header
x-refined-from:
- wazo-auth-api-openapi.yml
- wazo-dird-api-openapi.yml
x-xivo-name: agentd
x-xivo-port: 9493
x-apievangelist-source:
  harvested_from: https://github.com/wazo-platform/wazo-agentd
  assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves at /api/agentd/1.0/api/api.yml (see wazo_agentd/plugins/api/http.py — xivo.chain_map.ChainMap)
  spec_version: Swagger 2.0 (as published by Wazo)
  harvested: '2026-08-17'