Get Started with the API
General information about using the Coupa API and when you should consider using CSV.
Base URL
All data is stored as a business object or Resource, and each resource has a Resource URL, just like a webpage, where each resource is in the form /api/{resource_name}.
Make sure to access the url using https://
instead of http://
when using the Coupa API. Each Coupa customer has their own url, of the form {instance_name}.coupahost.com
. For example: https://companyname.coupahost.com/api/users
.
Authentication
The Coupa API uses OpenID Connect (OIDC) to authenticate requests using OAuth 2.0. For more information, see OpenID Connect.
Supported API methods
GET (Read Data) - A HTTP GET Request will query Coupa and return information in JSON or XML format. A request at the resource root will list the first 50 objects starting from ID 1. Use these arguments to fine tune the query.
PUT (Update Data) - A HTTP PUT Request to /api/{resource}/{id}
will attempt update a resource. Only one resource can be updated per request and the payload should be a JSON or XML document with the elements to be updated. Not all fields are available through the API and any referenced data must already exist or the value will not be changed.
POST (Create Data) - A HTTP POST Request to the resource root with a JSON or XML payload will attempt to create a new resource. If successful, the resource is returned with the new id, which is generated by Coupa.

Deleting data is not supported for any resource via the API. Users can inactivate a subset of resources using a PUT request.
XML and JSON
Coupa supports both XML and JSON. For more information, see these resources:

Regardless of which method you choose, the Coupa API requires that you set both your content-type and content-accept headers to the same type.
GraphQL
GraphQL is an open specificification for an API query language (thus the “QL” reference) that will allow you to make your integrations more responsive than ever by providing you with the ability to request the data you need and nothing more. GraphQL can also reduce the number of calls and associated round trips you are making by fetching all of the resources you need in a single or few number of calls.
For more informaiotn, see Introducing GraphQL.
CSV flat files
Flat files allow you to load many records through a single transaction. Once an integration is set up, it will automatically run based on the parameters set. Integration runs and errors are managed within the app and provide insight on the number of entires added, error details, and who was automatically contacted about the error. Use CSV to make mass updates or additions about key components of the product, like users or suppliers.
Additional resources
To learn more, see these resources: