ESRI ArcGIS Portal API

Portal items, users, groups, and organizational management

OpenAPI Specification

esri-arcgis-portal-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: ESRI ArcGIS Platform Geocoding Portal API
  description: ESRI ArcGIS Platform REST API for sharing, managing, and accessing GIS content including feature services, maps, layers, users, and portal items. The API enables geospatial data management, spatial analysis, geocoding, routing, and organizational administration for ArcGIS Online and ArcGIS Enterprise deployments.
  version: 1.0.0
  contact:
    name: ESRI Developer Support
    url: https://community.esri.com/t5/developers/ct-p/developers
  license:
    name: Esri Master Agreement
    url: https://www.esri.com/en-us/legal/terms/master-agreement
servers:
- url: https://www.arcgis.com/sharing/rest
  description: ArcGIS Online production
- url: https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer
  description: ArcGIS Geocoding Service
- url: https://route.arcgis.com/arcgis/rest/services
  description: ArcGIS Routing Service
- url: https://places-api.arcgis.com/arcgis/rest/services/v1
  description: ArcGIS Places Service
security:
- ApiKeyAuth: []
- OAuth2:
  - openid
tags:
- name: Portal
  description: Portal items, users, groups, and organizational management
paths:
  /portals/self:
    get:
      operationId: getPortalSelf
      summary: Get portal information
      description: Returns information about the organization's portal including available resources, helpers, and members. The response includes information about the portal's name, description, and thumbnail.
      tags:
      - Portal
      parameters:
      - name: f
        in: query
        required: false
        schema:
          type: string
          enum:
          - json
          - pjson
          - html
          default: json
        description: Output format
      - name: token
        in: query
        required: false
        schema:
          type: string
        description: Authentication token (alternative to Authorization header)
      responses:
        '200':
          description: Portal information returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Portal'
        '401':
          description: Unauthorized – valid token required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
  /community/users/{username}:
    get:
      operationId: getUser
      summary: Get user profile
      description: Returns the profile information of a specified user within the portal organization.
      tags:
      - Portal
      parameters:
      - name: username
        in: path
        required: true
        schema:
          type: string
        description: Username of the ArcGIS Online user
      - name: f
        in: query
        schema:
          type: string
          enum:
          - json
          - pjson
          default: json
      responses:
        '200':
          description: User profile returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/User'
        '404':
          description: User not found
  /content/users/{username}/items:
    get:
      operationId: getUserItems
      summary: List user content items
      description: Returns items owned by the specified user. Supports pagination, sorting, and filtering.
      tags:
      - Portal
      parameters:
      - name: username
        in: path
        required: true
        schema:
          type: string
      - name: num
        in: query
        schema:
          type: integer
          default: 10
          maximum: 100
        description: Number of results to return
      - name: start
        in: query
        schema:
          type: integer
          default: 1
        description: Index of the first entry in the result set (1-based)
      - name: sortField
        in: query
        schema:
          type: string
          enum:
          - created
          - modified
          - title
          - type
      - name: sortOrder
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: f
        in: query
        schema:
          type: string
          enum:
          - json
          - pjson
          default: json
      responses:
        '200':
          description: User items returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ItemCollection'
  /content/items/{itemId}:
    get:
      operationId: getItem
      summary: Get portal item
      description: Returns information about a specific portal item (map, layer, application, etc.).
      tags:
      - Portal
      parameters:
      - name: itemId
        in: path
        required: true
        schema:
          type: string
        description: Unique identifier of the portal item
      - name: f
        in: query
        schema:
          type: string
          enum:
          - json
          - pjson
          default: json
      responses:
        '200':
          description: Item information returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Item'
        '404':
          description: Item not found
  /search:
    get:
      operationId: searchPortal
      summary: Search portal content
      description: Searches for portal items, groups, and users using ArcGIS query syntax. Supports spatial, temporal, and attribute filtering.
      tags:
      - Portal
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
        description: Query string using ArcGIS search syntax (e.g., "type:Feature Service owner:jsmith")
      - name: num
        in: query
        schema:
          type: integer
          default: 10
          maximum: 100
      - name: start
        in: query
        schema:
          type: integer
          default: 1
      - name: sortField
        in: query
        schema:
          type: string
          enum:
          - title
          - created
          - modified
          - type
          - relevance
      - name: sortOrder
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: f
        in: query
        schema:
          type: string
          enum:
          - json
          - pjson
          default: json
      responses:
        '200':
          description: Search results returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SearchResults'
components:
  schemas:
    User:
      type: object
      properties:
        username:
          type: string
        fullName:
          type: string
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
          format: email
        description:
          type: string
        role:
          type: string
          enum:
          - org_admin
          - org_publisher
          - org_user
          - account_admin
        level:
          type: string
        created:
          type: integer
        modified:
          type: integer
        groups:
          type: array
          items:
            $ref: '#/components/schemas/GroupRef'
    ItemCollection:
      type: object
      properties:
        total:
          type: integer
        start:
          type: integer
        num:
          type: integer
        nextStart:
          type: integer
        items:
          type: array
          items:
            $ref: '#/components/schemas/Item'
    Item:
      type: object
      properties:
        id:
          type: string
        owner:
          type: string
        title:
          type: string
        type:
          type: string
          description: Item type (e.g., "Feature Service", "Web Map", "CSV")
        typeKeywords:
          type: array
          items:
            type: string
        description:
          type: string
        snippet:
          type: string
        thumbnail:
          type: string
        url:
          type: string
          format: uri
        tags:
          type: array
          items:
            type: string
        created:
          type: integer
        modified:
          type: integer
        numViews:
          type: integer
        size:
          type: integer
        access:
          type: string
          enum:
          - private
          - shared
          - org
          - public
        extent:
          type: array
          items:
            type: array
            items:
              type: number
          description: Bounding box [[xmin,ymin],[xmax,ymax]]
    SearchResults:
      type: object
      properties:
        query:
          type: string
        total:
          type: integer
        start:
          type: integer
        num:
          type: integer
        nextStart:
          type: integer
        results:
          type: array
          items:
            $ref: '#/components/schemas/Item'
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
            details:
              type: array
              items:
                type: string
    Portal:
      type: object
      properties:
        id:
          type: string
          description: Portal organization ID
        name:
          type: string
        description:
          type: string
        url:
          type: string
          format: uri
        thumbnail:
          type: string
        culture:
          type: string
          description: Default language/locale (e.g., "en")
        region:
          type: string
        created:
          type: integer
          description: Creation timestamp (milliseconds since epoch)
        modified:
          type: integer
    GroupRef:
      type: object
      properties:
        id:
          type: string
        title:
          type: string
        access:
          type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: query
      name: token
      description: ArcGIS API key or token
    OAuth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://www.arcgis.com/sharing/rest/oauth2/authorize
          tokenUrl: https://www.arcgis.com/sharing/rest/oauth2/token
          scopes:
            openid: OpenID Connect identity
            urn:arcgis:scope:root: Full access to ArcGIS Online
externalDocs:
  description: ArcGIS REST API Reference
  url: https://developers.arcgis.com/rest/