OData service

Revision as of 11:36, 2 July 2021 by Jzambor (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Integration with third-party systems

Resco CRM Connector (web APIs):




Resco OData v4 service is a web API that can be used to exchange data between Resco Cloud and other servers. Resco offers many integration options; see Resco CRM Connector to learn about our API interfaces and see Integration for additional options.

Authentication

The service uses standard BASIC authentication with the organization's username and password.

Service document

Lists all entities available.

URI

The service URI depends on server settings; whether the server uses domain organization selection or simple URL organization selection.

  • https://[baseURI]/odata/v4/[organization]/
  • https://[organization].[baseURI]/odata/v4/

URI examples

  • Resco Cloud: https://my_org.rescocrm.com/odata/v4/
  • Resco Cloud US: https://my_org.us1.rescocrm.com/odata/v4/
  • Resco Inspections: https://inspections.resco.net/odata/v4/my_org/

Example

Request: https://inspections.resco.net/odata/v4/[organization]/

(If you're trying this from a web browser, append /?$format=json to display the answer in the correct format.)

Response (shortened):

{
  "@odata.context": "https://inspections.resco.net/odata/v4/[organization]/$metadata",
  "value": [
    {
      "kind": "EntitySet",
      "title": "Account",
      "name": "account",
      "url": "account"
    },
    {
      "kind": "EntitySet",
      "title": "E-Mail Attachment",
      "name": "activitymimeattachment",
      "url": "activitymimeattachment"
    },
    {
      "kind": "EntitySet",
      "title": "Activity Party",
      "name": "activityparty",
      "url": "activityparty"
    },
...

Data request

Request for entity data. The resulting dataset depends on the query applied. Without a query, a single page of entity record results is returned. Default (and max) page size is 1000.

URI

  • https://[baseURI]/odata/v4/[organization]/[EntityName]
  • https://[organization].[baseURI]/odata/v4/[EntityName]

Queries

To see how the queries can be constructed, check the OData protocol.

The service is compliant to OData 4.0 Minimal Conformance Level and partially to OData 4.0 Intermediate Conformance Level.

To see a list of unsupported stuff, check Limitations.

Paging

The data can be paged using $top and $skip query options. Except for that, also server-side paging is applied with a max page size of 1000 items. Whenever the server cuts the response to fulfill server limits, the response contains an [@odata.nextLink](http://docs.oasis-open.org/odata/odata-json-format/v4.0/cs01/odata-json-format-v4.0-cs01.html#_Toc365464689) annotation with a URI that can be used to retrieve the next page of data.

Example

Request: https://inspections.resco.net/odata/v4/[organization]/[entity]

Response (shortened):

{
  "@odata.context": "https://inspections.resco.net/odata/v4/[organization]/$metadata#account",
  "value": [
    {
      "@odata.etag": "W/\"7511A7BAE6FBAB8FF6E67C8DE78EB3CE\"",
      "address1_city": "Suffolk County",
      "address1_country": "USA",
      "address1_latitude": 42.423449,
      "address1_line1": "Charger Street",
      "address1_line2": "124",
      "address1_line3": null,
      "address1_longitude": -71.013693,
      "address1_postalcode": "02151",
      "address1_stateorprovince": "Massachusetts",
      "__createdby_id": null,
      "createdon": "2019-06-18T12:49:34.0000000Z",
      "customertypecode": null,
      "__defaultpricelevelid_id": null,
      "donotemail": false,
      "emailaddress1": "someone@example.com",
      "fax": null,
      "fs_portalpassword": null,
      "id": "585ace18-4eec-4288-9294-1286d768c210",
      "__modifiedby_id": null,
      "modifiedon": "2019-06-18T12:49:34.0000000Z",
      "name": "Warner Apartment Building",
      "__originatingleadid_id": null,
      "__ownerid_id": "601d9d17-89b4-e111-9c9a-00155d0b710a",
      "__owningbusinessunit_id": null,
      "__parentaccountid_id": null,
      "__primarycontactid_id": null,
      "revenue": 8630000,
      "revenue_base": 8630000,
      "statecode": 0,
      "statuscode": 1,
      "telephone1": "738-1946",
      "__transactioncurrencyid_id": "af05b07e-89b4-e111-9c9a-00155d0b710a",
      "vatid": null,
      "versionnumber": 2054,
      "websiteurl": "http://www.example28.com"
    },

Metadata document

Provides a standard OData CSDL model description XML.

URI

  • https://[baseURI]/odata/v4/[organization]/$metadata
  • https://[organization].[baseURI]/odata/v4/$metadata

Example

Request: https://inspections.resco.net/odata/v4/[organization]/$metadata

Response (shortened):

<Edmx Version="4.0">
  <DataServices>
    <Schema Namespace="RescoCrm">
      <EntityType Name="_resco_baseentity_" Abstract="true"/>
      <EntityType Name="account" BaseType="RescoCrm._resco_baseentity_">
        <Key>
          <PropertyRef Name="id"/>
        </Key>
        <Property Name="address1_city" Type="Edm.String" MaxLength="160"/>
        <Property Name="address1_country" Type="Edm.String" MaxLength="160"/>
        <Property Name="address1_latitude" Type="Edm.Double"/>
        <Property Name="address1_line1" Type="Edm.String" MaxLength="500"/>
        <Property Name="address1_line2" Type="Edm.String" MaxLength="500"/>
        <Property Name="address1_line3" Type="Edm.String" MaxLength="500"/>
        <Property Name="address1_longitude" Type="Edm.Double"/>
        <Property Name="address1_postalcode" Type="Edm.String" MaxLength="40"/>
        <Property Name="address1_stateorprovince" Type="Edm.String" MaxLength="100"/>
        <Property Name="createdon" Type="Edm.DateTimeOffset"/>
        <Property Name="customertypecode" Type="Edm.Int32">
          <Annotation Term="RescoCloud.FormattedValue"/>
        </Property>
...

Limitations

  • OData batch processing is not supported
  • JSON response only (XML not supported)