All Projects → Forecast-it → API

Forecast-it / API

Licence: other
API documentation for the Forecast platform

Projects that are alternatives of or similar to API

Angular Swagger Ui
An angularJS implementation of Swagger UI
Stars: ✭ 131 (+445.83%)
Mutual labels:  api-documentation, api-rest
Molten Boilerplate
A boilerplate for the molten framework by Bogdanp https://github.com/Bogdanp/molten
Stars: ✭ 50 (+108.33%)
Mutual labels:  api-documentation, api-rest
chappe
🧑‍💻 Developer Docs builder. Write guides in Markdown and references in API Blueprint. Comes with a built-in search engine.
Stars: ✭ 132 (+450%)
Mutual labels:  api-documentation, api-rest
liuye
柳叶清单开放 API 文档
Stars: ✭ 32 (+33.33%)
Mutual labels:  api-documentation, api-rest
truthy
Open source headless CMS API written using NestJS, that has pre built modules like User Management, Role Management, Permission Management, Email Module, Account Settings, OTP, Throttling, RBAC support, Localization, and many more.
Stars: ✭ 200 (+733.33%)
Mutual labels:  api-rest
sigmah
Open source software for managing international aid projects
Stars: ✭ 22 (-8.33%)
Mutual labels:  project-management
dubbo-go-pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 385 (+1504.17%)
Mutual labels:  api-rest
main
Mocks Server monorepo
Stars: ✭ 109 (+354.17%)
Mutual labels:  api-rest
docodile
Generate HTML API documentation from a Postman collection
Stars: ✭ 63 (+162.5%)
Mutual labels:  api-documentation
iguana
Iguana is an open source issue management system with a kanban board.
Stars: ✭ 39 (+62.5%)
Mutual labels:  project-management
node-crudapi-ts
CRUD boilerplate for create Node Restful API's with Express Framework and Sequelize ORM written in Typescript.
Stars: ✭ 41 (+70.83%)
Mutual labels:  api-rest
kanbanize
Triage issues on github project boards.
Stars: ✭ 32 (+33.33%)
Mutual labels:  project-management
platform
Apinf - Open source API management platform with multi proxy and protocol support
Stars: ✭ 69 (+187.5%)
Mutual labels:  api-documentation
ICMP-server
simple web app that use icmp protocol to check some devices if there are up or not
Stars: ✭ 16 (-33.33%)
Mutual labels:  api-rest
project-management
A basic CLI for regularly updating your project's status
Stars: ✭ 90 (+275%)
Mutual labels:  project-management
teammanager
Small team manager written in MEAN stack
Stars: ✭ 30 (+25%)
Mutual labels:  project-management
mkm-sdk
Python SDK for Magickartenmarkt API
Stars: ✭ 33 (+37.5%)
Mutual labels:  api-rest
Deep-learning-model-deploy-with-django
Serving a keras model (neural networks) in a website with the python Django-REST framework.
Stars: ✭ 76 (+216.67%)
Mutual labels:  api-rest
nei-toolkit
NEI 接口文档管理平台配套自动化工具
Stars: ✭ 814 (+3291.67%)
Mutual labels:  api-documentation
bookmarks
A PySide2 based file and asset manager for animation and CG productions.
Stars: ✭ 33 (+37.5%)
Mutual labels:  project-management

What is the Forecast API?

The Forecast API is a complete programmable interface to all Forecast functionality.

This is a REST-style API that uses JSON for serialization and HTTP.

What can you do with it?

A ton of stuff! We've exposed all the needed services for you to use in your applications.

How do I get started?

You'll need a Forecast account, first of all. Then you grab an API key for each app you want to build from the Forecast "Admin" section.

We recommend that you start out by getting to know the concepts and conventions of Forecast (and the API) and learn how to authenticate with us.

Making a request

All URLs start with https://api.forecast.it/api/v1/. SSL only. The path contains the API version. If we change the API in backward-incompatible ways, we'll increment the version marker and maintain stable support for the old URLs.

To make a request for all the projects on your account, you'd append the projects index path to the base url e.g. https://api.forecast.it/api/v1/projects

Using curl it will look like this:

curl -X GET "https://api.forecast.it/api/v1/projects" -H "X-FORECAST-API-KEY: {API-key}"

That's it. Super simple, eh?

Authentication

If you're making a private integration with Forecast for your own purposes, you can use HTTP header "X-FORECAST-API-KEY". This is secure since all requests in Forecast use SSL.

API keys are generated in the administration module.

API keys provide full access to your Forecast account, so keep them like a secret.

Disabling an API key

If you're worried that an API key has been compromised, or you're simply no longer using the integration that was accessing your account through a particular API key, Forecast makes it possible to disable or delete that API key.

API key security

API keys grant full access to your Forecast account, and should be protected the same way you would protect your password. In particular, there are a few common scenarios to keep in mind when working with API keys:

  • Give each integration its own API key (or at least use a few). If a specific API key is compromised, you can disable that key without disabling access to all of your other integrations.
  • Be careful not to expose the key to the public (such as in screenshots, videos, help documentation, source control, etc). Remember that blurring your data isn't always enough. It's best to use "cut" functions in your graphics program to remove the data completely.
  • If a key needs to be shared, generate a new key so it can be disabled, if needed. Make sure never to email the API key; if your email account becomes compromised, the emailed key would allow hackers access to your Forecast account as well.

No XML, just JSON

We only support JSON for serialization of data. This means that you have to send Content-Type: application/json; charset=utf-8 when you're POSTing or PUTing data into Forecast. All API URLs only accept and return JSON.

You'll receive a 415 Unsupported Media Type response code if you don't include the Content-Type header.

Responses

All GET requests return 200 OK on success along with the JSON of the requested elements (See specific resource entry for JSON examples).

Successful POST requests return 201 CREATED, and successful PUT requests return 200 OK.

Successful PUT and POST requests also return the JSON of the created/updated resource similar to what you would get from a GET request for that specific resource.

Successful DELETE requests return 200 OK

Pagination

For endpoints with pagination, you can supply the following query parameters:

Pagination param Description/Format
pageNumber Positive integer. Defaults to 1 if not supplied or invalid.
pageSize Positive integer. Defaults to 100. Maximum value is subject to change.

Responses from paginated endpoints will be in the following format:

Response fields Description/Format
pageNumber Positive integer. Page number returned.
pageSize Positive integer. Page size used to generate response.
totalObjectCount Positive integer. Size of the total collection of which this page was returned.
pageContents Array of the objects on the requested page.

Handling errors

If Forecast is having trouble, you might see a 5xx error. 500 means that the app is entirely down, but you might also see 502 Bad Gateway, 503 Service Unavailable, or 504 Gateway Timeout. It's your responsibility in all of these cases to retry your request later.

400 Errors usually means that the provided input is invalid and the message will tell you what the problem is.

401 is a failure to authenticate the api key.

404 Errors usually means that you are trying to GET/POST/PUT/DELETE a resource that doesn't exist.

Errors are returned in the following JSON format.

Response Fields Description/Format
status Integer, the status code of the error. This corresponds to the HTTP status code
message String, a descriptive message explaining the error

Sample JSON Error Response

{
  "status": 401,
  "message": "Server failed to authenticate the request."
}

API sections (Work in progress)

API libraries

Help us make it better

Please tell us how we can make the API better. If you have a specific feature request or if you've found a bug, please contact us.

You can always reach us via email at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].