How can I persist an API object across different Celery tasks? I have one API object per user with an authenticated session (python requests) to make API calls. A user_id, csrftoken, etc. is sent with each request. 
I need to schedule different tasks in Celery to perform API requests without re-authenticating for each task.
How can I do this?
You can put these data into the database/memcache and fetch by userid as a key.
If these data are stateless - it's fine. Concurrent processes take the authenticating parameters, construct request and send it.
If it changes the state (unique incrementing request id, changing token, etc) after each request (or in some requests) - you need to implement a singleton manager to provide correct credentials by request. All tasks should request for credentials from this manager. It can also limit the rate for example.
If you would like to pass this object to the task as a parameter - then you need to serialize it. Just make sure it is seriazeable.
How can I persist an authenticated API object across different Celery tasks?