OpenAPI Specification
openapi: 3.0.3
info:
title: Wrike Access Roles Contacts API
description: The Wrike REST API v4 enables developers to build integrations and automations for Wrike, a collaborative work management platform used by 20,000+ organizations. The API provides access to tasks, folders, projects, contacts, workflows, time tracking, webhooks, and more. Authentication uses OAuth 2.0 or permanent access tokens. Additional platforms include a DataHub Public API for analytics, BI Export, Cloud Content Connector, and an MCP Server for AI assistant integration.
version: '4.0'
termsOfService: https://www.wrike.com/developer-terms/
contact:
name: Wrike Developer Support
url: https://developers.wrike.com
license:
name: Wrike API Terms
url: https://www.wrike.com/developer-terms/
servers:
- url: https://www.wrike.com/api/v4
description: Wrike REST API v4
security:
- oauth2: []
- bearerToken: []
tags:
- name: Contacts
description: Users and user groups in Wrike accounts
paths:
/contacts:
get:
operationId: listContacts
summary: List Contacts
description: Returns a list of contacts of all users and user groups in all accessible accounts.
tags:
- Contacts
parameters:
- name: me
in: query
description: If present, only contact info of the requesting user is returned
required: false
schema:
type: boolean
- name: metadata
in: query
description: Metadata filter, exact match for metadata key or key-value pair
required: false
schema:
type: string
- name: fields
in: query
description: JSON string array of optional fields to include in the response
required: false
schema:
type: string
responses:
'200':
description: List of contacts
content:
application/json:
schema:
$ref: '#/components/schemas/ContactListResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/contacts/{contactId}:
get:
operationId: getContact
summary: Get Contact
description: Returns contact information for specified users and user groups.
tags:
- Contacts
parameters:
- name: contactId
in: path
required: true
description: Comma-separated list of contact IDs (up to 100)
schema:
type: string
- name: fields
in: query
description: JSON string array of optional fields to include in the response
required: false
schema:
type: string
responses:
'200':
description: Contact details
content:
application/json:
schema:
$ref: '#/components/schemas/ContactListResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
put:
operationId: updateContact
summary: Update Contact
description: Updates contact information. Only the contact whose API token is being used may be updated.
tags:
- Contacts
parameters:
- name: contactId
in: path
required: true
description: The contact ID
schema:
type: string
requestBody:
content:
application/x-www-form-urlencoded:
schema:
type: object
properties:
metadata:
type: string
description: Metadata key-value pairs to update
responses:
'200':
description: Updated contact
content:
application/json:
schema:
$ref: '#/components/schemas/ContactListResponse'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
components:
schemas:
Profile:
type: object
properties:
accountId:
type: string
email:
type: string
format: email
role:
type: string
enum:
- User
- Collaborator
external:
type: boolean
admin:
type: boolean
owner:
type: boolean
Metadata:
type: object
properties:
key:
type: string
value:
type: string
ContactListResponse:
type: object
properties:
kind:
type: string
example: contacts
data:
type: array
items:
$ref: '#/components/schemas/Contact'
Contact:
type: object
properties:
id:
type: string
description: Unique contact identifier
firstName:
type: string
lastName:
type: string
type:
type: string
enum:
- Person
- Group
profiles:
type: array
items:
$ref: '#/components/schemas/Profile'
avatarUrl:
type: string
format: uri
timezone:
type: string
locale:
type: string
deleted:
type: boolean
me:
type: boolean
description: True if this contact represents the requesting user
title:
type: string
companyName:
type: string
phone:
type: string
location:
type: string
metadata:
type: array
items:
$ref: '#/components/schemas/Metadata'
Error:
type: object
required:
- error
- errorDescription
properties:
error:
type: string
description: Error code
example: not_authorized
errorDescription:
type: string
description: Human-readable error description
example: The access token is invalid
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
Unauthorized:
description: Authentication required or token invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Bad request - invalid parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
oauth2:
type: oauth2
description: OAuth 2.0 authorization code flow
flows:
authorizationCode:
authorizationUrl: https://www.wrike.com/oauth2/authorize
tokenUrl: https://www.wrike.com/oauth2/token
scopes:
Default: Default access scope
amReadOnlyWorkflow: Read-only access to workflows
amReadWriteWorkflow: Read-write access to workflows
wsReadOnly: Read-only workspace access
wsReadWrite: Read-write workspace access
amReadOnlyAccessRole: Read-only access to access roles
bearerToken:
type: http
scheme: bearer
description: Permanent access token (legacy authentication)
externalDocs:
description: Wrike Developer Documentation
url: https://developers.wrike.com