SAP Business ByDesign CRM API

Manage leads, opportunities, and customer relationship data.

OpenAPI Specification

sap-bydesign-crm-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: SAP Business ByDesign OData Analytics CRM API
  description: OData v2 REST API for SAP Business ByDesign — a cloud ERP solution for midmarket companies. Provides access to business objects and analytics across financials, CRM, procurement, supply chain, project management, and HR. Supports CRUD operations and custom OData services via the /sap/byd/odata/cust/v1/ namespace, plus pre-built analytics services via /sap/byd/odata/{service_name}.svc/.
  version: 1.0.0
  contact:
    name: SAP Support
    url: https://support.sap.com
  externalDocs:
    description: SAP Business ByDesign OData API Examples
    url: https://community.sap.com/t5/enterprise-resource-planning-blog-posts-by-sap/sap-business-bydesign-odata-api-examples/ba-p/13400614
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://{tenant}.bydesign.cloud.sap
  description: SAP Business ByDesign tenant
  variables:
    tenant:
      default: my-tenant
      description: Your SAP Business ByDesign tenant hostname
security:
- basicAuth: []
- oAuth2: []
tags:
- name: CRM
  description: Manage leads, opportunities, and customer relationship data.
paths:
  /sap/byd/odata/cust/v1/khlead/LeadCollection:
    get:
      summary: Query leads
      description: Query CRM lead records with optional OData filter parameters.
      operationId: queryLeads
      tags:
      - CRM
      parameters:
      - $ref: '#/components/parameters/FilterParam'
      - $ref: '#/components/parameters/SelectParam'
      - $ref: '#/components/parameters/TopParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/FormatParam'
      responses:
        '200':
          description: Collection of lead records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/Lead'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /sap/byd/odata/cust/v1/khopportunity/OpportunityCollection:
    get:
      summary: Query opportunities
      description: Query CRM opportunity records.
      operationId: queryOpportunities
      tags:
      - CRM
      parameters:
      - $ref: '#/components/parameters/FilterParam'
      - $ref: '#/components/parameters/SelectParam'
      - $ref: '#/components/parameters/TopParam'
      - $ref: '#/components/parameters/SkipParam'
      - $ref: '#/components/parameters/FormatParam'
      responses:
        '200':
          description: Collection of opportunity records.
          content:
            application/json:
              schema:
                type: object
                properties:
                  d:
                    type: object
                    properties:
                      results:
                        type: array
                        items:
                          $ref: '#/components/schemas/Opportunity'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    FormatParam:
      name: $format
      in: query
      required: false
      description: Response format. Use 'json' for JSON output.
      schema:
        type: string
        enum:
        - json
        - xml
        default: json
    SelectParam:
      name: $select
      in: query
      required: false
      description: Comma-separated list of properties to include in the response.
      schema:
        type: string
    TopParam:
      name: $top
      in: query
      required: false
      description: Maximum number of records to return.
      schema:
        type: integer
        minimum: 1
        maximum: 1000
        default: 20
    FilterParam:
      name: $filter
      in: query
      required: false
      description: OData filter expression (e.g., Status eq 'Released' and PostingDate ge datetime'2024-01-01T00:00:00').
      schema:
        type: string
    SkipParam:
      name: $skip
      in: query
      required: false
      description: Number of records to skip for pagination.
      schema:
        type: integer
        minimum: 0
        default: 0
  schemas:
    Opportunity:
      type: object
      description: SAP Business ByDesign CRM opportunity.
      properties:
        ObjectID:
          type: string
        ID:
          type: string
        ProspectPartyName:
          type: string
        StatusCode:
          type: string
        SalesCyclePhaseCode:
          type: string
        ExpectedRevenueAmount:
          type: string
        CurrencyCode:
          type: string
        CloseDate:
          type: string
          format: date
    ODataError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: object
              properties:
                lang:
                  type: string
                value:
                  type: string
    Lead:
      type: object
      description: SAP Business ByDesign CRM lead.
      properties:
        ObjectID:
          type: string
        ID:
          type: string
        ProspectPartyName:
          type: string
        StatusCode:
          type: string
        QualificationLevelCode:
          type: string
        OwnerEmployeeID:
          type: string
  responses:
    Unauthorized:
      description: Unauthorized — invalid or missing credentials.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ODataError'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: HTTP Basic Authentication using SAP Business ByDesign user credentials.
    oAuth2:
      type: oauth2
      description: OAuth 2.0 authentication for SAP Business ByDesign.
      flows:
        clientCredentials:
          tokenUrl: https://{tenant}.bydesign.cloud.sap/sap/bc/sec/oauth2/token
          scopes: {}