Scoro API lets you connect Scoro with other software. You can use it to build your own integrations, sync Scoro data with other systems, or load Scoro data into reports and BI tools.
Scoro offers two versions of the API: API v4 (in beta) and API v2. This article will walk you through everything you need to know about the Scoro API, which API version to use, and how to get started.
Note! Scoro API v4 is currently in beta, so some changes may still happen before the full release. API v2 remains available and supported, so any existing integrations you’ve already built using Scoro API v2 continue working, but additional fees may apply to it in the future. We encourage you to build new integrations on API v4 and to plan a move for existing ones.
Jump to...
1. Scoro API versions
An application programming interface, or API for short, specifies how software components should interact with each other through defined rules. For example, if Software 1 requests data from Software 2, then Software 2 provides only the allowed data.
Scoro offers two versions of the API: API v4 (available in beta) and API v2. Both API versions let you connect Scoro with other software. They differ in how you log in and how you send requests.
API v4 (beta) is the current version and the one we recommend for new integrations.
- It is a standard REST API: you read with GET, create with POST, update with PATCH, and delete with DELETE, and responses are plain JSON.
- Integrations log in with OAuth 2.0. Each integration is an app you register in the Developer Portal, and the app's scopes determine what it can access.
- With API v4, every call runs as one Scoro user: the user who logged in to the app. Records the integration creates or changes show this user as the author, and a call can do only what that user's Scoro permissions and the app's scopes allow. You can use an existing user account for the integration’s purposes, but we recommend creating a dedicated user account for the API integration user instead of a personal login. This way, the records don't depend on one person, and there are no issues when that person leaves your team.
API v2 is the earlier version of the Scoro API.
- Every request is sent as a POST request, and you authenticate with an API key or a user token in the request body.
- You set it up in your site's Scoro API settings under Settings > Site settings > Integrations > Scoro API.
- Even with Scoro API v4 available in beta, API v2 remains available and supported, and existing API v2 integrations will keep working without changes.
Note! As Scoro API v4 is currently in beta, some changes may still happen before the full release. We encourage you to build new integrations on API v4 and to plan a move for existing ones. Your existing API v2 integrations keep working: API v2 remains available and supported, but additional fees may apply to it in the future. See the What are the plans for Scoro API v2 section for more guidance.
1.1. Plan availability and call limits
Scoro API v4
Scoro API v4 (beta) is available in the Standard and Enterprise platforms and across all legacy plans (Essential, Standard, Pro, Ultimate, Core, Growth, Performance, and Enterprise). It has limits that apply to each registered app on your site: up to 20 requests per 2 seconds and 100,000 requests per day.
When you reach a limit, the API returns the HTTP code 429. Wait for the number of seconds in the Retry-After response header before you try again. Other response headers show how many calls you have left.
Scoro API v2
Scoro API v2 is available in the Standard and Enterprise platforms and across all legacy plans (Essential, Standard, Pro, Ultimate, Core, Growth, Performance, and Enterprise); however, daily API call volumes and burst rate limits apply:
- Standard platform: Up to 200,000 API calls per day and 40 calls per 2 seconds.
- Enterprise platform: Up to 500,000 API calls per day and 80 calls per 2 seconds.
-
Legacy plans:
- Essential and Core: Up to 50,000 API calls per day and 10 calls per 2 seconds.
- Performance: Up to 200,000 API calls per day and 40 calls per 2 seconds.
- Pro: Up to 500,000 API calls per day and 40 calls per 2 seconds.
- Enterprise: Up to 500,000 API calls per day and 80 calls per 2 seconds.
- Ultimate: Up to 1,000,000 API calls per day and 80 calls per 2 seconds.
1.2. Which Scoro API version should you use?
Use the Scoro API v4 (beta) for creating new integrations. Existing integrations built on Scoro API v2 keep working.
To check which version an integration uses, look at the request URL: v2 URLs contain /api/v2/ and v4 URLs contain /api/v4/.
Here’s a quick comparison of both Scoro API versions so you know the main differences:
|
||
Status |
Recommended for new integrations |
Available and supported |
Authentication |
OAuth 2.0 access token, sent as a Bearer token |
API key or user token, sent in the request body |
HTTP methods |
GET, POST, PATCH, and DELETE |
POST for every request |
Set up in |
An app in the Developer Portal |
Scoro API settings on your site |
Field names |
camelCase, for example projectId |
snake_case, for example project_id |
Lists in responses |
A plain JSON array |
Wrapped in status and data |
1.3. Why use Scoro API v4?
Scoro API v4 (beta) brings countless benefits:
-
Secure, standard authentication. Scoro API v4 uses OAuth 2.0 with access scopes, so API keys and user tokens no longer go in request bodies. Each integration is its own app in the Developer Portal: you sign up yourself, get credentials straight away, and can rotate the client secret with a grace period. Scopes such as
tasks:r,tasks:rw,tasks:rwdlet an integration ask only for the access it needs. The people who connect the app see exactly what it can access. - A real REST API that works with standard tools. GET reads, POST creates, PATCH updates, and DELETE deletes. Errors come back as standard HTTP status codes (400, 401, 403, 404, 429), and responses are plain JSON. A full OpenAPI 3.1 specification lets you generate client code and test against it.
-
Simple connections to BI tools. Every read is a plain GET URL with filters in the query string, and it returns a flat JSON array. Tools such as Power BI, Tableau, Looker Studio, and Excel Power Query can load Scoro data with far less custom code. With the
modifiedDateTimefilter, a report can refresh only the records that changed. -
Built for AI and agents. The
scoro-apiskill gives AI coding assistants the endpoint reference, the data model, guides for each area, and a step-by-step v2 to v4 porting guide. See more on AI skills. -
Field names that people and AI read the same way. Names say what the field holds, for example,
dueDateTime,durationPlanned,isDone, andprojectIds. Many linked records come with their name next to the ID, for example,companyIdandcompanyNameon projects, so one call returns a readable result. Booleans are true or false, durations are in seconds, and dates use ISO 8601 with a timezone offset. -
Resources and actions that are easy to understand. Everything that belongs to a record lives under that record. For example,
POST /invoices/{invoiceId}/paymentsrecords a payment on an invoice. Business actions are explicit endpoints, such as/invoices/{id}/mark-paid, /tasks/{id}/set-done, and/time-trackers/{id}/pause, and Scoro applies its own business rules for you. - Querying that matches how people ask questions. Typed filters for each endpoint cover date ranges, ID lists, and custom fields. Each resource has a search endpoint that turns a name into an ID. You can sort by up to 3 fields in either direction.
1.4. What are the plans for Scoro API v2?
API v2 remains available and supported, and your existing integrations keep working without any changes. In the future, additional fees may apply to API v2, but we'll share more information in a timely manner when the details are confirmed.
We encourage you to create new integrations on Scoro API v4 and plan a move to API v4 for the existing integrations when it suits you. Learn more about the migration in the Migrating from API v2 to API v4 section.
2. Setting up and using Scoro API
Already have an integration on API v2? See how to migrate from API v2 to API v4.
Scoro API v4 (recommended)
To get started with Scoro API v4:
- Sign in to the Developer Portal with your Google or Microsoft account.
- Register your app – choose Private for an integration you use on your own site, or Public for an integration you want to list in the Scoro App Store.
- Add a callback URL, add the Scoro sites that will use the app (private apps only), and save. Then generate your OAuth credentials: a client ID and a client secret.
- Use the client ID and secret to get an access token. The user logs in to Scoro and allows the app, and your app then sends the token with every API call.
- Explore the endpoints and try calls in the API reference.
For full guidance on using the Developer Portal, see the Developer Portal – build your integration with Scoro article.
Useful Scoro API v4 links and resources:
- Getting started
- API documentation and explorer
- Building with an AI coding agent
- AI skills
- Developer Portal
Authentication and scopes
Scoro API v4 uses OAuth 2.0. You don't send an API key or a user token in the request body. Your app gets an access token and sends it with every call in the Authorization header as a Bearer token.
- Tokens. An access token works for 15 minutes. A refresh token lasts 30 days and gets a new access token without a new login. Each use of the refresh token restarts the 30 days. The client secret is shown only once when you generate it. You can rotate it in the Developer Portal.
- Who is calling. Every call is made as one user: the person who logged in to the app. Records the integration creates or changes show this user as the author, so we recommend a dedicated API integration user instead of a personal login.
-
Scopes and permissions. A scope sets what the app may do in an area of Scoro, for example
tasks:r(read),tasks:rw(read and write) ortasks:rwd(read, write and delete). Request only the scopes your app needs, because users see them when they allow the app. You set your app's scopes under Manage access in the Developer Portal. A call can do only what both the app's scopes and the user's Scoro permissions allow. For example, an admin user cannot write tasks through an app that has onlytasks:r, and a user without permission to edit tasks gets an error even if the app hastasks:rw.
Build with an AI coding agent
The Scoro API v4 reference is an OpenAPI 3.1 specification, so AI tools can read every field, filter and sort option, and build correct calls. The scoro-api skill adds the endpoint reference, the data model, guides for each area, and a step-by-step v2 to v4 porting guide. To move an existing v2 integration, point your AI assistant at the skill and review the result. The API reference also gives a starter prompt that you can copy into your AI coding agent.
See Building with an AI coding agent and the AI skills.
Scoro API v2
Note! API v2 remains available and supported. Existing integrations keep working and can be migrated to API v4 whenever you’re ready.
All Scoro API v2 requests are composed of lightweight JSON delivered as an HTTP POST request to the endpoint URL. The full address to send JSON requests looks like this – https://#companyname#.scoro.ee/api/#module#(/#action#)(/#id#) – where:
- #companyname# is the subdomain
- #module# is the module accessed ("contacts")
- #action# (optional) what to do with the selected object. Possible options are ("modify", "delete").
- #id# (optional) what object to get
You can request data in API v2 only with an API key. An API key is site-specific and must be handled as a password. If the same environment needs several APIs, you must request several API keys. To get a new API key, contact us via our contact form or your client manager.
Read the detailed Scoro API v2 documentation.
If you wish to use the API, please reach out to us via our contact form or contact your client manager.
Note! Once our team has granted you access to use our API, users with the ‘Modify site settings’ permission enabled for their permission set can access the Scoro API settings under Settings > Site settings > Integrations > Scoro API.
3. Migrating from Scoro API v2 to API v4
Even with Scoro API v4 available in beta, your Scoro API v2 integrations continue working, and API v2 remains available and supported. We encourage you to move your apps to API v4 when it suits you. Moving early also gives you time to plan, because additional fees may apply to API v2 in the future.
What changes in your calls: see the example of the task calls in both Scoro API versions:
| Action | API v2 | API v4 |
| Read a list of tasks | POST tasks/list | GET tasks |
| Read one task | POST tasks/view/42 | GET tasks/42 |
| Create a task | POST tasks/modify | POST tasks |
| Update a task | POST tasks/modify/42 | PATCH tasks/42 |
| Delete a task | POST tasks/delete/42 | DELETE tasks/42 |
You also change how you authenticate (OAuth access token instead of an API key or user token), use camelCase field names such as projectId, and read list responses as a plain array instead of a response wrapped in status and data. The company account is now an optional header instead of a field in the request body.
To move an integration from Scoro API v2 to API v4:
- Create a new app in the Developer Portal and generate your OAuth credentials. See this section for more guidance.
Decide which Scoro user your integration will act as. Every API v4 call runs as the user who logs in to the app, and the app can do only what that user's permissions and the app's scopes allow. You can use an existing user, but we recommend creating a dedicated API integration user instead of using a personal login, so records created by the integration don't depend on one person. Then give the app only the scopes it needs under Manage access in the Developer Portal.
-
Update your requests to the v4 endpoints, methods, and field names. Check the API v4 reference for the endpoints you use. Let an AI assistant do most of the work: the
scoro-apiskill includes a step-by-step v2 to v4 porting guide. Get the skill on the AI skills page.
Note! The same request can return different data in v4. A v2 API key acts for the whole account, so it can see more than a v4 call, which acts as one user with that user's permissions and the app's scopes. If data is missing after you move, compare the user's permissions and the app's scopes first.
4. Frequently asked questions (FAQ)
What is the difference between API v2 and API v4?
API v4 uses OAuth 2.0 and standard REST (GET, POST, PATCH, and DELETE) with plain JSON responses and camelCase field names.
API v2 uses an API key or user token, POST for every request, and wraps responses in status and data. For more information, see the table in the Which API version should you use section.
Do I have to move from API v2 to API v4?
You don’t need to migrate from Scoro API v2 to API v4 right away, as API v2 remains available and supported, and your existing integrations continue working. Since additional fees may apply to API v2 in the future, we recommend using API v4 for new integrations, and we encourage you to plan a move for your existing ones when it suits you.
For more guidance, see the Migrating from API v2 to API v4 section.
How can I tell which Scoro API version my integration uses?
To determine which Scoro API version your integration uses:
- Look at the request URL:
- A v2 URL contains /api/v2/.
- A v4 URL contains /api/v4/.
- You can also check the response:
- A v2 list starts with "status".
- A v4 list is a plain array that starts with [.
Do I still need an API key with Scoro API v4?
No, you don’t need an API key with Scoro API v4, as API v4 uses OAuth access tokens. API keys are used only with API v2.
How do I get access to Scoro API v4?
To get access to Scoro API v4, sign in to the Developer Portal, create an app, and generate its OAuth credentials. A private app needs no review, so you get credentials straight away. You don't need to contact Scoro or enable anything in your Scoro settings. There are no fees to sign up for the Developer Portal or to build an app.
How can I try Scoro API v4 without building an app?
To try out the Scoro API v4 without building an actual application, you can open the Scoro API reference on your Scoro site (/api/v4/reference) and press Authorize. The page shows your site's own fields, including required fields and custom fields. You get a short-lived token that works for 15 minutes and can't be refreshed. Press Authorize again to get a new one.
How many API calls can I make?
See the Plan availability and call limits section for information on the API call limits across various Scoro plans.
How do I connect Power BI, Tableau, or Excel to Scoro?
In Scoro API v4, every read is a plain GET URL with filters in the query string, and it returns a flat JSON array. Tools such as Power BI, Tableau, Looker Studio, and Excel Power Query can load this directly. Use the modifiedDateTime filter to refresh only changed records.
Can an AI assistant help me migrate from Scoro API v2 to API v4?
Yes, you can use the scoro-api skill, which includes a step-by-step v2-to-v4 porting guide. See AI skills.
Why does my integration work for 15 minutes and then return a 401 error?
If you see a 401 error, the access token has expired. Your integration needs to use the refresh token to get a new access token instead of asking the user to log in again.
Why does the Scoro API return less data than I see in Scoro?
Every call is made as one user, and the user's Scoro permissions and the app's scopes both apply. A record the user can't open returns a 403 error. A list omits rows the user can't see, without an error. Check that the app's scopes include read access to that area, then compare the call with the same user, permissions, and filters.
Why do I get "redirect_uri is missing" or "invalid_client" when I log in?
"redirect_uri is missing" means the callback URL your app sends doesn't match a callback URL saved on the app in the Developer Portal. It must match letter for letter. "invalid_client" means the client ID or client secret is wrong. If you lost the secret, rotate it in the Developer Portal.