Learn Parabola

Welcome to Learn Parabola! You'll find comprehensive guides and documentation to help you start working with Parabola as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Troubleshooting connecting to an API

Determining if Parabola can connect to your API

Parabola can connect to most APIs, but there are some types that are not currently supported:

  • APIs that are not RESTful
  • APIs that do not return JSON, XML, or CSV type data
  • APIs that require form-encoded, x-form-encoded, or x-www-form-urlencoded headers/payloads
  • APIs that use a different version of OAuth than 2.0 - which we support here

Errors and explanations without error codes

Sometimes an API step will return an error that does not have a response code. These are usually errors that happened within Parabola, instead of errors that were returned by the API.

Common Parabola explanations and errors

The URL returned empty or blank data

You will see this explanation when your API has either returned data that is not in a format Parabola can process, when it is in a corrupted format, when the response was completely blank or was an empty table.

Usually this means that you are not requesting the proper resource, you are using an API that does not return JSON, XML or CSV data, or your endpoint simply has no data to return.

It appears this data might not be fully expanded. If so, try using Top Level Keys or the JSON Flattener step to format your data.

This explanation will show when your data has come back from your API and has the potential to be expanded into a more usable table. You can add a Top Level Key if that option is available in the API Import, or you can use a JSON Flattener. For more, see Working with JSON data in Parabola

Max requests (#) hit

This explanation shows up when the API step has used the pagination settings and has made it all the way to the max request number. Many times this may mean your API has more pages of data for the request, but the paging was stopped. Try increasing your Max Requests field.

The object failed to calculate. Please try again. or There was a calculation error in <step> or The step failed to calculate. Our team is aware and looking into it.

These errors can be due to a few internal issues within Parabola. The step may have taken more than 60 minutes to complete and was terminated. The step may have used too much memory due to the data size. The step may have encountered an unknown error and failed.

We monitor these errors and fix their underlying issues when they arise. If you see these a lot, please reach out to us if we have not reached out to you.

URL refers to a column name that does not exist

This error will only show up on the API Enrichment step, and indicates that your endpoint URL is trying to reference a column in the data that does not exist. This step uses {curly braces} to indicate a column to merge into the requests, so anything within {curly braces} should be a column name.

If your API uses {curly braces} in its request syntax (which is not cool), please reach out to us and we can show you how to work around that.

Common 500 series errors

Any error that comes back with a code beginning with a 5, such as those listed in this table, are errors that happened after Parabola made the request to the service, but before Parabola received the response.

For example, if you send a letter through the mail, and if physical mail had error codes, you would see a 502 error if the mail delivery truck ran out of gas. You could see a 503 error if the mailbox was broken, and if you saw a 504 error, it would mean that the delivery took too long so the mail carrier gave up.

As you can see, 500 series errors indicate that something went wrong after the request left Parabola and before it returned by the API.

Reading 500 series errors

Error code
Error message
Meaning

500

Internal Server Error

A generic error showing that a the APIs server had an error

502

Bad Gateway

One of the servers passing the message along received an error

503

Service Unavailable

The API is down temporarily (hopefully)

504

Gateway Timeout

One of the servers along the way took too long to respond

Resolving 500 series errors

In general, these errors should be temporary, or one-off. Within Parabola, click the refresh icon next to the name of the API step that you are using to send the request again, and the error will likely resolve itself.

If you are continuously getting 500 series errors, it usually indicates that something is down, such as the hosting service for the API, or another piece of network technology.

500 series errors are produced between Parabola and the API

Your best course of action to resolve them is to refresh the step and try the request again. The API did not process your request as expected.

Common 400 series errors

The 400 series of error codes indicates that the request from Parabola made it to your API (yay!) but the API did not like the request for some reason. The error code can show you how to adjust your settings in Parabola or in your API to resolve the error.

Reading 400 series errors

Error code
Error message
Meaning

400

Bad Request

Your API URL or other settings in Parabola are incorrect

401

Unauthorized

Your request was received but your authorization is incorrect

402

Payment Required

The API will not respond until you fix your billing with them

403

Forbidden

The API has refused to send you the requested data

404

Not Found

What you requested is not a resource that exists in the API

405

Method Not Allowed

The method you chose (GET, POST, PUT, etc.) is not allowed for this resource

422

Unprocessable Entity

The request is correct, but what you asked the API to do does not make sense

429

Too Many Requests

You have sent too many requests to the API according to its rate limits

Resolving 400 series errors

Each 400 series error requires a different approach to fix it. Fixing these errors may take a few tries and can be nuanced. Your best ally in hunting down the issue is the documentation provided by the API.

Error 400: Bad Request

This error indicates that the API received your request, and it was able to read it, but something in the request is syntactically incorrect, such as a spelling error, or missing headers.

Make sure that your endpoint URL in the Parabola API step settings is spelled correctly and does not have any spaces or hidden characters (such as line breaks) in it.

If you are sending query parameters, make sure they are exactly like the doc specifies. A good practice is to copy and paste any text needed in your settings directly from their documentation to avoid mistyping them.

Error 401: Unauthorized

This error shows up when you have either not passed any authentication to the API, or have passed authentication that has not succeeded. Usually, if your syntax is incorrect, you will get a 400. Knowing that, a 401 means that your request is probably going to work, you just need to prove to the API who you are.

API docs are useful in solving a 401, because they outline the exact way to pass in authentication. Check the docs and make sure that the credentials you are sending via the API step in Parabola are correct. A 401 could mean that you do not have permission to access this resource. You may need to adjust your account permissions in the service that has the API.

Error 402: Payment Required

You need to go to the website of the API that you are trying to access and update your billing or resolve any outstanding invoices there.

Error 403: Forbidden

Check your API docs as to why they would send a 403. Many API docs have section about what error codes mean for their API specifically. You may not have access to the requested resource.

Error 404: Not Found

The resource you requested does not exist, so check your API URL for any incorrect spellings, and make sure that the API endpoint you are trying to hit is defined in their documentation.

Error 405: Method Not Allowed

If you are using an API Import or an API Enrichment step, you are using the GET method. Your resource may require something like a POST, which can only be done with an API Export. Similarly, if you are using a POST, but it should be a PUT, you may get this error.

Check your APIs documentation to ensure that the resource you are requesting is compatible with the verb that you are using to make the request.

Error 422: Unprocessable Entity

You need to check your request for errors in what you are asking the API for. Check your API docs to ensure that the request is asking for its resource in exactly the correct way. This error code usually indicates that your request does not make sense to the API.

Error 429: Too Many Requests

This is a rate limiting error, sent back when Parabola has requested a resource too many times or has made sequenced calls too quickly.

In the API steps, there is a settings for the max number of requests to be sent each minute. You can adjust this number to reflect the limit that the API defines in its docs. Each API is different, so look for a section called Rate Limits or something similar.

400 series errors indicate issues with your request

Most likely, you will need to check your API docs and adjust anything in your settings in Parabola for this API step to ensure you are following the rules of the API defined in the docs.

Appendix of HTTP Errors

400 Bad Request
The server cannot or will not process the request due to an apparent client error (e.g., malformed request syntax, size too large, invalid request message framing, or deceptive request routing).

401 Unauthorized
Similar to 403 Forbidden, but specifically for use when authentication is required and has failed or has not yet been provided. 401 semantically means "unauthenticated", i.e. the user does not have the necessary credentials.
Note: Some sites incorrectly issue HTTP 401 when an IP address is banned from the website (usually the website domain) and that specific address is refused permission to access a website.

402 Payment Required
Google Developers API uses this status if a particular developer has exceeded the daily limit on requests. Sipgate uses this code if an account does not have sufficient funds to start a call. Shopify uses this code when the store has not paid their fees and is temporarily disabled.

403 Forbidden
The request was valid, but the server is refusing action. The user might not have the necessary permissions for a resource, or may need an account of some sort.

404 Not Found
The requested resource could not be found but may be available in the future. Subsequent requests by the client are permissible.

405 Method Not Allowed
A request method is not supported for the requested resource; for example, a GET request on a form that requires data to be presented via POST, or a PUT request on a read-only resource.

406 Not Acceptable
The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request.

407 Proxy Authentication Required
The client must first authenticate itself with the proxy.

408 Request Timeout
The server timed out waiting for the request. According to HTTP specifications: "The client did not produce a request within the time that the server was prepared to wait. The client MAY repeat the request without modifications at any later time."

409 Conflict
Indicates that the request could not be processed because of conflict in the current state of the resource, such as an edit conflict between multiple simultaneous updates.

410 Gone
Indicates that the resource requested is no longer available and will not be available again. This should be used when a resource has been intentionally removed and the resource should be purged. Upon receiving a 410 status code, the client should not request the resource in the future. Clients such as search engines should remove the resource from their indices. Most use cases do not require clients and search engines to purge the resource, and a "404 Not Found" may be used instead.

411 Length Required
The request did not specify the length of its content, which is required by the requested resource.

412 Precondition Failed
The server does not meet one of the preconditions that the requester put on the request.

413 Payload Too Large
The request is larger than the server is willing or able to process. Previously called "Request Entity Too Large".

414 URI Too Long
The URI provided was too long for the server to process. Often the result of too much data being encoded as a query-string of a GET request, in which case it should be converted to a POST request.

415 Unsupported Media Type
The request entity has a media type which the server or resource does not support. For example, the client uploads an image as image/svg+xml, but the server requires that images use a different format.

416 Range Not Satisfiable
The client has asked for a portion of the file (byte serving), but the server cannot supply that portion. For example, if the client asked for a part of the file that lies beyond the end of the file.

417 Expectation Failed
The server cannot meet the requirements of the Expect request-header field.

418 I'm a teapot
This code was defined in 1998 as one of the traditional IETF April Fools' jokes, in RFC 2324, Hyper Text Coffee Pot Control Protocol, and is not expected to be implemented by actual HTTP servers. The RFC specifies this code should be returned by teapots requested to brew coffee.

421 Misdirected Request
The request was directed at a server that is not able to produce a response (for example because of connection reuse).

422 Unprocessable Entity
The request was well-formed but was unable to be followed due to semantic errors.

423 Locked
The resource that is being accessed is locked.

424 Failed Dependency
The request failed because it depended on another request and that request failed (e.g., a PROPPATCH).

426 Upgrade Required
The client should switch to a different protocol such as TLS/1.0, given in the Upgrade header field.

428 Precondition Required
The origin server requires the request to be conditional. Intended to prevent the 'lost update' problem, where a client GETs a resource's state, modifies it, and PUTs it back to the server, when meanwhile a third party has modified the state on the server, leading to a conflict.

429 Too Many Requests
The user has sent too many requests in a given amount of time. Intended for use with rate-limiting schemes.

431 Request Header Fields Too Large
The server is unwilling to process the request because either an individual header field, or all the header fields collectively, are too large.

451 Unavailable For Legal Reasons
A server operator has received a legal demand to deny access to a resource or to a set of resources that includes the requested resource. The code 451 was chosen as a reference to the novel Fahrenheit 451.

500 Internal Server Error
A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.

501 Not Implemented
The server either does not recognize the request method, or it lacks the ability to fulfill the request. Usually this implies future availability (e.g., a new feature of a web-service API).

502 Bad Gateway
The server was acting as a gateway or proxy and received an invalid response from the upstream server.

503 Service Unavailable
The server is currently unavailable (because it is overloaded or down for maintenance). Generally, this is a temporary state.

504 Gateway Timeout
The server was acting as a gateway or proxy and did not receive a timely response from the upstream server.

505 HTTP Version Not Supported
The server does not support the HTTP protocol version used in the request.

506 Variant Also Negotiates
Transparent content negotiation for the request results in a circular reference.

507 Insufficient Storage
The server is unable to store the representation needed to complete the request.

508 Loop Detected
The server detected an infinite loop while processing the request (sent instead of 208 Already Reported).

510 Not Extended
Further extensions to the request are required for the server to fulfill it.

511 Network Authentication Required
The client needs to authenticate to gain network access. Intended for use by intercepting proxies used to control access to the network (e.g., "captive portals" used to require agreement to Terms of Service before granting full Internet access via a Wi-Fi hotspot).

Updated 2 months ago

Troubleshooting connecting to an API


Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.